デジタルトレンドナビ
システム開発

2023.10.16

上流工程の戦略的理解|システム開発成功の役割とスキル、下流工程との連携

システム開発の上流工程

下流工程を担当するエンジニアのキャリアアップ目標のひとつに、上流工程の担当が挙げられます。しかし、上流工程と下流工程はまったく役割が異なるため、具体的な工程や必要スキルが不透明だとお悩みではありませんか?

そこで今回は、上流工程の基本的なことから、具体的な工程内容を解説します。また、必要なスキルも紹介していますので、ぜひ参考にしてください。

この記事でわかること

  • 上流工程の業務内容
  • 下流工程との業務の違い
  • 必要なスキル

上流工程とは

上流工程とは

上流工程とは、一般的なシステム開発で採用されているウォーターフォール型開発を由来とした、システムの要になる工程です。作業工程が上流から下流に流れるように進められるため、最初の業務工程をまとめて上流工程と呼んでいます。

上流工程では、クライアントの要望に基づいたシステムの内容・構成・スケジュール・予算など、システム開発プロジェクト全体に関わる軸をつくります。

下流工程とは

下流工程とは

システム開発は、要件定義から計画立案までの上流工程と、実装以降を行う下流工程に分けられます。下流工程の業務内容は、実装・テスト・導入です。

下流工程として、まずは上流工程で決められた性能・機能などの開発を進めます。設計書どおりに完了すればテストを行い、想定どおりに仕上がっているかを確認します。問題がなければ、導入してクライアント先で動作確認を行い、異常がなければシステム開発は終了です。

このように、上流工程と下流工程は、システム開発の工程箇所がしっかりと分けられています。上流工程はシステム開発の軸となる工程を担当し、下流工程は上流工程で決定された指示どおりに業務を遂行するのが基本です。

よって、上流工程はシステム開発の全体を管理し、下流工程は実際の開発を担当します。

上流工程での問題が下流工程に与える影響

上流工程での作業は、下流工程の作業の質やシステム自体の品質にも影響します。上流工程でしっかり要望をヒアリングし、要件に基づいた企画・計画立案、要件定義、基本・詳細設定、コストの算出が行われていれば、下流工程も要望に沿った計画どおりの内容で進められます。

しかし、上流工程で不十分な点があると、下流工程で何度も修正が必要になります。内容によっては、クライアントからのクレームにもつながりかねません。

たとえば、上流工程でしっかりとした構成管理ができていなければ、場合によっては基本設計からのやり直しが必要です。結果、納期に間に合わずに、クライアントからの信頼を失う可能性もあります。

このように、システム開発はいかに上流工程でクライアントの要望を汲み取り、機能・性能として企画や要件定義に落とし込み、スムーズに開発が進むよう設計書を作るのかが重要です。そうすることで、設計書をもとに行う下流工程が質のよいものになり、クライアントも納得のいくシステムが完成します。

主な上流工程

主な上流工程

主な上流工程の役割は、システムの企画・計画の立案、性能や機能を明らかにした要件定義、基本設計と詳細設計、コスト算出の5つです。それぞれの工程を詳しく解説します。

企画・計画立案

まずは企業の要望や戦略に沿って、システムの企画書を作成します。上流工程のなかでも、超上流工程と呼ばれている業務です。

システムの企画・計画を立てるために、クライアントにヒアリングを行います。クライアントの要望を伺うとともに、現状の課題も可視化します。ただクライアントのニーズにあった企画を立てるだけでなく、課題を解決するための策の提案も必要です。

ここでのクライアントへのヒアリングはとても重要で、次の要件定義の作成や設計の軸になります。

要件定義

要件定義とは、企画の段階でクライアントからヒアリングした、システムに求める要望を実現するために必要な、要件や範囲を明確にしていく工程です。

要件定義は、機能的な内容の機能要件と、性能や使用性などの非機能要件の両方について考えながら、予算に応じた内容で記述します。

要件定義に基づいて次の基本設計の工程に進むため、要件定義が完成したら、クライアントからの合意を得ます。クライアントには当初の要望とのズレがないか、コンサルティングの段階で妥協した部分があれば再度問題ないかの確認もします。

要件定義がしっかりできていないと、基本設計の質が下がり、システム自体の品質にも関わります。次の基本設計に入る前に、システム開発に携わる関係者の確認を得てから次の工程に進みます。

基本設計

基本設計とは、要件定義の内容に基づき、システム全体の設計をすることです。システムの操作画面・操作方法・データ出力方法などの、ユーザーから見える部分の外部設計が基本設計にあたります。

基本設計と後の詳細設計も下流工程の業務に大きく関わってくるため、重要度の高い工程です。

コストの算出

要件定義と基本設計で全体像がつかめたら、詳細設計に進む前にコストの算出を行います。クライアントの予算を上回っていないかを確認し、クライアントに許可を得ます。

コストの算出を見誤ると、最終のコストが予算をオーバーする可能性もあるでしょう。オーバーしたコストは、開発側とクライアント側のどちらが負担するのかというトラブルに発展する可能性もあるため、正確さが重要です。

詳細設計

詳細設計は内部設計とも呼ばれており、基本設計の内容に基づいて、システム内部を設計する工程です。システム内部の機能や動作までの細かい部分にいたるまで、詳細に設計します。

詳細設計は、下流設計の業務が想像できるほどのクオリティが求められ、完成度の高い内容でなければいけません。

詳細設計には、4つの要素が必要です。基本設計で必要となった機能の分割、データフロー図の作成、物理設計・論理設計・索引設計の3つに分類されたデータベース設計、入出力の設定の4つを、詳細設計にしっかり落とし込みます。

上流工程において必要なスキル

上流工程において必要なスキル

上流工程に関わるエンジニアに必要なスキルは、要件分析と定義・コミュニケーション能力・設計書の作成能力・業界に関する知識です。

上流工程は次の下流工程の業務を、いかにスムーズにできるかを考えるスキルも必要なため、下流工程を熟知しているエンジニアがとくに向いています。

要件分析および定義

クライアントのニーズに応えられるシステムを開発するには、要件を分析する能力と定義する能力が必要です。

クライアントからヒアリングした内容を整理するだけでなく、細かく分析して、実際にITシステムとして実現するならどのような定義になるのか、イメージできなければいけません。

また、イメージしたものを要件定義として提出し、クライアントやシステム開発の関係者すべての人にわかりやすく、かつ正確に伝わるものを作成する能力が必須です。

コミュニケーション能力

上流工程の基本にもなる、クライアントからの要望や隠れた問題点などを引き出すには、コミュニケーション能力が必要です。上流工程のエンジニアは、対クライアント以外にも、関係者へ正確に伝える能力が必須になってきます。

とくにクライアントは、専門知識がない場合が大半のため、エンジニア側が誘導してシステム開発に必要なニーズを聞き出します。さらに、提案する場合は専門的に説明するのではなく、わかりやすく噛み砕いての説明が必要です。

一見、上流工程では専門知識やテクニックのみが必要と思われがちですが、クライアントの要望に応えるために柔軟な対応が求められます。

設計書の作成能力

上流工程のエンジニアには、下流工程のITシステム実装作業に必要な設計書を作成する、システムエンジニアスキルも必要です。

基本設計では要件定義をもとに、必要な機能を実現するためのシステム動作を、わかりやすく図や文書を使って表現します。外側の設計書になるため、画面レイアウトやデータベースなどのシステム全体の作成が必要です。

また、詳細設計では内部の細かな機能や動作など、プログラミングができる状態まで設計書に落とし込むため、設計書作成能力にくわえて実装のための深い知識も必須です。

さらに、クライアントや開発チームで設計書の仕様が決まっている場合は、さまざまな仕様に対応できる能力も求められます。

業界に関する知識

上流工程には業界に関する細かい知識が必要です。経験を積んで習得するのも可能ですが、スピーディさを求めるなら資格の取得を検討しましょう。上流工程の業務において、持っておくと便利な資格を紹介します。

資格 概要
応用情報技術者試験 ・基本情報技術者試験の上位資格
・さらに深い情報技術の知識を得られる
・記述式の問題もあるため対策が必要
システムアーキテクト試験 ・高度情報処理技術者試験に含まれる難易度の高い資格
上流工程のエンジニアとして万人に認めてもらえる
・すぐに実践に活かせる内容
・難易度が上位の資格のため、基本情報技術者試験や応用情報技術者試験に合格できるレベルの知識が必須
プロジェクトマネジメント・プロフェッショナル ・プロジェクトマネジメント知識ガイドに沿った国家資格
・受験資格を得るためには実務経験や35時間の研修受講が必須
・全世界で認められている資格のため、日本だけでなくグローバルに仕事ができる
データベーススペシャリスト試験 ・データベースに関わる設計書作成能力を上げられる国家資格
・データベースを用いた上流工程から下流工程までを行うための、必要な知識や実技能力が身につく

システム開発において必要な知識は多岐にわたります。こちらの記事では、システム開発の主な手法や開発の流れ、開発会社の選び方を解説していますので、ぜひあわせてご覧ください。

まとめ

まとめ

上流工程とは、システム開発の要となる、クライアントへのヒアリングから設計までの工程です。後の実装から導入までの下流工程業務を左右するため、とても重要な工程ばかりです。上流工程に関わるエンジニアには、要件分析・定義づけの能力やコミュニケーション能力など、専門知識以外のスキルも必要です。

もちろん、設計書作成能力や業界に関する知識も必要ですので、習得を目指すのであれば、記事内で紹介した資格をとるのがおすすめです。経験を積むよりスピーディに知識を得られますが、資格取得までは一定期間を要します。

エンジニアのご用命は、株式会社 テクノデジタルにお任せください。当社では、弊社エンジニアスタッフがお客様のプロジェクトをアドバイスする、システムコンサルティングを承っています。ぜひ、自社の作業効率化のためにお役立てください。

投稿者

  • デジタルトレンドナビ編集部

    システム開発、Webサイト制作、ECサイトの構築・運用、デジタルトランスフォーメーション(DX)など、デジタルビジネスに関わる多岐の領域において、最新のトレンド情報や実践的なノウハウを発信してまいります。