基本的にSEが担当するシステム開発において上流工程の仕事は、案件の内容や要件を定義して、条件を設定して各種のシステムの設計図を作成することです。これらの仕事は各種のデザインのセンスや、運用する際の目的を細かく理解する能力が求められます。もちろん依頼者と頻繁にコミュニケーションを図って、依頼者の要望をヒアリングする作業も大切になるので、一般的に知られているSEという仕事のイメージにはない作業が多いです。
システム開発において上流工程の仕事は、良いシステムを開発する際には必ず必要な作業となっており、設計の根幹を規定するものなので、様々な経験と豊富なアイデアが求められます。そのため希望者のすべてが上流工程を担当できるわけではなく、しっかりとしたスキルと知識があることが前提です。
システム開発において下流工程は各種のシステムを構築する作業が多く、プログラムを組んだりテストを行なう仕事になります。またエラーやバグが発生した際にスピーディーに対処して、問題点を改善するような作業も下流工程の大切な仕事として存在しています。
これらの仕事はSEの作業として一般的で、通常SEというとこの下流工程の作業を実施する人を指すことが多いです。実際上流工程を担当する人と下流工程を担当する人だと、下流工程を担当する人の方が圧倒的に多い状況です。上流工程の担当者になるために、下流工程の仕事をある程度経験して、キャリアを積む必要があります。