ソフトウェア開発において上流工程は、最終的な成果物の品質を左右する重要なプロセスです。
しかし、「上流工程」という言葉は知っていても、その仕事内容をイメージできないITエンジニア志望者の方もいるでしょう。
今回は、ITエンジニアの上流工程の概要について詳しく解説します。上流工程担当のITエンジニアに必要なスキルや、目指す方法も紹介しているので、ぜひ参考にしてください。
- もくじ
1. ITエンジニアの上流工程とは
ITエンジニアの上流工程とは、ソフトウェア開発やITインフラ構築における計画段階のプロセスのことです。つまり、ソフトウェアやITインフラを形にする前に、全体像や実現方法を明確にしておくプロセスを指します。
上流工程が正しく行われなければ、高品質な成果物を完成させることはできません。したがって上流工程は、最終的な成果物の品質を大きく左右する重要なプロセスといえます。
1-1 下流工程との違い
上流工程と似た言葉に「下流工程」があります。下流工程とは、ソフトウェアやITインフラを実際に形づくり、稼働させていくプロセスのことです。
大まかにいえば、上流工程が「計画を立てる段階」、下流工程が「計画を実行する段階」となります。
上流工程で決定した内容をもとに、下流工程でソフトウェアやITインフラの開発を進めていくのが一般的です。また、完成した後の運用や保守といった業務も下流工程に含まれます。上流工程と下流工程は、いずれもITエンジニアの業務において欠かせないプロセスです。
1-2 ITエンジニアの職種によって仕事内容は異なる
ITエンジニアの職種によって、上流工程の仕事内容は異なります。
ソフトウェア開発に携わる「開発エンジニア」と、ITインフラを主に扱う「インフラエンジニア」の仕事内容をイメージするとわかりやすいでしょう。
開発エンジニアはソフトウェアの機能や画面、処理の流れなどを決めますが、インフラエンジニアはサーバーやネットワークの構成や使用機器などを決めます。このように、異なる分野の専門知識を必要とするため、職種によって仕事内容が変わるのは必然です。
以降の章では、開発エンジニアにおける上流工程に焦点を当てて解説します。
なお、上流工程に関わる重要な職種として「PM(プロジェクトマネージャ)」があります。PMについて詳しく知りたい方は、下記の記事をご覧ください。
2.ITエンジニアの上流工程における仕事内容
ITエンジニアの上流工程では、「要求定義」「要件定義」「基本設計」「詳細設計」の4プロセスを順番に進めていきます。それぞれの仕事内容を見ていきましょう。
2-1 要求定義
最初に行うのが「要求定義」です。このプロセスでは、「ソフトウェアに何が求められるか」を明確にします。
顧客とのヒアリングやエンドユーザーへのアンケート調査を通じて、ソフトウェアが満たすべき要求を洗い出します。
顧客やエンドユーザーの要求を正確に把握することは、ソフトウェア開発の成功において最も重要です。要求を正確に捉えられないと、価値のあるソフトウェアを完成させることはできません。そのため、必ず最初に要求定義を行い、顧客やエンドユーザーの要求を調査・整理・分析します。
2-2 要件定義
次に、定義した要求を踏まえて「要件定義」を実施します。要件定義とは、「どのようなソフトウェアを開発すべきか」を定義するプロセスです。要求を満たすソフトウェアを開発するために、ソフトウェアに実装すべき機能や達成すべき性能などを明確にします。
ただし、要件定義では開発プロジェクトの予算や人的リソース、顧客のスケジュールなども考慮しなければなりません。そのため、ソフトウェアの理想像だけを追求するのではなく、顧客との打ち合わせを通して要件をすり合わせていくことが重要です。
2-3 基本設計
続いて、定義した要件を踏まえて「基本設計」を実施します。基本設計とは、「どのようにソフトウェアを振る舞わせるか」を具体化するプロセスです。
要件が正しく盛り込まれたソフトウェアを開発するために、具体的な実現方法を明確にします。
基本設計では、ソフトウェアの外部から見える部分が設計対象となります。たとえば、機能のラインナップや画面のレイアウト・入力項目、ボタンの挙動、データベース構成などが設計対象です。一方、プログラムコードの実装方針などの内部的な設計は、次のプロセスで検討します。
基本設計の成果物である「基本設計書」は、顧客からレビューを受けることが一般的です。顧客レビューでは、要件が適切に基本設計へと落とし込まれていること、顧客と開発側で認識がずれていないことを確かめます。
2-4 詳細設計
次に、基本設計の内容を踏まえて「詳細設計」を実施します。詳細設計とは、「どのようにソフトウェアを実装するか」を具体化するプロセスです。基本設計とは対照的に、外部からは見えないソフトウェア内部が設計対象となります。
たとえば、プログラムにおける処理の流れや使用するアルゴリズム・データ構造、コンポーネントの呼び出し順序などが設計対象です。プログラマーが実装するうえで困らないよう、ソフトウェア内部の設計を掘り下げます。
詳細設計は主に開発側のために実施するものであり、顧客レビューを行わない場合が多いです。また、詳細設計を実装工程の一部として扱う場合もあり、プログラマーが詳細設計を担当することもあります。この場合、詳細設計は下図のように「中流工程」として位置付けることも可能です。
3.上流工程を担当するITエンジニアに必要なスキル
上流工程の仕事を適切に行うためには、確かなスキルが求められます。上流工程を担当するITエンジニアに必要なスキルは、主に次の4つです。
3-1 担当職種の業務知識
上流工程を担当するITエンジニアには、担当職種の業務知識が欠かせません。
たとえばWebアプリケーションを開発する場合、Web通信やWeb開発言語などに関する知識が必要です。要件や設計は、こうした業務知識にもとづいて検討します。
また、プログラミングやテストといった下流工程を進めるうえでのノウハウも必要です。
下流工程の視点を持つことで、プログラマーやテスターが直面するトラブルを予見でき、実現性の高い要件や設計を検討できます。

ソフトウェアテスト実施はじめてガイドブック
実際に「テスト実施」・「不具合報告」をする際の正しい流れを解説したガイドブックです。ソフトウェアテストを初めて実施する人に向けて、その作業内容や用語、心構えをまとめています。
3-2 コミュニケーションスキル
上流工程では顧客や開発メンバーとやり取りする場面が多いため、コミュニケーションスキルが不可欠です。
顧客とは、要求をヒアリングして必要に応じて提案を行い、下流工程の担当者とは、要件や設計に関する説明や状況確認のためにやり取りを行います。
相手の考えを正確にくみ取ったり、自分の考えを正確に伝えたりできなければ、認識違いが生じかねません。そのため、双方向のやり取りを正確かつ迅速に行うには、コミュニケーションスキルが必要です。
3-3 マネジメントスキル
上流工程の担当者には、プロジェクト全体を見渡すマネジメントスキルも必要です。
プロジェクトの進行に必要なリソース(ヒト、モノ、カネ、時間)を適切に管理・調整する能力が求められます。
具体的には、顧客と開発チームの間に立ち、予算や人員を加味して要件の調整や、進捗状況によってはスケジュールの調整も行います。マネジメントスキルがなければ、開発チームを成功に導くことはできません。
開発メンバーの進捗や開発チーム全体の課題を管理することも多いです。そのため、開発チーム全体を見て常に適切なアクションを取れるような、マネジメントスキルの高い人材が求められます。
3-4 ドキュメント作成スキル
要件定義では「要件定義書」、基本設計では「基本設計書」と工程ごとにドキュメント(文書)を作成する必要があるため、ドキュメント作成スキルも求められます。
要件定義書や基本設計書は、顧客にも見せることが多いため、開発者以外にも伝わる内容であることが重要です。
そのため、伝わりやすい文章の書き方、情報を合理的に整理・構成する能力が求められます。
4.上流工程担当のITエンジニアを目指す方法
上流工程を担当するITエンジニアは、責任が大きく、それに見合った収入も期待できるため、多くのITエンジニアが目指すポジションです。そのため、上流工程を担当するITエンジニアに興味がある方も多いのではないでしょうか。
ここでは、上流工程担当のITエンジニアを目指すための方法を紹介します。
4-1 知識・スキルを証明できる資格を取得する
少しでも早く上流工程の担当者を目指す場合は、資格の取得が有効です。
上流工程の業務には資格が必須ではありませんが、資格を持つことで客観的に知識・スキルを証明でき、上流工程へのキャリアアップの際に有利になります。
上流工程の担当者を目指す方には、以下の資格取得をおすすめします。
資格名 | 概要 |
---|---|
応用情報技術者試験 | 広範なITに関する知識を証明できる国家資格 |
システムアーキテクト試験 | 高度なシステム設計スキルを証明できる国家資格 |
プロジェクトマネージャ試験 | 高度なプロジェクトマネジメントスキルを証明できる国家資格 |
シスコ認定 | ネットワーク技術やネットワーク機器の活用スキルを証明できる資格 |
オラクルマスター | データベースの設計などに関する知識や活用スキルを証明できる資格 |
資格取得を目指す際には、受験費用や学習時間を確保する必要があります。経済的・時間的に余裕がある方は、資格取得を目指してみるのもよいでしょう。
4-2 下流工程の経験を積む
堅実な方法として、下流工程の担当者として経験を積むという手段もあります。
上流工程は、プロジェクト全体の成功を左右する重要な役割であり、高い専門知識と経験が求められます。したがって、下流工程の仕事を経験しながら上流工程の働き方を学ぶのも1つの手です。
下流工程を担当する場合、単なる「テストの担当者」ではなく「最初のユーザー」であることを意識し、要求やニーズが反映されているかを確認しましょう。
そうすることで、上流工程で欠かせない要求や要件を意識できるようになります。このように、下流工程の経験を積むことは、実現性の高い要件や設計を考える際にもプラスに働きます。
まとめ
ITエンジニアの上流工程とは、ソフトウェア開発やITインフラ構築における計画段階のプロセスのことです。
上流工程は下流工程のインプットであり、最終的な成果物の品質を大きく左右する重要なプロセスといえます。
上流工程を担当するには、多様なスキルと経験が求められるため、下流工程の経験を積み、キャリアアップを目指すのが堅実です。上流工程の担当者を目指す方は、今回の内容をぜひ参考にしてください。
なお、ソフトウェア開発に関する理解を深めたい場合は、当サイト「Qbook」の無料会員登録がおすすめです。メールマガジンにて、イベント情報や業界人のインタビューの様子をお届けしているので、最新のITトレンドや技術をキャッチアップできます。