パソナについて
記事検索

上流工程とはどんな業務か?必要なスキルや向き・不向きも詳しく解説

この記事では上流工程に必要なスキルや向き・不向きも含めて、詳しく解説します。

上流工程とはどんな業務か?必要なスキルや向き・不向きも詳しく解説

この記事では上流工程に必要なスキルや向き・不向きも含めて、詳しく解説します。

スキルアップ

2023/08/04 UP

多くのエンジニアにとって、上流工程に携わることは目標の一つです。上流工程はシステム全体に与える影響が大きいため、広範囲にわたるスキルが求められる業務です。上流工程では打ち合わせやドキュメント作成業務も多く発生するため、プログラミングを続けたいと思う方には不向きかもしれません。

上流工程を目指すなら、事前に業務内容を知ることがおすすめです。この記事では上流工程に必要なスキルや向き・不向きも含めて、詳しく解説します。

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

そもそも上流工程とは、システム開発においてどのような役割を担っているのでしょうか。また上流工程を担当できるエンジニアや会社についても、知っておきたいポイントです。まずは上流工程の概要について、詳しく解説します。

上流工程は重要な役割を担う

上流工程はシステムの仕様を決めて、その後の品質を決定づける重要な工程です。システムがどのように動作するか、また、企業が持つ課題をどう解決するかは、上流工程で決められます。下流工程では、上流工程で決められた事項にしたがって開発を進めます。

顧客(発注者)と開発者の間で、システムの仕様について認識がずれていた場合には、仕様策定の段階に戻ってやり直さなければなりません。開発の進行状況によっては手戻りが大きくなり、品質やスケジュールに悪影響をおよぼすかもしれません。

どの工程が上流工程に該当するか?

上流工程に該当する業務は、いくつかあります。システム開発業務の場合は、要求分析や要件定義、基本設計が該当します。また、企業によっては、詳細設計も上流工程に含める場合があります。上流工程から実装やテストが含まれる下流工程へと順序良く進めていく開発手法としては、ウォーターフォール型開発が有名でしょう。

上流工程はインフラの分野でも定義されています。要件定義や設計業務は上流工程、運用・保守や監視業務は下流工程です。構築は企業により、上流工程・下流工程どちらにも分類されます。

上流工程を担当するエンジニアの種類

上流工程を担当するエンジニアの職種は、多種多様です。代表的な職種には以下のようなものが挙げられます。

・プロジェクトマネージャー

・システムエンジニア(SE)

・ITコンサルタント

また、インフラエンジニアやネットワークエンジニア、データベースエンジニアやクラウドエンジニアも、設計業務などの上流工程を担当する場合があります。

上流工程に携われる企業は限られる

残念ながら、すべてのIT企業で上流工程に携われるチャンスが得られるとは限りません。特にSESや3次請け以下のIT企業は、上流工程の仕事そのものを受注しにくい会社です。

もし、お勤めの会社で上流工程に携わるチャンスを得にくいと感じたなら、転職も有効な方法です。以下の企業に入社し実力を認められることで、上流工程への道が開けるかもしれません。

・自社でパッケージやWebサービスを開発・運営する企業

・元請けや二次請けのSIer

・大手企業グループに属するシステム会社

エンジニアが上流工程で携わる4つの業務

エンジニアが上流工程で携わる4つの業務

上流工程は、大きく4つの業務に分かれます。それぞれどのような業務を担当するか、確認していきましょう。

要求分析

要求分析は上流工程のスタートとなる業務であり、要求定義やシステム企画とも呼ばれる工程です。顧客から寄せられる要求事項を洗い出すこと、システム化のニーズについて調査を行ない分析することがおもな業務に挙げられます。

顧客の要求を正しく理解するためには、スキルが必要です。時には質問を通して、ユーザーが認識していない課題を掘り起こす工夫も求められるでしょう。このため経験豊富なSEやプロジェクトマネージャー、ITコンサルタントが担当するケースが多いです。

要件定義

要求事項は、すべてシステムに盛り込まれるとは限りません。要件定義は、プロジェクトで実装するシステムの仕様を決める工程です。定めるべき要件は、機能に関する「機能要件」と、機能とは異なる面からスピードやセキュリティなどへの要件を定義した「非機能要件」に分かれます。

要件定義は、プロジェクトのゴールを決める工程であり、通常は納期や予算といった制約もあることから、発注者と開発者の要求が衝突することも少なくありません。要件をできるだけ明確に定めることが、のちのちのトラブルを防ぐコツです。また、要件定義書を作成し、顧客との合意を取ることも重要です。

基本設計

基本設計は、要件定義の内容をもとに、システムの全体的な設計を行なう工程です。ユーザーから見えるシステムの挙動が決まることから、外部設計や機能設計とも呼ばれます。見た目の良し悪しや使い勝手、システム間の連携などが決定されるため、ユーザーの満足度に直結する重要な工程です。

基本設計で決定される代表的な事項には、以下が挙げられます。

・システムの操作手順

・画面の種類とレイアウト、画面間の遷移

・帳票の種類とレイアウト

・各種データの入出力(帳票やファイル、データベースなど)

・外部システムとの連携方法

・ネットワークの構成とハードウェアの配置

・OSや各種ソフトウェアの選定

要件定義の工程と同様に、決定事項はドキュメントに明記したうえで合意を得ておきましょう。

詳細設計

詳細設計は、基本設計をもとにシステムの実装に必要な設計を行なう工程です。おもにユーザーからは見えないシステム内部を対象とするため、内部設計とも呼ばれています。

詳細設計では、以下のような事項の詳細について決め、必要に応じてドキュメント化します。

・クラスやモジュール

・通信手順や内部処理の流れ

・状態遷移

企業によっては、詳細設計を下流工程として扱う場合もあります。

上流工程の業務に必要な6つのスキル

上流工程の業務に必要な6つのスキル

上流工程ではIT技術をはじめ、さまざまなスキルが求められます。ここでは、代表的な6つのスキルを取り上げます。なぜ重要なのか、理由を確認していきましょう。

ITに関する幅広いスキル

上流工程の業務では、ITに関する幅広いスキルが求められます。システム全体を理解し適切な判断を行なうためには、以下のような知識も必要でしょう。

1.ネットワーク

2.サーバーの仮想化やクラウドの活用

3.データベースなどのミドルウェア

4.セキュリティ

これらの知識は、システムの速度や安全性、データの一貫性のためにも大切な要素です。技術の進化にも対応できるよう、日頃から最新の情報をチェックしておきましょう。

業務知識や業務に関する法令の知識

業務システムを開発するために、その業務に関する知識が求められるケースもあるでしょう。システム化の対象となる業務の流れや、システム化でどのような課題を解決したいのかを正しく理解しておく必要があります。

また、多くの業務は程度の差こそあれ、業界のルールや法令による制約を受けます。案件を受注する際には該当する業界の業務知識に加えて、関係する法令を知ることが欠かせません。中央省庁や地方公共団体、業界団体の公式サイトなどをチェックし、しっかり把握したうえで業務に臨みましょう。

業界のルールや法令に反するシステムは、現場で活用できません。大幅な手戻りを余儀なくされるほか、顧客から厳しいお叱りの言葉を頂くおそれもあります。

論理的な思考力

上流工程の業務では、論理的な思考力も求められます。システムの受注には、顧客が納得できる提案をしなければなりません。提示された課題を分析し、どうすれば顧客の要望が実現可能になるかを論理的に考える必要があります。そのうえで顧客が納得できるよう、わかりやすく筋が通った方法で説明することが求められます。

一方で、論理的には実現できるように思えても、コストやスケジュールなど、さまざまな制約により実現が難しい要望もあるかもしれません。そのような場合の状況説明にも、論理的な思考力が役に立つでしょう。

適切に設計しドキュメントを作成できるスキル

上流工程において、ドキュメントは重要な資料です。ドキュメントはプロジェクトの進行において、以下の役割を果たします。

・次の工程のよりどころとなる

・顧客が新しいシステムを理解する資料となる

例えば、設計は要件定義書を、実装や構築は設計書をもとにして行なわれます。上流工程を担う方は、要件定義や設計を適切に行なうことはもちろん、合意した内容を適切かつ明確に言語化するスキルも必要です。誰が読んでも同じように理解できるドキュメントを作りましょう。

コミュニケーション能力

上流工程を担当するエンジニアには、顧客から必要な情報を上手に引き出すコミュニケーションスキルも求められます。顧客はさまざまな要望を提示しますが、すべてを語るとは限りません。その理由には、以下の2つが挙げられます。

・顧客自身が認識していない、潜在的な要望がある

・ITに詳しくなく、システムの動作に必要な条件を理解していない

エンジニアは顧客にヒアリングを行ない、システムの開発や構築に必要な情報を十分に引き出す必要があります。問題になりそうなところを先回りしてチェックしていけば、トラブルも未然に防げるでしょう。手戻りを減らす効果が期待でき、提案に満足してもらえる可能性も高まります。

業務のボリュームを適切に見積もれる能力

プロジェクトを無事に終えるためには、上流工程で業務のボリュームを適切に見積もる能力も欠かせません。なぜなら受注した段階で予算と納期は決まっており、あとからの変更は難しいためです。

例えば、開発すべき量や期間に対して人的リソースが不足すると、以下の不都合が生じます。

・スケジュールの遅延

・品質の低下

・頻繁に起こるトラブルや残業・休日出勤の連続による、要員の疲弊

無理をして顧客の要望に応えようとしても、実現できないのでは誰も良い思いをしません。もちろんすべてが見積もり通りに進行するわけではありませんが、いわゆる「デスマーチ」を防ぐためにも、上流工程での適切な見積もりは重要だといえます。

エンジニアが上流工程を担当するメリット・デメリット

エンジニアが上流工程を担当するメリット・デメリット

ほかの業務と同様に、エンジニアが上流工程を担うことにはメリットとデメリットがあります。どのようなメリットやデメリットがあるか、詳しく確認していきましょう。

上流工程を担当するメリット

上流工程を担当するエンジニアには、以下のようなメリットが考えられます。

・年収がアップする

・責任ある仕事を任されやすく、昇進もしやすい

・有利な条件で転職できる

上記に挙げるいくつかのメリットを得る目的で、上流工程を目指すエンジニアも多いのではないでしょうか。上流工程は、下流工程に比べてマネジメント色の強い業務のため、マネジメントスキルを磨ける機会もしばしばあります。キャリアアップの近道ともいえるでしょう。

上流工程を担当するデメリット

上流工程を担当するエンジニアのなかには、以下のようなことをデメリットと感じる人もいるでしょう。

・コーディングに打ち込めない

・社内や社外の調整に忙殺される

・ドキュメント作成に追われる

例えば、基本設計のフェーズでは数多くのドキュメントを作成し、顧客からの合意を得る必要があります。プログラミングの技術を活かしたい人やコミュニケーションに苦手意識がある人は、上流工程の仕事にやりがいを感じられないかもしれません。

上流工程には向き・不向きがある

ここまで解説したとおり、上流工程はエンジニアが担う業務のなかでも特徴的な項目がいくつかあります。そのため、どのエンジニアにも向く業務ではありません。ここからは上流工程の向き・不向きについて解説します。

上流工程に向くエンジニア

以下に挙げる方は、上流工程との相性が良いと考えられます。

・自らの手で企業の課題を解決したい

・プロジェクト全体にかかわり、ベストな成果物を納品したい

・専門でない技術分野にも興味を持ち、積極的に学ぶ

・プレッシャーに強い

・簡潔・明快でわかりやすい文書を作成できる

・会話が好き

上記の項目は、打ち合わせやドキュメント作成が多く、広範囲の技術的なスキルが求められる上流工程の特徴を反映しています。

上流工程に不向きなエンジニア

以下に挙げる項目に多く当てはまるエンジニアは、上流工程にあまり向いていないと考えられます。

・人付き合いが苦手

・黙々とプログラミングをしたい

・特定の技術力で勝負したい

・技術者以外の方に対して、わかりやすく説明することが苦手

・マネジメント業務には興味がない

「ずっとプログラミングをしていたい」という方は、代表的です。このような方が無理に上流工程の業務を担当すると、やる気を失ってしまうこともあるかもしれません。

上流工程の業務内容を理解し、必要なスキルを習得しよう

上流工程の業務は、下流工程と大きく異なります。上流工程で決定した事項は下流工程に影響を与えるため、システム開発において重要です。顧客のニーズに沿ったシステムを納品するためにも、上流工程に携わりたい方は業務内容をしっかり理解し、求められるスキルを習得しておきましょう。

パソナでは、エンジニア職を募集しています。中途採用では数多くの種類から、あなたに合った職種を選べます。実力ある方なら、上流工程に携わるチャンスも得られるでしょう。より良い仕事に就きたいと思う方は、ぜひ応募をご検討ください。