IT化が進む現代においてシステム開発は多くの企業で避けて通ることはできない重大なテーマとなっています。
システム開発は複数の工程から構成されるのですが、おおまかには上流工程と下流工程に分類することが可能です。

このうち、上流工程というのは、要件定義や設計などといったプロセスから成り、主に顧客とのやり取りを通じて彼らがシステムに求めている機能を洗い出して整理したり、それを実際にどのようにプログラムに落とし込んでいくかを検討したりといった作業が中心となります。
そのため、SEの仕事として思い浮かぶことの多いプログラミングはまだこの段階では行いません。
しかし、だからといってこの上流工程がやりがいを感じることができない仕事であるという訳ではないのです。

上流工程はSEにとって最も密に顧客とコミュニケーションを取れる機会です。
顧客が実務で抱えている課題を直に見聞きすることで現状を把握しやすく、キャリアを形成する上においても非常に有用であることでしょう。
また、顧客の要望が正確に設計に落とし込まれていないままシステム開発が進められると、出来上がったシステムが顧客の求めるものとは乖離しているということにもなりかねず、そうなると後から訴訟などのトラブルに発展する可能性が高まります。
そのような事態を避けるためには、上流工程においていかに正確に顧客の要望を見える化できるかがポイントであり、それを担うSEには責任とともに大きなやりがいがあるという訳です。