システム開発における上流工程とは?

システム開発においては、上流工程と下流工程という分類がされています。この二つの違いは、システム開発のプロセスでどの部分を担うかという点です。開発作業は、まず要件定義と設計という、いわば制作作業の準備を行います。この部分が上流工程と呼ばれるものです。その後、実際にコードを記述していくプログラミングがなされ、できあがったものをテストして動作させるプロセスに続きます。この制作過程のことを下流工程と呼びます。

上流工程と下流工程では、担当するエンジニアも異なります。要件定義と設計を行うのはSEが主に担当し、下流工程はプログラマーが行います。もちろん、実際の現場ではSEがプログラミングを担当することもあり、明確に境界が引かれているわけではありませんが、大まかにはこうした違いがあるのです。

このように、上流工程は実務作業よりもシステムの仕様を決める業務がメインです。また、それをプロジェクト化して個々のプログラマーに割り振るという実務も行います。全体の流れを決める、いわば川の上流にいるような感覚とも言えるでしょう。システム全体を総合的に見る能力や、設計自体ができる知識とスキルが求められます。こうしたことから、上流工程を担えるエンジニアはより高いスキルと経験を持っていることが多いです。また、クライアントの要望を汲み取ると共に、設計を提示して了承を得る仕事も行うことになります。そのため、説明やヒアリングを上手に行えるエンジニアである必要も出てくるでしょう。今後、上流工程SEを目指す人は、まずリサーチから始めてみるのをおすすめします。