SEが関わるシステム開発には上流工程と下流工程の仕事が存在しており、それぞれに役割が存在しています。基本的に上流工程の仕事では、プログラミングに関連する仕事ではなくクライアントと関わることが多いため、しっかりとしたコミュニケーション能力が必要です。また、適切な形で意見を調整することも大切なので、交渉力などのスキルも重要でしょう。
通常、SEはプログラミングをすることが仕事と考えられていますが、それは基本的には下流工程の仕事です。上流工程のSEはシステムの企画立案を行って、プロジェクト全体を広くカバーしながら仕事を進めていくことになります。そのため、プログラミングの技術以外にも、色々と経験とスキルが必要なのです。

上流工程のSEの仕事として大きなウエイトを占めているのが、予算とスケジュールのマネジメントを行なう仕事です。上流工程のSEはクライアントからの要望に対して、厳格に従って仕事をすることになるので、予算とスケジュールの管理を適切なアプローチで実施しなくてはいけません。
納期までにシステムを構築するためには、システム開発を行っている現場全体を横断的に理解して、合理性を高める努力をする必要があります。そのため上流工程のSEは、的確に各現場のスタッフに指示を出して、改善点を分かりやすくアドバイスするなどの能力が求められるでしょう。また、予算を詳細に管理して必要に応じて配分することも、上流工程のSEの大切な仕事です。