
『上流工程に進めないと、エンジニアとして先がないって本当?』
『未経験から入っても、設計や要件定義まで任せてもらえるようになるのかな…』
『上流工程はきついって聞くけど、実際はどうなんだろう…』
エンジニアを目指すにあたり、上流工程という言葉を目にして、自分にも関係があるのか気になる方もいるでしょう。
上流工程は入社直後に任される仕事ではなく、下流工程で積み重ねた経験の先にある仕事です。
この記事では、上流工程の仕事内容から、未経験で入社した方が任されるまでの年数と条件までを解説します。
CIN GROUPでは、異業種から転職した100名以上のエンジニアデビューを支援してきました。
当社のキャリアプランや各制度について気になった方は、下記エントリーボタンより、お気軽にエントリーください。
100名以上の
未経験エンジニアが活躍中!
この記事の内容を、約1分の動画にまとめています。
未経験から上流工程を任されるまでの流れをすばやく知りたい方や、文字を読む時間がない方は、まずこちらの要約動画をご覧ください。

| 工程 | 区分 | 主な担当者 | 決めること・つくるもの |
|---|---|---|---|
| 要件定義 | 上流 | PM・PL・上流SE | システムに必要な機能や条件 |
| 基本設計 | 上流 | PL・上流SE | 画面やデータなど利用者から見える仕様 |
| 詳細設計 | 現場によって異なる | SE・中堅エンジニア | プログラムの内部構造や処理の組み立て |
| 実装 | 下流 | SE・エンジニア | 設計書に沿ったプログラム |
| テスト | 下流 | 実装担当のSE・エンジニア | 設計どおりに動くかの確認 |
上流工程とは、システム開発の流れのうち、お客様の要望を聞き取ってシステムの仕様を決めていく前半の工程を指す言葉です。
開発の流れを川にたとえ、始まりに近い側を上流、プログラムをつくってテストする後半を下流と呼んでいます。
上流工程で決めた内容をもとに下流工程が形にしていくため、両者の違いは『決める側』か『つくる側』かと考えると分かりやすいでしょう。
なお、表の担当者は一般的な目安であり、プロジェクトの規模や体制によって変わります。
上流工程の中心となるのは、要件定義と基本設計の2つの工程です。
要件定義では、お客様にヒアリングを重ねて業務の流れや困りごとを整理し、システムに必要な機能や性能、予算や納期といった条件を要件定義書にまとめます。
続く基本設計では、その要件をもとに画面のレイアウトや入力項目、帳票、データの持ち方など、利用者から見える部分の仕様を基本設計書として決めていきます。
ここで押さえておきたいのは、上流工程の成果物はプログラムではなく『文書』だという点です。
一方の下流工程では、設計書に書かれた仕様をもとにプログラムを書き、意図したとおりに動くかをテストで確かめていきます。
上流工程が文書で示した完成形を、下流工程が実際に動くシステムへと仕上げていく関係だと捉えると、全体の流れをつかみやすくなります。
基本設計と実装の間にある詳細設計は、上流工程に含めるかどうかが現場によって分かれる工程です。
詳細設計では、基本設計で決めた仕様をプログラムの内部構造や処理の手順へと落とし込み、実装担当者がそのままコードを書ける状態に整えます。
設計チームと開発チームが分かれている大規模な案件では開発側が担当して下流工程に数えられることがあり、同じSEが一貫して担当する案件では上流工程として扱われることもあります。
いずれにしても、詳細設計は上流と下流をつなぐ橋渡しの工程であり、実装の経験を積んだエンジニアが上流工程に近づく最初のステップになりやすい工程といえます。
また、要件定義よりもさらに前の、システム化の企画や経営課題の整理を『超上流工程』と呼ぶこともあります。
各工程で行う作業の詳しい中身は、以下の記事で解説しています。

上流工程エンジニアの仕事は、一日中パソコンに向かってコードを書くイメージとは少し異なります。
打ち合わせや資料づくりの比重が大きく、人と話して物事を決めることが仕事の中心になる点が、下流工程との大きな違いです。
お客様は『在庫の管理を楽にしたい』『申し込みの手続きをオンラインにしたい』のように、やりたいことを大まかな言葉で伝えてくることが少なくありません。
上流工程エンジニアは、ヒアリングを通じて、誰が・いつ・どのような操作をして・どんな結果を得たいのかを一つずつ具体的な要件に置き換えていきます。
このとき大切になるのが、お客様自身も意識していない例外のケースを先回りして確認する姿勢です。
たとえば『返品があったときに在庫はどう戻すのか』『締め日を過ぎた申し込みはどう扱うのか』といった点は、聞かれて初めてお客様が答えを考えることも多い部分です。
決めた内容は要件定義書にまとめてお客様と合意を取りますが、合意した後の変更はスケジュールや費用に大きく響くため、曖昧なまま次の工程へ進めないことが求められます。
基本設計書は、下流工程を担当するエンジニアが読み、その内容に沿って実装を進めることを前提とした文書です。
画面ごとの入力項目や文字数の上限、エラーが起きたときに表示するメッセージ、データをどこに保存するかといった点まで、実装に必要な情報を漏れなく書き込んでいきます。
設計書の記述が曖昧だと、実装担当者がそれぞれの解釈でつくってしまい、テストの段階で食い違いが見つかって手戻りが発生しかねません。
そのため上流工程では、読んだ人によって解釈が分かれない書き方が強く求められます。
実装を経験したことのあるエンジニアほど、実装担当者がどこで迷いやすいかを具体的に想像できるため、伝わりやすい設計書を書けるようになっていきます。
上流工程エンジニアの一日は、お客様との定例会議や開発チームとの認識合わせ、テスト担当者との確認など、人とのやりとりで多くの時間が埋まっていきます。
開発の途中でお客様から仕様変更の依頼が届いた場合は、影響が及ぶ範囲や追加でかかる作業量を見積もり、納期や費用をどうするかをお客様と相談しなければなりません。
技術的にできることとお客様の事情の両方を理解したうえで、関係者が納得できる落としどころを探す役割を担う点が、上流工程ならではの難しさです。
コードを書く時間は下流工程にいた頃より短くなる一方で、プロジェクト全体の進み具合や課題を把握する時間は長くなります。
なお、現場によっては上流工程のエンジニアが実装を兼ねることもあり、仕事の配分は案件の規模や体制によって変わります。

上流工程はエンジニアのキャリアの目標として語られることが多い一方で、『きつい』『つまらない』という声があるのも事実です。
どちらの声も、担当する仕事の中身が下流工程から大きく変わることから生まれており、自分の向き不向きを考える材料になります。
上流工程が『つまらない』と言われる最大の理由は、プログラムを書く時間が減り、資料づくりや会議が仕事の中心になることにあります。
プログラミングが好きでエンジニアになった方ほど、自分の書いたコードが動いたときの達成感を直接味わう機会が減ることに、物足りなさを感じやすいかもしれません。
ただし、上流工程に進んだからといって技術を手放す必要はありません。
居酒屋店員から転職し、現在はプロジェクトリーダーを務める当社の社員は、目指す姿について『意識と立場は上流工程だとしても、いざというときに火消しができる。ちょっとしたアドバイスでスタックしていた案件が動き出す。そんなPLってカッコいいじゃないですか』と語っています。
技術が分かる上流工程エンジニアは現場から頼られやすく、手を動かしてきた経験はむしろ強みとして活きてきます。
上流工程が『きつい』と言われるのは、自分が決めた内容が、その後のすべての工程に影響するためです。
要件定義で確認が漏れていた点がテストの段階や本番稼働の後に見つかると、設計からつくり直すことになり、修正にかかる時間も費用も大きく膨らんでしまいます。
一般に、問題の発見が後の工程になるほど修正の負担は重くなるため、上流工程では判断の重さがそのまま責任の重さにつながります。
さらに、お客様の要望と開発チームの事情の間に立つ場面も多く、双方の意見が食い違ったときには板挟みになることもあります。
とはいえ、こうした判断を一人で背負い込むことは少なく、実際にはPMやチームのメンバーと確認し合いながら進めていくのが一般的です。
きつさがある一方で、上流工程を目指すエンジニアが多いのは、それに見合う手応えがあるからにほかなりません。
自分の判断でシステムの形が決まり、完成したシステムを使うお客様の反応を直接受け取れることは、下流工程ではなかなか得られない経験です。
また、上流工程を経験するとプロジェクト全体を見渡せる視点が身につき、リーダーやマネジメントへと進むなど、その後のキャリアの選択肢も広がっていきます。
後ほど紹介するように年収の面でも下流工程との差が出やすく、責任の重さに応じた評価を受けやすい点も、上流工程が目標とされる理由の一つです。
工程ごとに感じられるやりがいの違いは、以下の記事で社員の声とあわせて紹介しています。

| 比べるポイント | 上流工程に向いている人 | 下流工程に向いている人 |
|---|---|---|
| 得意なこと | 人の話を聞いて整理する | 手を動かして形にする |
| 関心が向く先 | お客様の業務や課題 | 技術や仕組みそのもの |
| 苦にならない作業 | 資料作成・説明・調整 | 調査・検証・コードの改善 |
| 手応えを感じる瞬間 | お客様と合意できたとき | 思いどおりに動いたとき |
上流工程に向いているのは、相手の話を聞いて要点を整理し、言葉や図を使って分かりやすく伝えることが苦にならない人です。
一方で、技術そのものへの関心が強く、手を動かして課題を解決することに楽しさを感じる人は、下流工程の仕事で力を発揮しやすいでしょう。
上流工程のほうが格上だと思われがちですが、上流と下流は優劣ではなく役割の違いにすぎません。
実際に、上流工程には進まず、特定の技術を深く掘り下げるスペシャリストとしてキャリアを築いていくエンジニアもいます。
未経験の段階で向き不向きを決めてしまう必要はなく、まずは下流工程を経験してから、どちらに面白さを感じるかを見極めても遅くはありません。

| 職種(統計上の分類) | 主な仕事 | 平均年齢 | 平均年収 |
|---|---|---|---|
| システムコンサルタント・設計者 | システムの企画・設計 | 38.3歳 | 約889万円 |
| ソフトウェア作成者 | プログラムの作成 | 37.1歳 | 約578万円 |
厚生労働省の最新の統計によると、システムの企画や設計を担う職種の平均年収は約889万円で、プログラムの作成を担う職種を約300万円上回っています。
両者の平均年齢にはほとんど差がないことから、年齢よりも担当する仕事の範囲の違いが年収の差に表れていると考えられます。
上流工程は判断する範囲が広く、プロジェクトの成否に直結する責任を負うため、その分が待遇に反映されやすい傾向があります。
ただし、統計上の平均には管理職や大企業の社員も含まれているため、上流工程に進めば誰でも同じ水準に届くわけではありません。
年収は年数を重ねるだけで決まるものではなく、どの工程まで任されるようになるかによって変わっていくと考えておくとよいでしょう。

未経験で入社した方が、いきなり上流工程を任されることはまずありません。
多くの場合は実装と単体テストから経験を積み、詳細設計、基本設計、要件定義の順に一段ずつ担当範囲を広げていく流れになります。
上記の年数は一般的な目安であり、配属先の案件や本人の取り組み方によって前後します。
配属先によっては下流工程の作業が長く続くこともあるため、上流工程に挑戦したいという意思を早めに周囲へ伝えておくことも大切です。
入社後に担当する実装では、設計書を読み込み、そこに書かれた仕様をプログラムとして形にしていきます。
設計書の中で意図が分からない箇所を質問したり、書き方の違う設計書をいくつも読んだりするうちに、分かりやすい仕様と迷いやすい仕様の違いが自然と見えてきます。
この読む側として積んだ経験が、書く側に回ったときの土台になります。
テストの工程でも、仕様と実際の動きを一つずつ照らし合わせていく中で、どのような点が仕様から漏れやすいのかを具体的に学べるはずです。
上流工程に進むための準備は、下流工程の日々の仕事の中にすでに含まれていると考えると、目の前の実装やテストに取り組む意味も違って見えてきます。
下流工程で同じ年数を過ごしても、上流工程を任されるまでの早さには個人差が生まれます。
その差を分けるのが、指示されたとおりにつくるだけでなく、なぜこの画面構成なのか、なぜこのデータの持ち方なのかを考える習慣があるかどうかです。
設計の意図を理解したうえで疑問点や改善案を設計者に伝えていると、詳細設計の一部を任されるなど、上流工程に関わるきっかけが巡ってきやすくなります。
求められているのは、設計の意図を自分の言葉で説明できる力にほかなりません。
なお、プログラマーとシステムエンジニアは別々の職業ではなく、担当する工程の違いによって呼び分けられている面が大きく、その違いについては以下の記事で詳しく解説しています。
当社には、居酒屋店員から未経験で入社し、プロジェクトリーダーを任されるまでになった社員がいます。
入社から1か月半ほどで現場デビューし、大手ECサイトのリニューアルに伴う内部処理の開発に1年以上携わったあと、Webアプリケーションのデータベース周りの開発へと担当を広げていきました。
その後、最優秀ルーキー賞の受賞を経て、現場の責任者からプロジェクトリーダーへの昇格を告げられています。
現在の仕事については『納期のやりとり、お客様とのミーティング、ヒアリングを通じて要望や本質的な課題を引き出す』と話しており、まさに上流工程の役割を担っている状況です。
本人は飲食店で培ったコミュニケーションの経験が活きていると振り返っており、前職の経験が上流工程で強みになる好例といえます。
上流工程に進むうえで資格は必須ではありませんが、知識を体系的に身につけ、周囲にそれを示す手段として役立ちます。
最初の目標になるのは基本情報技術者試験で、ITの基礎知識を幅広く押さえたうえで、次のステップとして応用情報技術者試験に挑戦するのが一般的な流れです。
応用情報技術者試験は、要件定義やプロジェクトマネジメントなど上流工程の知識まで出題範囲に含むため、上流工程を目指す方に向いています。
さらにその先には、システムアーキテクト試験やプロジェクトマネージャ試験といった、上流工程の専門性を証明する高度な国家試験も用意されています。
CIN GROUPでは、基本情報技術者試験や応用情報技術者試験、Java Silverなどの資格取得費用を会社が負担する資格取得支援制度を設けており、積極的に資格取得する方が多くなっています。

上流工程にたどり着くには、下流工程で着実に経験を積める環境と、その先で挑戦できる案件の両方が欠かせません。
CIN GROUPでは、未経験からでも学べる研修制度を整え、実務に入る前の段階から基礎を身につけられるようにしています。
配属先の案件には要件定義や基本設計から携わるものもあり、下流工程で経験を積んだ先で上流工程に挑戦できる環境があります。
資格取得支援制度では、基本情報技術者試験や応用情報技術者試験、Java Silverなどの資格取得費用を会社が負担しており、複数の資格を取得すれば最大約26万円の年収アップも可能です。
さらに、半期で最も活躍した社員やチームを表彰し、賞金を授与する制度を設けており、開発現場での成果を社内でもしっかり評価しています。
上流工程に挑戦できる案件と成長を後押しする制度がそろっているかどうかが、エンジニアとしてのキャリアの伸び方を左右します。
当社のキャリアプランや各制度について気になった方は、下記エントリーボタンより、お気軽にエントリーください。
100名以上の
未経験エンジニアが活躍中!

上流工程とは、お客様の要望を聞き取ってシステムの仕様を決める要件定義や基本設計を指し、下流工程で積んだ経験の先で任される仕事です。
未経験から入社した場合も、実装で仕様を読む力を鍛え、設計の意図を考える習慣を重ねることで、上流工程へと一段ずつ近づいていけます。
CIN GROUPには要件定義や基本設計から携わる案件もあり、研修や資格取得支援の制度とあわせて上流工程への挑戦を後押ししています。
当社のキャリアプランや各制度について気になった方は、下記エントリーボタンより、お気軽にエントリーください。
100名以上の
未経験エンジニアが活躍中!