この記事では、エンジニアが担当する上流工程の流れを、必要なスキルや担う主な職種なども交えて解説します。
エンジニアの上流工程ってなに?
上流工程を担当するエンジニアはどういう仕事なの?
と疑問に思う方は多いでしょう。
そこでこの記事では、上流工程の内容や担当するエンジニアの仕事について詳しく解説します。上流工程に関わるエンジニアに必要なスキルについても詳しく解説しますので、ぜひ参考にしてください。
- ITエンジニアの上流工程は要件定義と外部設計を意味する
- 上流工程では顧客へのヒアリングや納期・予算調整を行う
- 上流工程は主にプロジェクトマネージャーやシステムエンジニアが担当する
そもそも上流工程とは?
そもそも「上流工程ってなに?」と疑問に思う方もいるでしょう。
上流工程とはウォーターフォール型開発と呼ばれる、有名な開発手法の前半部分の工程をいいます。
ここでは、そんなウォーターフォール型開発や上流工程の仕事について詳しく解説します。
ウォーターフォール型開発とは?
ウォーターフォール型開発とは、次の6つの開発工程を上から順番に実施する開発手法のことをいいます。
- 1.要求定義
- 2.外部設計
- 3.内部設計
- 4.開発
- 5.テスト
- 6.運用
上から順番に工程を進める点が滝から流れ落ちる水に似ているため、ウォーターフォール(滝)と呼ばれています。要求定義・外部設計の前半2つの工程が主に上流工程、内部設計・開発・テスト・運用の後半4つの工程が下流工程です。
ウォーターフォール型開発について詳しく知りたい方は、こちらの記事も参考にしてください。
上流工程の仕事とは?
上流工程とは、ウォーターフォール型開発での要求定義・外部設計の2つの工程をいいます。
具体的には要求定義で顧客のニーズをヒアリングし、実際に使用できる予算や納期と調整することで、実現可能な開発範囲を決定する仕事です。
次に外部設計の仕事では、画面や操作などの顧客が見たときの機能を設計していきます。顧客から見た際の機能や動作を基本にシステムやソフトウェアを開発・構築するため、基本設計とも呼ばれています。
エンジニアの上流工程とは?
システム開発の上流工程におけるエンジニアの役割とは、顧客の要求に応じたシステムを実現するための設計図を作ることです。
具体的には次の役割があります。
- ①ヒアリング
- ②予算や納期の調整
- ③設計書の作成
IT技術者としてより、コーディネーターとしての仕事が主になり、プログラミング中心で働いてきた人にとっては戸惑うことも多いでしょう。
上流工程を担当するシステムエンジニアの仕事内容に興味がある方は、こちらの記事を参考にしてください。
①ヒアリング
上流工程は、顧客へのヒアリングから始まります。顧客がすでに実現したいITシステムの概要を作成している場合は参考にします。
しかし、通常はこういうシステムが作りたいイメージ程度しかない場合が多いため、エンジニアは顧客が本当に実現したいことをヒアリングします。
②予算や納期の調整
開発システムの予算や納期の調整も、エンジニアが上流工程で行う仕事の一つです。
どれほど優れたシステムを設計しても、顧客がそのシステムを必要とする期日までに実現できなければ、何の意味もありません。
予算管理などはIT技術と関係ないように思われますが、その予算内で実現できるシステムを設計するのもエンジニアの腕の見せ所です。
③設計書の作成
ヒアリングで得た要求を実現するための設計書を作成するのは、システムエンジニアの上流工程における最後の仕事です。
システムの設計書は、機能ごとの処理や、システムの動き方、インタフェース仕様、バックエンドのデータベース設計など、システムを実際に動かせる状態にまですべての設計する必要があります。
作成した設計書を渡して、プログラミングを担当するシステムエンジニアやプログラマにシステムを形にしてもらいます。
エンジニアの種類によって上流工程は異なる
同じウォーターフォール型開発の上流工程でも、エンジニアの種類によって上流工程で決める内容が異なります。
ここでは、Webエンジニアとネットワークエンジニアを例に解説します。
Webエンジニアの場合
Webエンジニアの場合は、Webシステムを開発する範囲を決めます。次に、Webシステムを開発する範囲を顧客から見た画面や動作に細分化し、機能ごとに設計していきます。
そして、顧客から設計した機能に対してGoサインをもらうまでが上流工程の仕事です。
ネットワークエンジニアの場合
ネットワークエンジニアとは、システムが稼働するネットワークやハードウェアの設計等を専門にするエンジニアです。
そのため、上流工程ではネットワークやハードウェアを構築する範囲を決め、ネットワークなどをどのように構築するかを設計します。
なお、ITエンジニアになりたい気持ちはあるものの、どの職種が自分にあうのかわからない人もいますよね。そんな人は「ITキャリア診断」をお試しください。
かかる時間はたったの1分。5つの質問に答えるだけで、自分にあうIT職種を診断してもらえます。
自分にあう職種が明確になれば、目指す過程でのプログラミング学習もはかどりますよ。
上流工程におけるそれぞれの役割とは
上流工程に関わる職種には、3種類あります。
- プロジェクトマネージャー
- プロジェクトリーダー
- システムエンジニア
職種ごとに担当している役割を解説します。
プロジェクトマネージャー
プロジェクト全体を管理する役割を担当しています。
スケジュール管理やトラブルの調整などプロジェクトに関するリスクをコントロールし、プロジェクトをまとめます。
プロジェクトリーダー
プロジェクトのスケジュールを立てて計画通りにプロジェクトを進めるため、プロジェクトチームをまとめる役割を担当しています。
具体的にはプロジェクトメンバーへの具体的な指示や、関係者へのプロジェクト状況の説明などを行います。
システムエンジニア
主に顧客のニーズを元に設計書を作成し、システムを開発・構築するのに必要な情報を固める役割を担当します。
システム開発では、システムエンジニアが作成した設計書を元に、プログラミングを担当するシステムエンジニアやプログラマがプログラミングします。
一方ネットワークやハードウェア構築では、システムエンジニアが作成した設計書を元に、インフラエンジニアがネットワークやハードウェアを構築していきます。
上流工程に関わるエンジニアに求められるスキル5つ
上流工程に関わるエンジニアに必要なスキルは5つあります。
- 1.コミュニケーション能力
- 2.要件分析
- 3.要件定義
- 4.業界・経営知識
- 5.設計書作成スキル
これら5つのスキルは、どれが欠けても有効なシステムを実現するのが難しくなります。
スキル1:コミュニケーション能力
上流工程に関わるエンジニアに必須のスキルは、コミュニケーション能力です。
顧客はシステム開発の専門家ではないので、自分たちのニーズを過不足なく伝えることは困難です。顧客の言葉のかげに何が隠れているかを探り出す聞く能力がないと、顧客にとって満足のできるシステムは作成できません。
コミュニケーション能力が低いとシステム設計の背景をうまく伝えられないので、伝える能力も必要です。
スキル2:要件分析
上流工程に関わるエンジニアには、要件分析スキルも必要です。
ヒアリングして得たニーズは、そのままではシステムに落とし込めません。項目を分けて、それぞれの項目で必要な要件を分析していく必要があります。
スキル3:要件定義
上流工程で要件分析の次にエンジニアが求められるのは、要件定義のスキルです。
要求分析ができた項目に対し、ITシステムで実現できる内容を定義していきます。顧客のビジネスシステムに対する深い理解とITシステムの知識がないと、正しい要件定義ができません。
スキル4:業界・経営知識
システム開発の上流工程においては、業界・経営知識もエンジニアに求められます。
顧客の属する業界に関する知識がないと、ヒアリング時に言葉の意味を間違って受け取ってしまったりとんちんかんな受け答えをしたりして、相手を怒らせてしまいかねません。
IT技術者の能力を最大限に発揮するためには、さまざまな業界の知識や経営に関する知識もエンジニアには重要なスキルです。
スキル5:設計書作成スキル
主にシステムエンジニアに求められるスキルですが、ITシステム実装のための仕事に必要なのが設計書作成スキルです。
要件定義をもとに、求められている機能を実現するためのシステムの動きを図や文書で表現します。画面レイアウトやデータベースの設計など、システム全体について作成しなければなりません。
顧客や開発チームで設計書の作成仕様が決まっていることもあるので、その場合は作成仕様の知識も必要です。
なお、独学で上流設計に必要なスキルが習得できるか不安な人は「侍エンジニア」をお試しください。
侍エンジニアでは、1回60分・週1のペースで経験豊富な現役エンジニアによるオンラインレッスンが受けられます。もちろん、レッスン外でも直接講師に質問可能です。
侍エンジニアなら、未経験からでも実務に直結したスキルが身につけられますよ。
上流工程に関わるエンジニアにおすすめの資格4つ
エンジニアとして上流工程で仕事する際に、持っておくと便利な資格があります。
IT技術系の資格やプロジェクトマネジメントのスキルがあると、システムエンジニアやプログラマとコミュニケーションをとる際に共通の言葉で話すことができるようになり、円滑に打ち合わせを進められます。
必須というわけではありませんが、資格を取っておくと仕事するときに助けになるので、機会があれば取得しておくといいでしょう。
応用情報技術者試験
エンジニアとして上流工程に参加するなら、応用情報技術者試験の資格取得をおすすめします。基本情報技術者試験の上位の資格ですが、年に2回実施されるので比較的受験しやすいです。
応用技術者試験では、基本情報技術者試験と違って記述式の問題もあるため、十分な対策をして受験しましょう。
システムアーキテクト試験
高度情報処理技術者試験に含まれる、システムアーキテクト試験の難度は非常に高いですが、この資格を持っていると、上流工程のエンジニアとして万人に認めてもらえます。
システム全体の設計に関して、単に動作させるだけでなくどうすれば効率的に動かせるかが問われるなど、上流工程ですぐに使える技術が満載なので、自信がある人は受けることをおすすめします。
この試験を受ける前提として、基本情報技術者試験や応用情報技術者に合格できるレベルの知識が必要です。
PMP(プロジェクトマネジメント・プロフェッショナル)
上流工程でエンジニアとして働くうえでは、プロジェクトマネジメントの技術が必要になるため、プロジェクトマネージャの試験を受けるのもいいでしょう。
PMP(プロジェクトマネジメント・プロフェッショナル)は、PMBOKというプロジェクトマネジメント知識のガイドに沿った国際資格です。米国のPMIというプロジェクトマネジメント協会が実施しています。
受験資格に実務経験や35時間の研修の受講が求められ、難易度も高い資格ですが、全世界で認められている資格です。この資格を持っていると世界中で仕事ができるようになります。
データベーススペシャリスト試験
データベーススペシャリスト試験は、システムエンジニアとして上流工程でデータベースに関わる設計をする際に有効な国家資格です。
データベースを用いて、上流工程から下流工程を行うために必要な知識や実技能力が問われます。
データべースはシステム開発をしていて切っても切り離せない技術なので、挑戦してみてはいかがでしょうか。
上流工程に関わるエンジニアにおすすめの勉強法
一番の勉強法は現場で経験を積むことですが、現場で経験を積むことが難しい場合もあります。そのような場合は、上流工程に関わるエンジニアが求められる課題解決能力を磨く勉強法がおすすめです。
課題解決能力を磨く勉強法の例を紹介します。
- 自分の課題を見つける
- 課題を解決するために必要な目標と期限を設定する
- 目標に適した教材を探し、使用する
勉強法について詳しく知りたい方は、こちらの記事を参考にしてください。
まとめ
この記事では、エンジニアの上流工程について解説しました。
システム開発の上流工程の仕事は、システムエンジニアにとって仕事の幅を大きく広がり、やりがいを感じられます。
IT技術とは毛色の違う仕事も多く、戸惑うこともあるでしょう。顧客の要求を聞くところからシステム設計までを担当する仕事のため、顧客との接点が多いのも特徴です。
システムエンジニアは、システムの分析や評価を行い企画・立案を行うシステムアナリストや、プロジェクト全体を統括するプロジェクトマネージャへのキャリアパスもあります。開発エンジニアから一歩踏み出したい人は積極的に取り組んでみましょう。
この記事のおさらい
主にウォーターフォール型開発における要求定義・外部設計の前半2つの工程をいいます。プロジェクトの規模や企業によっては、開発における全工程で関わる場合もあります。
「ヒアリング」「予算や納期の調整」「設計書の作成」の3つの仕事です。
「コミュニケーション能力」「要件分析」「要件定義」「業界・経営知識」「設計書作成スキル」の5つです。
「応用情報技術者試験」「システムアーキテクト試験」「プロジェクトマネージャ試験」「オラクルマスター」の4つの資格です。
本記事の解説内容に関する補足事項
本記事はプログラミングやWebデザインなど、100種類以上の教材を制作・提供する「侍テラコヤ」、4万5,000名以上の累計指導実績を持つプログラミングスクール「侍エンジニア」を運営する株式会社SAMURAIが制作しています。
また、当メディア「侍エンジニアブログ」を運営する株式会社SAMURAIは「DX認定取得事業者」に、提供コースは「教育訓練給付制度の指定講座」に選定されており、プログラミングを中心としたITに関する正確な情報提供に努めております。
記事制作の詳しい流れは「SAMURAI ENGINEER Blogのコンテンツ制作フロー」をご確認ください。