エンジニアの業務は上流と下流に分けられ、上流工程は要件定義や設計などプロジェクト全体に関わる業務、下流工程は実装をはじめとする技術系の業務を担います。
上流工程の特徴は年収の高さです。業務の難易度が高いうえ、仕事の質がプロジェクトの成功を左右するため、責任の大きさから給与が高く設定される傾向があります。また、下流工程に比べて勤務時間が短いこともあり、待遇面でも優れているポジションであるといえるのです。
今回は、上流工程に興味はあるものの、業務内容をあまり理解していない方に向けて、仕事内容や必要なスキルを紹介します。
システム開発における「上流工程」とは
ここではシステム開発の上流工程が、どのような段階・業務なのか解説します。
上流工程とは?
上流工程とは、システム開発の企画から設計にあたる最初期の段階・業務を指します。
クライアントの要望をヒアリングして、どのような機能が必要か考え、開発計画やスケジュール、予算などを具体的に決めていく工程です。
システム開発は、上流から下流に業務が進むのが一般的なため、上流工程に問題が生じた場合、企画段階からやり直しが生じる可能性もあります。
システムの品質や方向性、納期を左右する責任の大きな業務です。
上流工程と下流工程との違い
上流工程が作った設計書を基に、実際にコーディングしていくのが下流工程です。プログラマーやテスターなどの職種が該当します。
具体的には、コーディングからシステムのテスト、納品までが主な業務です。上流工程との違いは、下記の通りです。
上流工程 | 下流工程 | |
主な業務 | ・要件定義
・設計 ・予算作成 |
・コーディング
・システムのテスト ・納品 |
クライアントとの折衝 | 有 | 無 |
必要なスキル | ・IT分野の幅広い知識
・コミュニケーション能力 ・マネジメントスキル |
・プログラミング技術 |
上流工程のほうが責任の大きな仕事を担うため、下流工程よりも年収が高い傾向にあります。例えば、後述するプロジェクトマネージャーの平均年収は650万円ほど、下流工程に分類されるフロントエンドエンジニアの平均年収は約557万円です。
加えて、下流工程よりも作業量が少ないことから、勤務時間が比較的短く、時間に余裕があるのも特徴です。
出典:マイナビ転職「2024年版 職種別 モデル年収平均ランキング」
システム開発における上流工程の流れ
上流工程が、どのような流れで行われるのか、下記4つの項目に分けて解説します。
・システム企画
・要件定義
・基本設計
・詳細設計
1.システム企画
クライアントが、どのようなシステムを求めているかをヒアリングして計画書を作成します。
クライアントが抱える課題を洗い出し、課題解決に必要な機能を備えたシステムの方針を考える段階です。開発期間や開発費用・費用対効果なども決定します。
顧客視点で使いやすいシステムに仕上げるためには、顧客側と開発側の要望にうまく折り合いをつけ、ニーズに則した提案を行うことが大切です。
2.要件定義
どのようなシステムにしたいか決まったら、どうすれば実現できるのか、必要な要件・範囲を明確に決定していきます。
要件には下記の2つがあり、予算を考慮しながら要件定義書にまとめます。
・機能要件:システム・ソフトウェアに搭載する機能について
・非機能要件:性能・使用性・メンテナンス性などについて
今後の方向性を左右するため、クライアントと齟齬がないように、しっかりと認識をすり合わせることが必要です。
3.基本設計
要件定義を基に、システムの全体像や主要機能を設計する段階です。
特にシステムの操作画面や操作方法、データの出力方法など、ユーザーが目にする部分を中心に設計することから、システムの品質・実用性を左右する重要な工程です。
また、実際にシステムを構築する下流工程の業務推進にも大きく影響します。
4.詳細設計
基本設計に基づき、ユーザーからは見えない内部まで、詳細にシステムを設計します。
例えば、ボタンを押すとプログラムがどのように動くかなど、システム内部の細かい機能・動作を、実際にプログラミングができるレベルまで詳しく設計する段階です。
詳細設計で、プログラムの仕様が細かく綺麗に書いておくと、誰がプログラミングしても高品質のシステムに仕上げやすくなります。
上流工程に携わるエンジニア
上流工程に携わるのは、どのようなエンジニアなのか、主な職種を2つ解説します。
・ITコンサルタント
・プロジェクトマネージャー(PM)
ITコンサルタント
ITコンサルタントは、企業の経営戦略をヒアリングして、必要なツールの導入支援を行う仕事です。
ITの専門家として、クライアントに最適な方法をアドバイスします。そのために、クライアントが抱える課題をヒアリングして、どのような施策がベストか調査・分析します。
同様の課題でも新システムの導入・既存システムの改善など、企業によって適した課題解決方法は異なるため、IT関連の深い知識が求められます。
プロジェクトマネージャー(PM)
プロジェクトマネージャーは、プロジェクトの責任者としてチームをまとめる仕事です。
限られたコスト・期限内に製品を納品するために、下記のような業務を担います。
・クライアントからのヒアリング
・スケジュールの決定
・進捗状況の確認
・人員確保
・開発目的や予算などの企画立案
・予算・工数の割り出し など
クライアントとの折衝やチームメンバーの統率など、高いコミュニケーション能力やマネジメントスキルなども求められることから、幅広い知識やスキルが必要です。
上流工程エンジニアに必要なスキルとは
上流工程エンジニアには、下流工程よりも多くのスキルを身に付けておくことが必要です。特に重要な3つのスキルを紹介します。
・IT・開発における幅広い知識
・コミュニケーション能力
・マネジメントスキル
IT・開発における幅広い知識
クライアントに適切な提案を行うためには、IT・開発における幅広い知識が必要です。
課題解決のため適切な提案を行うには、下記のような幅広い分野の知識が求められます。
・プログラミング言語
・フレームワーク
・ネットワーク
・サーバーの仮想化
・データベース
・セキュリティ
・クラウド など
最新のトレンドを把握していることで、適切なシステムの要件定義・設計を行えます。
他にも、明確な指示を設計書に盛り込んだり、下流工程でリソース不足にならないよう十分な予算・納期を設定したりすることも必要です。
コミュニケーション能力
クライアントの要望をヒアリングするコミュニケーション能力も重要です。
ヒアリング時点で、クライアントがすべての要望を明確にしているとは限らず、気付いていない潜在的な要望があるかもしれません。どのような課題・要望があるのか、細かく汲み取ることが大切です。
十分にヒアリングできれば、課題解決につながるシステムを作れるのはもちろん、手戻りを減らして納期の延長・人件費アップなどのリスクを防げます。
加えて、プロジェクトを円滑に進めるためには、チームメンバーとのコミュニケーションも重要です。
マネジメントスキル
プロジェクトを円滑に進めるためには、下流工程も含めたメンバーをまとめるマネジメントスキルも求められます。
プロジェクトはすべてチーム単位で行うため、下記のような管理業務も重要な仕事です。
・プロジェクトの進行管理
・スケジュール管理
・メンバーのタスク管理
・成果物の品質管理
偏りの少ないタスク分配や役割分担など、チーム全体が円滑にプロジェクトを進められるよう管理することが必要です。
上流工程のエンジニアになる方法
上流工程のエンジニアへのなり方を「ITコンサルタント」「プロジェクトマネージャー」の2つを例として紹介します。
ITコンサルタントを目指すキャリアステップ
ITコンサルタントになるためのルートは、大きく2つです。
・開発エンジニアからキャリアアップする
・ITコンサルタントが在籍している企業に勤める
まず開発エンジニアからキャリアアップする場合、プロジェクトマネージャーとして要件定義や基本設計などの経験を積めば、昇進・転職などでITコンサルタントを目指せます。
また、ITコンサルタントが在籍している企業に勤め、実績を積むのも有効的な手段です。なお、ITコンサルタントが所属している企業例としては下記が挙げられます。
企業例 | 概要 |
コンサルティングファーム | 企業が抱える経営課題を、事業戦略や業務改革、システム構築などの観点から解決に導く企業 |
大手ベンダー | ITに関連するサービスや製品を販売する企業 |
SIer | 一連のシステム開発を一気通貫して担う企業 |
どちらの場合でも、ITコーディネータやITストラテジストなどの資格を取得しておくと専門的な知識を有する証となります。
プロジェクトマネージャー(PM)を目指すキャリアステップ
PMになるには、開発エンジニアから徐々にステップアップしましょう。
まず開発エンジニアとなって、3年ほど実務経験を積みます。技術・知識の向上だけでなく、多くのプロジェクトに携わることが大切です。
並行して、プロジェクトマネージャー試験やITストラテジスト試験の合格に向けて勉強し、必要な知識を蓄えておきましょう。それぞれの試験の概要は下記のとおりです。
試験名 | 概要 |
プロジェクトマネージャー試験 | ・IPA(情報処理推進機構)が実施している国家試験
・予算や納期、品質管理などPMとして必要な知識への理解を深めることを目的とした試験 |
ITストラテジスト試験 | ・経済産業省管轄のもと、IPA(情報処理推進機構)が実施している国家試験
・ITを活用した事業戦略の策定から企業への提案、推進までを担う「高度IT人材」を選抜する試験 |
次に、PMの下位ポジションであるプロジェクトリーダー(PL)を目指します。PLは開発現場の実行責任者で、開発に加えて品質チェックや進捗管理など、部分的なマネジメント経験を積める役割です。
実績を重ね、プロジェクトマネージャーに求められるスキルを蓄えていくことで、PMへの道が開けます。
まとめ
上流工程はシステムの根本を作る工程であるため、幅広い知識と豊富なスキル・経験が必要です。
特にPMは開発エンジニアからのキャリアアップが一般的で、未経験からでも専門知識を学べばエンジニアを目指せます。
とはいえ独学では難しいため、体系的に学べるスクールの利用がおすすめです。「NINJA CODE」であれば、実務を見据えた実践的なカリキュラムを受けられるのはもちろん、経験豊富なメンターがサポートするため、挫折の心配がありません。
無料で体験レッスン・メンター相談を受け付けているので、まずは気軽にお問い合わせください。