システム開発における上流工程の流れ5つ|課題や必要なスキルを紹介

システム開発における上流工程の流れ5つ|課題や必要なスキルを紹介のアイキャッチイメージ

上流工程とは?


上流工程はウォーターフォールモデルのシステム開発での初期工程の作業を指します。

上流工程ではクライアントにヒアリングを行い、その内容から要求分析や要件定義、機能定義、構成管理、計画立案などを行います。また、システム設計までを上流工程とするのが一般的です。

システム開発の上流工程はシステムエンジニアが担い、システムエンジニアが作成した設計書をベースに、プログラマーが下流工程であるシステム開発を行います。

上流工程の課題とは?

上流工程には作業不備によるトラブルが発生しているという課題があります。

システム開発において、上流工程での品質の確保は重要課題として位置付けられています。しかし上流工程での作業の不備を原因とする、手戻りのトラブルは今でもなくなっていません。

上流工程に不備があると工期の遅れや開発コストの増加、さらにプロジェクト自体の失敗などの大きなトラブルに繋がるケースもあり、多くの企業が頭を悩ませています。

下流工程とは?

下流工程はシステム開発におけるプログラミング作業などを指します。

一般的に、システム開発における設計作業までを上流工程とするのに対し、プログラムの開発以降を下流工程とします。

下流工程では上流工程で作成された設計書や仕様書をもとに、指定されているプログラミング言語を使って開発作業を行います。また、システムが形になれば仕様書通りに動作するかどうかテストを行い、最終的に導入作業を行います。

システム開発における上流工程の流れ5つ


システム開発における上流工程の流れをご紹介します。

上流工程はウォーターフォールモデルのシステム開発での上流に位置する作業工程を指します。それでは、上流工程では具体的にどのような流れで作業が進められているのでしょうか。

ここではシステム開発における上流工程の流れ5つをご紹介しますので、ぜひ参考にしてみてください。

上流工程の流れ1:企画

上流工程の流れでは、まずはシステム化企画を行います。

システム化企画とは、クライアントが抱えている課題やニーズにもとづいてシステム化の企画を立案することです。この工程ではシステム開発の目的や目標、開発期間や予算といった開発に必要な情報をリストアップし、開発の許可を取ります。

また、上層部からシステム化企画の承認が下りれば、次段階の要件定義へと移ります。

上流工程の流れ2:要件定義

上流工程の流れでは、次に要件定義を行います。

要件定義とは、システムに実装する機能などを定義し、クライアントに提示して契約に至る前にしっかりと情報共有を行うことです。

しかし、現実にはクライアントの希望する機能を全て実装することは難しいでしょう。そのため、予算や期間などを考慮した上でクライアントのニーズを満たすために必要な機能を洗い出し、実現に必要な詳細な機能を検討します。

上流工程の流れ3:外部設計

上流工程の流れでは、次に外部設計を行います。

要件定義の次は設計の段階へと入ります。設計の工程ではシステム構成や処理方法などを検討し、機能を実装するための具体的な仕組みや手段を考えます。

また、設計には概要設計、外部設計、内部設計など複数の工程がありますが、外部設計では主にユーザーインターフェースやセキュリティなどの設計を中心に行います。

上流工程の流れ4:見積もり

上流工程の流れでは、次に見積もりを行います。

設計作業が終わったら、システム開発に必要な予算や開発期間などから見積もりを作成し、クライアントに提示します。計算した機能の実装に必要な期間や費用などに対し、クライアントから同意を得る作業です。

見積もりは双方の合意が必要となるため、作成した見積もりに対してクライアントからの同意が得られれば、次段階の契約に移ります。

上流工程の流れ5:契約

上流工程の流れでは、最後に契約を行います。

提示した見積もりにクライアントからの同意が得られたら契約成立となります。契約後はシステム開発における上流工程の作業が終了し、下流工程である開発作業へと移ります。

上流工程の仕事のメリット3つ


上流工程の仕事のメリットをご紹介します。

システム開発における上流工程と下流工程では、役割の違いから待遇に違いがあります。また、上流工程は下流工程よりも限られた人数で担当し、さらに管理者の立場であることから下流工程にはないメリットもあります。

ここでは上流工程の仕事のメリット3つをご紹介しますので、どのようなメリットがあるのか参考にしてみてください。

上流工程の仕事のメリット1:時間に余裕がある

上流工程の仕事は勤務に時間的な余裕があるというメリットがあります。

上流工程はシステムの設計段階のため、すでに納期が決まっている下流工程と違ってタイトなスケジュールに追われることがなく、余裕を持ってクライアントと打ち合わせや交渉を行えます。

また、上流工程は大企業が行い、下流工程は下請けの中小企業が行うケースが多いため、結果として時間的に余裕が生まれる会社の割合は大企業の方が高くなります。

上流工程の仕事のメリット2:裁量権がある

上流工程の仕事は裁量権があるというメリットがあります。

上流工程はシステム開発において決定権を持つ管理者の立場となっており、プロジェクト全体での裁量権をもっています。そのため、責任や知識が問われる立場でもあります。

プロジェクトは上流工程を担う人材の能力によって成功が左右されると言っても過言ではないでしょう。

上流工程の仕事のメリット3:給料面の待遇がよい

上流工程の仕事は給与面が良いというメリットがあります。

前述のとおり、上流工程はプロジェクトにおいて決定権を持った管理者の立場となっているため、下流工程と比較すると待遇が良い傾向にあります。

また、上流工程ではプログラミングやセキュリティ、クライアントの業界に関する知識など幅広い知識やスキルが求められ、さらに上流工程は少人数で担う事になるため、結果的に給与面での待遇が良くなります。

上流工程に必要なスキル3つ


上流工程に必要なスキルをご紹介します。

前述のとおり、上流工程で作業不備によるトラブルが発生した場合、非常に大きな問題に発展することがあります。そのため、上流工程に必要なスキルを身につけてトラブル防止に努める必要があります。

ここでは上流工程に必要なスキル3つをご紹介しますので、スキルアップの参考にしてみてはいかがでしょうか。

上流工程に必要なスキル1:コミュニケーション能力

上流工程にはコミュニケーション能力が必要です。

上流工程ではクライアントのニーズを正確にくみ上げ、交渉や認識のすり合わせなどを行います。また、下流工程に対してもクライアントが抱えている課題解決策を的確に伝える必要があります。

そのため、上流工程ではどの工程を行う際にも高いコミュニケーション能力が必要となります。

上流工程に必要なスキル2:ヒアリング力

上流工程にはヒアリング力が必要です。

上流工程ではクライアントからニーズをヒアリングし、要件をまとめてシステム設計を行います。しかし、ヒアリングした内容をそのまま設計に組み込むのではなく、システムに詳しくないクライアントが本当に求めている内容をイメージすることが重要です。

そのため、ヒアリングの際には単純に聞くだけでなく具体的な要望を聞きだすスキルが必要になります。

上流工程に必要なスキル3:基本設計

上流工程には具体的な基本設計のスキルが必要です。

ヒアリングした内容をもとにシステム設計へと入りますが、基本設計の内容はその後の工程すべての指針となる重要なものです。

基本設計が曖昧になっていると、下流工程が独自の判断で作業を行い、結果クライアントが求めるシステムと異なるものになってしまう可能性もあります。

そのため、具体的かつ細かい内容までしっかり決められた基本設計を行うスキルが必要です。

上流工程はシステム開発のカギ


上流工程での作業は、その後のシステム開発のすべての工程に影響を与える重大なものです。

この記事でご紹介したシステム開発における上流工程の流れや上流工程の仕事のメリット、上流工程に必要なスキルなどを参考に、システム開発における上流工程についての理解を深めてみてはいかがでしょうか。

インフラエンジニア専門の転職サイト「FEnetインフラ」

FEnetインフラはサービス開始から10年以上『エンジニアの生涯価値の向上』をミッションに掲げ、多くのエンジニアの就業を支援してきました。

転職をお考えの方は気軽にご登録・ご相談ください。