上流工程とは|作業の流れやエンジニアに求められるスキルについて解説

※本サイトはプロモーションを含んでいます。

この記事では上流工程とはどのようなもので、どのような人が上流工程に向いているのかを解説します。

「上流工程」とはシステムを作成する際の初期の設計やクライアントとのコミュニケーションを行うシステムエンジニアの仕事の工程のことです。
給料も多く、仕事としてはいいように思えますが、責任も多く、必要とされるスキルも多々あります。

この記事を通して上流工程とはどのような作業をする仕事であり、どのようなメリットがあるか、逆にデメリットとされることにはどんなことがあるのか知ることができます。

上流工程とはそもそもなにか

上流工程とはシステム開発や設計においての最初に行うもののことを指します。
主に含まれるものとしては以下のものが含まれます。

「要件定義(要件仕様)」

要件定義とは開発の際に、実装するべき機能、性能を明確にすることを言います。システム開発において最も上流にある工程のことです。

「構成管理」

構成管理とはソフトウェア・システムを作る際に成果物の環境を把握するためのものです。業種によって内容は様々で、例えばサーバーからPC、ネットワークの管理をするための構成管理もあれば、ソフトウェアにおいてはソースコードの変更履歴を管理するものもあります。

「計画立案」

計画立案はプロジェクトを完遂させるためのものです。目的の制定からゴール、そのプロジェクトをどのような家庭で行うかなどのフローを指します。
何れにせよクライアントとの折衝力が上流工程には必要となるでしょう。

下流工程との違い

下流工程は上流工程で決めた要件定義、仕様に対して実際に開発をし、成果物として機能するのかテストをする段階です。
下流工程に含まれる主な要件には以下のようなものがあります。

「実装(コーディング)」
実装(コーディング)とはマークアップ言語を使って制作したデザインをブラウザ(Webページを見るソフト)で見える形にすることを言います。
マークアップ言語はコーディングするための記述方法で主にHTMLやCSSがこれに含まれます。

「テスト」
下流工程では実際に作成したシステムが正常に作動するかをテストします。作成工程は要件定義→設計→開発→テスト→納品(運用)という順に進み納品前の重要な工程がテストになります。

「導入」
実際に作成したシステムを本番環境にリリースし、動作するかを確認する工程です。

また、ソフトウェア開発はこのように上流工程から下流工程に作業が流れるさまを水の流れる様に見立てて「ウォーターフォールモデル」と言われます。

この開発モデルでは下流に行くほど、修正があった場合の手戻りが大変になります。例えばテストの段階で問題があった場合、最悪の場合要件定義まで戻らなければいけません。

もちろん納期は待ってくれなく圧迫されます。そのため上流工程はとても責任が大きい仕事なのです。

下流工程まで進んだプロジェクトは機能そのものの修正が難しくなります。万が一、下流工程で機能や構成の変更を行えば、他機能との整合性が取れなくなったり、クライアントが必要としている機能が提出されないという問題が発生するからです。

それだけ上流工程は重要な役割を担っています。

上流工程の仕事に向いている人

上流工程はシステム開発において設計などを行うとても重要な工程です。上流工程においての小さなミスでも下流工程では大きなトラブルに変わります。
上流工程の作業不備によって引き起こされるトラブルとしては以下のようなものがあります。

クライアントとのコミュニケーション不足

上流工程の設計の前にクライアントがどのようなシステムを作成して欲しいのか示し合わせます。クライアントの要望を正確に把握できない、もしくはクライアントの合意が得られなくては正しいシステムの作成もできなかったり、遅れが生じてしまいます。

上流工程の遅れは下流工程に大きく響きます。十分な検証、テストが行われずバグを多く含んだシステムになってしまったりするため、正確な聞き取りと、コミュニケーションが大切になります。

システムトラブル

システムは導入し、納品してからが本番です。設計し、開発、テスト、納品できたとしてもその後の運用管理ができなければ元も子もありません。システム開発では運用フェーズを考えて、設計、開発を行わなければなりません。

これらのリスクを回避するために上流工程を運用する人物には以下のような人物が望まれると考えられます。

コミュニケーション能力の高い人

上流工程で最も重要なことは、クライアントの要望を正しく引き出すことです。

上流工程ではシステムを開発してほしいというクライアントとのコミュニケーションがとても大事になってきます。実際に実装して欲しいという機能はもちろんですが、それに伴って付随してくるような機能に対しても必要なものをしっかりとクライアントとのコミュニケーションの中から読み取らなければなりません。

うまくコミュニケーションの中からクライアントの真の要望を引き出せるような高いコミュニケーションスキルを持った人が相応しいでしょう。

責任感と決断力がある人

上流工程の仕事には常に責任が付きまといます。そのため責任感と決断力を持つ人が相応しいでしょう。上流工程でミスや遅延、トラブルがあると下流工程に大きな影響を及ぼし、プロジェクト自体が頓挫してしまう場合もあります。

仕事の一つ一つに責任をもち「自分の仕事にはミスは許されない」と言う強い志を持った人が相応しいでしょう。

知識をしっかりと言葉にすることができる人

上流工程は下流工程の担当者に対しても概要の説明も行わなければなりません。

上流工程と下流工程の意識の共有は不可欠であり、この間にズレが生じると目的のものが完成しなかったり、必要な機能が異なるものになっていたりと、トラブルが生じます。そのため上流工程の人には自分の知識をしっかりと下流工程の担当者に伝えるスキルが必要になります。

上流工程のほうが給料は高い

上流工程に携わっている人の方が下流工程の方より給料は高いです。実際にプロジェクトマネージャーやコンサルタントなどの上流工程エンジニアと下流工程のエンジニアでは約270万円の年収の差がありました。

しかし、その分責任も多く、クライアントの要望と下流工程のエンジニアからの要望との板挟みになったりと苦労の多い仕事でもあるのでよく考えて仕事を選ぶべきでしょう。

上流工程への転職はIT 専門のエージェントの方が強い

IT業界で働いているけれど、転職を考えている人も少なくありません。

転職をしようと考えたとき、真っ先に利用してほしいサービスが「転職エージェント」です。転職エージェントは、転職先を求める「あなた」と、人材を求める「企業」をマッチさせるサービスで、転職活動には必要不可欠なものだといえるでしょう。

転職エージェントにはそれぞれ強みや特徴がありますので、IT業界の経験を生かして転職したいなら「IT・エンジニア」の転職に特化した転職エージェントを利用すべきでしょう。

まとめ この記事のおさらい

  • 「上流工程」とはシステムを作成する際の初期の設計やクライアントとのコミュニケーションを行うシステムエンジニアの仕事の工程のこと。
  • 下流工程は、上流工程で決められた仕様や機能、プログラミング言語を活用してシステム開発や実際の製造を行う段階。
  • 上流工程の仕事に向いている人は「コミュニケーション能力の高い人」「責任感と決断力がある人」「知識をしっかりと言葉にすることができる人」。
  • 上流工程に携わっている人の方が下流工程の人より給料が高い。
  • 上流工程への転職はIT 専門のエージェントを利用した方が良い。