\15年超の実績を持つレバテックが運営/
\15年超の実績を持つレバテックが運営/
1.システム開発における上流工程とは?
システム開発においては、古くから「ウォーターフォールモデル」と呼ばれる開発手法が採用されてきました。ウォーターフォールとは、滝のように水が流れ落ちることを意味しており、上流工程から下流工程へという流れでシステム開発を進めることを指します。
このウォーターフォールモデルにおいて、上流工程は開発フェーズの初期段階にあたる業務を意味します。上流工程・下流工程をそれぞれ比較しながら、システム開発の上流工程について解説します。
関連記事:システム開発の工程とは?要件定義や設計、テストなどの作業内容を解説
上流工程は開発フェーズの初期段階の業務
システム開発における上流工程には、開発プロセスにおける初期段階に必要な業務が含まれます。クライアント企業からシステム開発について依頼された場合には、「どのようなシステムが必要なのか?」「そのためにどのくらいの予算を割けるのか?」など、今後の開発プロセス全体の方向性を決める条件について明確にする必要があります。
この段階では、まだプログラミングやコーディングには取り掛かっておらず、「システムエンジニア」などの職種がクライアントとの打ち合わせを重ねつつ、開発プロジェクトに必要な情報を収集・整理している段階です。そのため上流工程においては、高いプログラミングスキルよりも対人折衝力やヒアリングスキル・マネジメントスキルなどが求められるのが特徴です。
上流工程に対する下流工程とは?
上流工程に対して、下流工程では仕様書・設計書をもとにしたプログラミング・コーディングを担当します。手を動かしながらプログラムを作成し、上流工程における条件を満たすようなシステム開発に取り組みます。主に「プログラマー」「デバッガー」などが活躍しているほか、下流工程を下請け企業に外注しているケースも多いので、下流工程をメインに担当しているIT企業やエンジニアも少なくありません。
また、上流工程のエンジニアは、下流工程の開発チームに対して、プロジェクト全体のマネジメント・管理も担当することが多いです。開発チームからの質問・相談があればそれに対応したり、開発の進行度合いに応じてスケジュールを調整したりするのも、上流工程を担当するエンジニアの役割です。
\15年超の実績を持つレバテックが運営/
\15年超の実績を持つレバテックが運営/
上流工程に携わるエンジニア職種
システム開発における上流工程に携わるエンジニアには、次のような職種が挙げられます。
-
・プロジェクトマネージャー
・ITコンサルタント
これらの職種は、クライアント企業と密に連携を取り、ITを通じて経営課題を解決するための助言を伝えながら、システムの仕様書・設計書を作成してプロジェクト全体のマネジメントを行います。プロジェクトマネージャー・ITコンサルタントについては、現場での豊富な開発経験や、数々のプロジェクトに携わってきた実績が求められるポジションですが、システムエンジニア(SE)に関しては未経験からの採用も多い職種です。
上流工程に携わる仕事がしたい方の中にも、システムエンジニアとして企業へ入社し、経験・スキルを積みながらより上位の職種へとステップアップを目指すことが多いです。そのため上流工程を担当するエンジニアになりたい場合には、まずはシステムエンジニアとしての内定を目指すと良いでしょう。
上流工程に携わるIT企業
IT業界には多重下請け構造が今でも存在しているのが現実であり、二次請け・三次請けの企業になればなるほど、開発業務が中心の下流工程に携わることになります。具体的には、クライアント企業に労働力を提供するSES企業などが当てはまります。一方で、一次請け・元請けの企業であれば、システム開発を発注するクライアント企業と直接やり取りができるため、上流工程を担当することができます。たとえば、自社でサービスを手掛ける自社開発の企業や、グループ会社のシステム開発を担うSIerなど。
このように上流工程を担当するエンジニアになれるかどうかは、目指す職種だけではなく、入社する企業によっても大きく変わります。そのため応募するIT企業を選ぶ時には、上流工程に携わる案件を抱えているのかどうかを重視すると良いでしょう。
\15年超の実績を持つレバテックが運営/
\15年超の実績を持つレバテックが運営/
2.上流工程におけるエンジニアの仕事内容
続いて、上流工程を担当するエンジニアの仕事内容について、次の4つの工程ごとにご紹介します。
-
・要件分析
・要件定義
・基本設計
・詳細設計
それぞれの業務でどのような仕事内容を担当するのかを押さえておきましょう。
要件分析
要件分析とは、システム開発を発注するクライアント企業に対し、開発するシステムに求める役割・機能などをヒアリングする段階です。開発業務に取り掛かった後に、クライアント企業からの仕様変更が発生してしまわないよう、この段階でしっかりと要望を汲み取って分析することが重要です。
クライアントが抱える経営課題に対し、ITを通じてどのように改善できるのかをはっきりと伝えて提案するために、プロジェクトマネージャーやITコンサルタントの豊富な知識が必要とされる段階でもあります。
要件定義
クライアント企業へのヒアリングを通じた要件分析をもとに、続いて要件定義のフェーズへと進みます。要件定義とは、開発するシステムにおいて必要となる機能・性能を決定し、開発のゴールを定める段階でもあります。引き続きクライアント企業との打ち合わせを重ねながら、予算・納期の制約がある中でどのようなシステムを実現するのかを定めます。
なお、要件定義ではシステムそのものの機能を決める「機能要件」と、そのシステムのセキュリティ面や応答速度などを決めた「非機能要件」の2種類が盛り込まれます。こちらもシステム開発に関する豊富な経験・実績が求められる業務の一つです。
\15年超の実績を持つレバテックが運営/
\15年超の実績を持つレバテックが運営/
基本設計
要件定義が固まった後は、開発するシステムの全体的な設計をまとめるフェーズへと移ります。システム開発の土台となるインフラ設計から使用する言語・技術の選定、開発チーム向けの開発フローの設計なども基本設計に含まれます。クライアント企業と共有する設計書なので、ユーザーとなるクライアント企業から見える画面の設計や、必要となるコストの見積もりなども作成します。
自社の外部で用いる設計なので「外部設計」とも呼ばれ、クライアント企業からの評価や納得感にも直結する部分なので、わかりやすく丁寧な設計が求められます。
詳細設計
クライアント企業に共有する基本設計に対して、主に自社の開発メンバーや開発を外注する下請け企業向けに作成するのが、詳細設計です。「内部設計」とも呼ばれ、基本設計の仕様をどのように実装するのかを決めるのが特徴です。クライアント企業に対して提出するのではなく、現場の開発チーム向けに共有する設計書なので、論理的かつ伝わりやすいドキュメントを心がけるのが大切です。
\15年超の実績を持つレバテックが運営/
\15年超の実績を持つレバテックが運営/
3.上流工程で働くエンジニアの給料が高い理由とは?
上流工程で働くエンジニアは、下流工程に携わるエンジニアと比較して、給与水準が高く待遇も恵まれている傾向にあります。上流工程・下流工程の違いでなぜ差が生まれるのかといえば、背負う責任が大きくなることが理由です。
上流工程のエンジニアは、システム設計の全体像や方向性に関わる仕事のほか、開発プロジェクト全体のマネージャーとして責任を持って業務を進める必要があります。また、クライアント企業とのやり取りにおいて、適切な要件分析・要件定義を行い、わかりやすい設計書を作成するためには、豊富な知識と経験も必要となります。
その結果、自然とスキルレベルが高く開発実績も豊富な優秀なエンジニアが抜擢されることになり、そうした人材はもともと高収入で企業に採用されているケースが多いので、上流工程のエンジニアは皆、高収入で待遇が良いというイメージにつながっているのです。
関連記事:ITエンジニアの年収はいくら?職種別の平均年収や年収を上げる方法について解説!
\15年超の実績を持つレバテックが運営/
\15年超の実績を持つレバテックが運営/
4.上流工程で働くエンジニアに求められるスキル
ここまで解説してきた通り、上流工程を担当するエンジニアはプロジェクト全体に対する大きな責任を背負うものの、大きなやりがいを得られて給与水準も高くなるなどの魅力があります。そんな上流工程を目指すためには、次のようなスキルを身につけておかなければなりません。
-
・ヒアリングスキル
・マネジメントスキル
・設計書・ドキュメントの作成スキル
・現場での豊富な開発経験
それぞれ順番に解説するので、将来のキャリアプランを作成する時の参考にしてみてください。
ヒアリングスキル
システム開発の上流工程では、クライアント企業とのやり取りを重ねながらニーズを汲み取ったり、要件分析したりする業務が含まれます。こうした業務をスムーズに進めるためには、相手から適切な情報を引き出すヒアリングスキルが欠かせません。開発に取り掛かった後で追加の要望や仕様変更が発生しないよう、事前に要件を洗い出しておくことがポイントです。
クライアント企業へのヒアリングでは、企業として困っている課題や問題に着目し、それをITの力を使って解決する道筋を提案することが重要となります。「システムを刷新したい」という言葉の裏にある不便・不満には何があるのか、どのような業務効率化を求めているのかをしっかりとヒアリングした上で要件定義・設計を行います。
マネジメントスキル
上流工程に携わるエンジニアは、担当するプロジェクト全体をうまくまとめるマネジメントスキルも欠かせません。開発の進捗を常に確認しながら、スケジュール調整やタスク調整を行い、開発チームが円滑に開発に取り組めるように支援します。
下流工程を担当する開発チームは、自社で用意するケース以外にも、外注の下請け企業に依頼するケースもあります。その場合には下請け企業との窓口も担当し、別の企業で働く開発チームとの連携を取りながらプロジェクトを進めることが必要です。
\15年超の実績を持つレバテックが運営/
\15年超の実績を持つレバテックが運営/
設計書・ドキュメントの作成スキル
上流工程では設計書などのドキュメントを作成する業務も多く発生し、わかりやすく認識の齟齬が発生しないドキュメントを作成する力は非常に重宝されます。わかりやすい設計書を用意できると、クライアント企業にとって開発するシステムのイメージを把握しやすくなるほか、開発チームにとっても明確な指示をもとにプログラミングを進めやすくなるからです。
要件定義や設計を適切に行うことに加えて、それらの情報を誰が読んでも同じように伝わるドキュメントに落とし込むスキルを持ったエンジニアは、上流工程でも活躍しやすいでしょう。
現場での豊富な開発経験
上流工程を担当するエンジニアは、上流工程に関する高いスキルを持っていることに加えて、下流工程における豊富な開発経験を持っていることが重要です。現場を知らないエンジニアが要件定義・設計を担当しても、無理な予算・納期を開発チームへ押し付ける結果になってしまうからです。
また、システム開発を通じてクライアント企業の課題を解決するためには、そのシステムがどのように企業の業務を効率化し、どういった導入メリットがあるのかを技術的な観点から伝えるスキルも求められます。ITの専門家としてクライアント企業からの信頼関係を構築しながらプロジェクトを進めるためにも、現場での開発経験は欠かせないのです。
\15年超の実績を持つレバテックが運営/
\15年超の実績を持つレバテックが運営/
5.上流工程を担当するエンジニアを目指すメリット
上流工程を担当できるエンジニアの需要は高く、一方で上流工程に関する豊富な実績や高いスキルを持ったエンジニアの数は少ないのが実情です。そうした環境の中で上流工程を担当するエンジニアを目指すメリットには、次の3つが挙げられます。
-
・市場価値が高まり給料が高くなる
・フリーランスエンジニアとして独立しやすい
・管理職へステップアップが可能
それぞれ順番にご紹介しましょう。
市場価値が高まり給料が高くなる
上流工程を担当できる経験豊富なエンジニアは非常に数が少ないため、市場価値が高く高待遇で迎えられることが多いです。プログラマーとして下流工程で開発業務に携わるよりも高い給料を得られるので、高収入を目指したい方には大きなメリットとなるでしょう。
上流工程の高いスキルを持ったエンジニアはどの企業からも重宝されるので、将来転職活動に取り組む際にも多くの企業からの内定を獲得できるチャンスがあります。上流工程の仕事内容はAIに代替されにくい業務でもあるため、将来性が高いスキル・経験を身に付けたい方にもおすすめです。
\15年超の実績を持つレバテックが運営/
\15年超の実績を持つレバテックが運営/
フリーランスエンジニアとして独立しやすい
上流工程を担当できるスキルを持ったエンジニアは、独立してフリーランスエンジニアとして活躍しやすいメリットもあります。上流工程の案件は単価が高く、フリーランスとしての収入も安定しやすくなるほか、下流工程も担当できるフルスタックエンジニアとしての技術を身につければ、大型のプロジェクトを任されるチャンスも増えます。
企業で働きながら上流工程に強いエンジニアとして活躍し、多くのクライアント企業とのコネクションを作っておけば、独立後も仕事に困ることは少ないでしょう。そのため将来は時間・場所にとらわれない自由な働き方を実現したい方にも、上流工程のエンジニアは適しています。
管理職へステップアップが可能
上流工程におけるマネジメントスキルを磨くことにより、社内の管理職へとステップアップを狙うことも可能です。マネジメントのプロとして責任あるポジションを担当し、部下の育成に力を入れたり、企業の経営層を目指したりと、管理職ならではのキャリアを目指すことができます。
管理職を目指すことで収入もアップするほか、転職を考える時にも高待遇で迎えられるチャンスが高まります。プロジェクトマネージャーやITコンサルタントといった上位職種を目指す時にも管理職としてのキャリアは役立つので、上位職種へステップアップしたい方にも向いています。
\15年超の実績を持つレバテックが運営/
\15年超の実績を持つレバテックが運営/
6.上流工程を担当するエンジニアを目指すデメリット
最後に、上流工程を担当するエンジニアを目指す際のデメリットについてもご紹介しましょう。
-
・コーディング・プログラミングの機会が減ってしまう
・クライアント企業と自社の板挟みになることも
・人付き合いが苦手な人にはミスマッチ
これらのデメリットも踏まえた上で、将来のキャリアプランを作成してみてください。
コーディング・プログラミングの機会が減ってしまう
上流工程を中心に活躍するエンジニアは、下流工程におけるコーディング・プログラミングに携わる機会が減少する傾向にあります。クライアント企業とのやり取りやプロジェクトのマネジメントよりも、現場でコードを書いてプログラマーとして活躍したい方にとっては、上流工程を担当する魅力に乏しいと感じるかもしれません。
開発業務を主に担当する下流工程においても、高いスキルや幅広い実績を身につけることで、市場価値の高い人材を目指すことは可能です。収入面や将来性だけではなく、自分の希望や適性にあわせてキャリアパスを選択することが大切です。
\15年超の実績を持つレバテックが運営/
\15年超の実績を持つレバテックが運営/
クライアント企業と自社の板挟みになることも
上流工程を担当するエンジニアは、クライアント企業とのやり取りを担当する一方で、開発チームのマネジメントも担当する立場です。時にはクライアント企業から無理な要望を押し付けられてしまい、開発チームからの不満を一挙に引き受けるなど、板挟み状態となってストレスが大きくなる可能性もあります。
上流工程を担当できるようになったが、毎日調整・交渉ばかりに忙殺されてしまうケースも多く、やりがいを実感しにくいことも考えられます。対人折衝力に自信があり、クライアント企業や開発メンバーなどに対してうまく立ち回れる方であれば活躍しやすいですが、調整役が苦手な人には不向きかもしれません。
人付き合いが苦手な人にはミスマッチ
上流工程のエンジニアの業務では、さまざまな相手とのやり取りが発生するのも特徴です。パソコンに向かって黙々と作業するというよりは、まるで営業職のように多くの人の元を訪れてコミュニケーションを取るのが仕事です。そのためプログラマーを目指してIT業界に入った方や、人付き合いが苦手な人にとってはミスマッチを起こす可能性が高くなります。
特にシステムエンジニア・プログラマーはどちらも新卒採用を行う企業で募集されていることが多い職種ですが、システムエンジニアは上流工程寄り、プログラマーは下流工程寄りの業務を担当するという違いがあるので、これらをしっかりと理解した上で希望職種を決めることが大切です。
\15年超の実績を持つレバテックが運営/
\15年超の実績を持つレバテックが運営/
7.まとめ
上流工程を担当するエンジニアは、システム開発を進める際に欠かせない要件分析・要件定義や設計段階に携わる職種で、システムエンジニアやプロジェクトマネージャー、ITコンサルタントといった職種が担当することが多いです。開発プロジェクト全体のマネジメントなど、責任ある仕事を任せられることが多いので、上流工程のエンジニアは高収入が設定されていることも珍しくありません。
上流工程で活躍するエンジニアとなるためには、適切にニーズを汲み取るヒアリングスキルや、プロジェクト全体をまとめるマネジメントスキルなどが求められます。将来はフリーランスエンジニアとして独立しやすく、管理職にもステップアップしやすいので、高収入のポジションや将来性ある仕事を担当したい方は、ぜひ上流工程のエンジニアを目指してみてください。
ITエンジニアを目指す新卒学生向け就活エージェントならレバテックルーキー
レバテックルーキーは、レバテックが運営するITエンジニア専門の就活エージェントです。多数のITエンジニアのキャリア支援経験のあるアドバイザーが、あなたのスキルと希望に合わせた企業の紹介から、人事目線での面接対策など、就職までを一貫してサポートします。ES添削、面接対策、ポートフォリオ作成サポートなども実施していますので、まずは一度カウンセリングにお越しください。
就活アドバイザーに相談してみる