40代からのフリーランスエンジニア向け・案件検索サイト【SEES】
システム開発は上流工程と下流工程に分けられ、別のエンジニアが対応する場合も多いです。それぞれの仕事内容や担当するエンジニアにはどのような違いがあるのでしょうか?本記事では、上流工程の業務の詳細、役立つスキルなどについて解説します。
<業界実績18年>
ミドル・シニアフリーランス専門
エージェントSEES
40~60代以上のシニアエンジニア案件探しは、私たちにお任せください!
ご登録者様限定で、Webに公開していない非公開案件をご提案いたします。
目次
「システム開発はどんな工程に分けられる?」
「システム開発の上流工程と下流工程の違いは?」
「システムの上流工程を担当するエンジニアになるにはどんなスキルが必要?」
ITエンジニアとして働く方やシステムエンジニアという仕事に興味を持つ方の中には、システム開発の「上流工程」という言葉を耳にしたことがあるかもしれません。特にエンジニアのキャリアを検討する上では、この上流工程に携わることが重要なポイントとなり収入にも大きく影響するとなれば、なおさら詳しく知りたいという方もいるでしょう。
本記事では、システム開発の工程の概要、上流工程・下流工程の該当範囲、上流工程と下流工程の違い、内容、それぞれを担当するエンジニアの違いなどを解説します。システムエンジニアとして活躍したい方にとっては、自分のキャリアを検討する上で役立つ情報です。ぜひご活用ください。
システム開発における工程は、一般的に下記に分けられます。
工程 | |
上流工程 | 要件定義 |
基本設計 | |
詳細設計 | |
下流工程 | 実装(開発、プログラミングとも表現) |
テスト |
ウォーターフォールモデルの開発プロセスは、要件定義や設計を中心とした上流工程、プログラミングによって実装していく下流工程にわかれます。
ここでは、システム開発プロジェクトなどにおける上流工程と下流工程の違いについて解説していきます。
上流工程、下流工程は言葉の意味からも想像できるように、システム開発を川の流れに例えた表現です。上流から下流に向かって水は流れ、システム開発では上流工程で決めた内容をもとに詳細化を行ってプログラムの作成につなげます。
つまり、上流工程で定めた内容は下流工程での作業に大きく影響します。下流工程では以降の作業工程が少ない分、影響範囲は小さいといえます。
上流工程の実施には、下流工程の実施に比べて必要とされるスキルや知識が多いです。
上流工程では、決定している内容は少なく、形のないところから以降の作業に大きく影響を与える内容を決める必要があります。例えば、上流工程の実施者は下流工程で行われるプログラミングに対しても知識を持って、プログラミングが可能なように設計することが求められます。また、顧客の業務に関する知識を持ち、要件の詳細を詰めることも必要となります。
一方、下流工程では設計やテストの仕様は定められており、これに沿って作業を進めます。後の工程を意識する量は上流工程よりも減るため、必要となるスキルも少ないのです。
待遇面で比較すると、下流工程よりも上流工程の方が待遇が良いです。上流工程ではシステムの要件定義や設計といった作業を行うため、プロジェクトの方向性や製品のクオリティを左右する重要な工程となります。
また、上流工程で不備があればプロジェクトが炎上するリスクもあります。そのため、上流工程に携わるエンジニアは責任が重く、それだけ下流工程に携わるプログラマーよりも年収が高い傾向にあると言えるでしょう。
一般的なキャリアパスとしては、下流工程に携わるプログラマーから上流工程に携わるシステムエンジニアへのキャリアアップを目指すという流れです。
前述のとおり、上流工程はプロジェクト全体に影響を与える重要な工程となるため、スキルや経験のあるエンジニアが携わることになります。
そのため、一般的なプログラマーのキャリアパスとして、まずは下流工程で経験を積み、スキルを身につけて上流工程へキャリアアップを目指すという順序になります。
ここでは上流工程を担当するシステムエンジニアなどの業務について解説します。
システム開発を行う場合、まずはシステム開発のクライアントから要望をヒアリングする必要があります。ヒアリングによってクライアントのニーズを抽出し、ニーズを実現するためのシステムを具体的にしていきます。
また、ヒアリングの際に費用の見積もりや開発期間の設定などを行うこともシステムエンジニアの仕事です。費用や期間、技術的な理由からすべてのニーズを実現することが難しい場合は、クライアントへ代替案の提案し、実現可能な内容への方向修正も行います。
ヒアリングした内容をもとに、システムの企画を行います。システムの企画のフェーズでは、クライアントのニーズを実現するための適切なシステム方式や目標品質などの開発の基本方針を決定していきます。
また、システムの企画の段階で、システム開発プロジェクトの計画をたてます。システム開発プロジェクトの対象範囲(機能)を明確にし、おおまかなスケジュール、体制を決め、予算とコストの概算も行うケースが多いです。綿密なプロジェクト計画が、プロジェクトの成功には必要です。
プロジェクト計画がたったら、クライアントとの合意を経てキックオフを行い、プロジェクトを立ち上げます。
システムに必要な機能を要件定義によって決定した後、その内容をもとにシステムの設計作業へと移ります。設計の種類は、クライアントのニーズを実現するための基本設計と、具体的にどのような技術を使って開発していくのかを取り決める詳細設計の2種類です。
基本設計の内容は、画面イメージや操作などユーザーが利用する部分を含むため、クライアントにも確認してもらい、認識のすり合わせを行います。詳細設計の内容は内部設計に関するもののため、設計書を見てプログラマーが開発できるレベルまで落とし込みます。
設計後の下流工程は、基本的にプログラマーや他のエンジニアが主体となって稼働します。
上流工程を担当するエンジニアは、実装やテスト工程では管理を行います。予定通りの進捗の確保や開発上の課題の解決、関係者間の連絡調整、成果物の品質確認などが具体的な業務です。
下流工程の実際の業務内容は、どのようなものなのでしょうか。以下では、下流工程を担当するエンジニアの業務を紹介します。
実装工程では、上流工程で決定した要件、設計に基づいて実際にプログラミングを行い、プログラムを作成します。実装は開発、プログラミング、コーディングとも呼ばれます。
実装ではシステム全体を複数人のプログラマーで分担し、分業・協業しながら開発を行います。ITシステムは小規模なプログラムを組み合わせて構成されており、実装では最も小さな単位となるモジュールから作成する場合もあります。
実装の次に行うのが、作成したプログラムが正しく動作することを確認するテスト工程です。テスト工程で確認する「正しい」動作とは、設計や要件定義で定めた通りの動作をすることを指します。テスト工程は試験工程とも呼ばれ、さらにテストの実施対象のレベルによって複数の細かな工程に分けられます。
テストは、最も小さな単位であるモジュールごとの単体テスト(UT:Unit Test)、モジュールを繋げて機能単位で行う結合テスト(IT:Integeration Test)、各機能を結合してシステムとしての動作を確認するシステムテスト(ST:System Test)などに分かれ、段階的に進められます。テストによってバグ、仕様と異なる動作、不具合などが発見された場合には随時修正を行い、システムの品質を確保する工程です。
システムをリリース・納品したあとは、保守や運用のフェーズへと移ります。クライアントがシステムを安定的に利用するためには、システムの監視やメンテナンス、トラブル対応などの保守運用を行い、システムの稼働を提供します。
保守運用は運用監視エンジニアが担う場合や、システムエンジニアが担うケースもあります。
上流工程と下流工程の違い、それぞれの工程で実施する業務内容はここまでに説明してきた通りですが、その実際の求人情報についても確認しておきましょう。
以下では、「40代からのフリーランスエンジニア向け・案件検索サイト【SEES】」において掲載中の案件情報より、上流工程、下流工程を担当するエンジニアの案件例を紹介します。
某製糸業お客様向けの上流工程(要件定義、業務フロー作成、機能一覧、DB設計等)
基幹システムのRPG→Webアプリコンバージョンでの要件定義・外部設計
予実収益管理システム機能上流工程改善支援
証券会員サイト開発業務
スマートハウス向けIoT製品のテスト設計、実施(Web,iOS,Android)
官公庁向けアプリケーション保守
システムエンジニアには、要件定義や設計書の作成スキルといったシステム開発に関わるスキルが必須です。また、要件定義や設計書をもとに実装・テストが行われるため、プログラミングやテストをするためのスキル・知識も必要となります。上流工程を担うエンジニアが直接プログラミングを行う機会は少ないものの、基本的なプログラミングについては知っていることが前提となります。
また、プログラミングスキルがあれば、プログラマーとの意思疎通もしやすいでしょう。
上流工程では顧客の業務課題を解決するための仕組みを形作っていきます。そのため、顧客の業務に関する知見が求められます。
クライアントの業種や業界が同じ場合には、業務要件は共通部分も多いです。しかし、企業や組織に固有のルールなども存在しており、システムへの反映が必要な場合も少なくありません。
上流工程を担うエンジニアは、クライアントやプロジェクトメンバーなどさまざまな人材と関わることになるため、コミュニケーション能力が重要です。システムの設計時には仕様は確定しておらず、関係者間で共通認識を作る必要があります。対話やドキュメントなどのテキストによるコミュニケーションスキルは認識を合わせる際には欠かせません。
上流工程を担うシステムエンジニアは、プロジェクトのリーダー的な役割になるケースが多いです。そのため、プロジェクトメンバーを取りまとめて管理するマネジメントスキルが必要になります。
マネジメントスキルが不足している場合、チーム内でうまく連携が取れずプロジェクトの遅延などが発生する可能性もあります。
プロジェクトには納期が決まっているため、システムエンジニアには予定通り作業を進めていけるスケジュール管理能力が必要です。スケジュール管理能力が不足している場合、スケジュールの遅延が発生する可能性があるでしょう。
システム開発プロジェクトではさまざまな問題が発生し、上流工程を担うエンジニアはこれらの問題を解決してプロジェクトを推進するための問題解決能力が求められます。問題は技術的なものから、顧客の業務に関するもの、人的トラブルなど様々です。
システムエンジニアは資格が必須の職種ではありませんが、資格を取得することで業務にも役立ちます。資格の取得のための学習では業務に必要な知識を獲得し、証明することにも繋がっているためです。
以下では、上流工程を担当するシステムエンジニアに役立つ資格について紹介します。
応用情報技術者試験とは、基本情報処理技術者試験よりもワンランク上の国家資格となっています。IPAが実施している情報処理技術者試験の試験区分の一つで、応用的知識や技能を測る試験です。
初心者向けの基本情報技術者試験の上位資格となっているため、システムエンジニアへのキャリアアップを目指す方におすすめです。
出典:応用情報技術者試験(AP) 試験情報 | IPA 独立行政法人 情報処理推進機構
参照:https://www.ipa.go.jp/shiken/kubun/ap.html
システムアーキテクト試験とは、システムをデザインするまさに上流工程の業務に必要な知識やスキルを証明できる国家資格です。
情報システムや組み込みシステムなどシステム開発の要件定義、構造設計などを行う上級エンジニアを対象とした試験となっているため、合格することで市場価値の高いシステムエンジニアを目指せます。
出典:システムアーキテクト試験 | 試験情報 | IPA 独立行政法人 情報処理推進機構
参照:https://www.ipa.go.jp/shiken/kubun/sa.html
プロジェクトマネージャ試験とは、プロジェクトの責任者としてプロジェクト全体を統括するスキルを認定する国家資格です。
プロジェクトマネージャはもちろん、プロジェクトマネージャへのキャリアアップを視野に入れているシステムエンジニアにもおすすめの試験です。
出典:プロジェクトマネージャ試験 | 試験情報 | IPA 独立行政法人 情報処理推進機構
参照:https://www.ipa.go.jp/shiken/kubun/pm.html
PMP®はPMI(Project Management Institute)により認定されるプロジェクトマネジメントスキルを認定する資格です。「受験者のプロジェクトマネジメントに関する経験、教育、知識を測り、プロフェッショナルとしての確認を目的」として実施されています。
国際的な資格であり、IT業界以外でもプロジェクトマネジメントに関してデファクトスタンダードと認識されています。上流工程で重要なマネジメントスキルを示すために役立ちます。
出典:PMP®資格について | 一般社団法人 PMI日本支部
参照:https://www.pmi-japan.org/pmp_license/pmp/
ネットワークスペシャリスト試験とは、ネットワークエンジニア向けの国家資格です。情報処理技術者試験の試験区分の一つで、特に難易度が高いとされる高度試験に含まれます。
取得することでネットワーク分野での高いスキルを証明することができます。ネットワークエンジニアが上流工程で活躍するために有用な資格です。
出典:ネットワークスペシャリスト試験 | 試験情報 | IPA 独立行政法人 情報処理推進機構
参照:https://www.ipa.go.jp/shiken/kubun/nw.html
データベーススペシャリスト試験とは、高品質なデータベースの企画、要件定義、開発、保守運用スキルを認定する国家資格です。
データベースの専門家としての専門的なスキルを測る資格となっているため、データベース管理者やインフラ系のエンジニアにおすすめです。
出典:データベーススペシャリスト試験 | 試験情報 | IPA 独立行政法人 情報処理推進機構
参照:https://www.ipa.go.jp/shiken/kubun/db.html
ORACLE MASTERとは、オラクルデータベースの管理スキルを証明できるベンダー資格です。データベース技術者におすすめの資格で、「Bronze」「Silver」「Gold」「Platinum」の4段階のレベルがあります。
一般的なITエンジニアの場合はデータベースの基礎知識を問う「Bronze」、データベースの運用担当者であれば運用管理のスキルを問う「Silver」、アプリケーション分野のエンジニアであれば広くSQLのスキルを問う「Silver SQL」を取得すると良いでしょう。
出典:ORACLE MASTER Portal - be an ORACLE MASTER - | オラクル認定資格制度 | Oracle University | Oracle 日本
参照:https://www.oracle.com/jp/education/master-portal/
▼関連記事
・ORACLE MASTERの受験料に関する豆知識|割引サービスなど詳しく紹介
上流工程を担当するITエンジニアについて、よくある質問と回答を集めました。
エンジニアのキャリアパスは下流工程からはじまり、上流工程を担うエンジニアに向けキャリアアップを図る場合が多いです。キャリア向上を図りたい場合には、上流工程について知り必要となるスキルを身につけることが重要です。
システム開発プロジェクトでは、要件定義、基本設計、詳細設計、実装、テスト、運用保守と工程を辿ります。上流工程はこのうち要件定義、基本設計、詳細設計の工程を指し、下流工程は実装、テスト、運用保守が該当します。
上流工程を担当するエンジニアには、必要とされるスキル・知識、経験が多く、その分待遇も良い傾向があります。
上流工程を担当する場合に必要となるスキルには、システム開発を行うためのスキルに加え、マネジメントスキル、コミュニケーションスキル、課題解決力、顧客業務への知見などがあげられます。下流工程を担当するエンジニアに比べ、求められるスキルや知識が多いといえます。
上流工程と下流工程を担当するエンジニアの間で待遇に差があります。これは、上流工程を担当するエンジニアの方が必要となるスキルが多く、経験の多いエンジニアが担当する機会が多いためです。つまり、上流工程を担当できるエンジニアになれれば、高いスキルを持ち良い待遇を得ることができるといえます。
上流工程の業務を担うエンジニアには、幅広いスキルが要求され、その分待遇もよいです。システムエンジニアや各種のITエンジニアとしては、上流工程を担当できるようになることでキャリアアップや収入アップに繋がるといえます。
ぜひ本記事で紹介したシステムエンジニアの役割やシステム開発プロジェクトにおける上流工程、下流工程の違いなどを参考に、上流工程の業務について理解を深めてみてはいかがでしょうか。
40代~60代向けミドル・シニアフリーランスエンジニアの案件サイト『SEES』
40代~60代でエンジニアとして活躍したいと考えている方におすすめなのが、株式会社Miraieが運営する、ミドル・シニアエンジニア向けの案件サイト『SEES』(https://miraie-group.jp/sees/)です。
SEESとは-Senior Engineer Entrustment Service-の略称で、40代~60代エンジニア向けの案件紹介サービス。
エンジニア業界は、40代以上の転職はなかなか厳しい市場だと言われています。
転職ではなくフリーランスとして案件を獲得することを視野にいれてみてもいいかもしれません。
SEESの場合、掲載している案件は主に年齢不問ですので、年齢制限に関係なく、純粋にスキルや希望条件での案件を探すことが可能です。
会社員よりも個人事業主としてプロジェクトを請け負う形であれば、働き方としても選べる立場にありますよね。
給与の支払いサイトは30日で統一されています。
また、取引社数が5,000社以上と多く、新しい案件が集まりやすくなっています。
さらに、SEESに登録をすると最新・未公開案件を獲得することができます。
独立してフリーランスになっても仕事が途切れる心配はありません!
『SEES』(https://miraie-group.jp/sees)を利用して新しい働き方を手に入れてみては…!?
皆さまから選ばれてミドル・シニアエンジニア向け検索サイト三冠達成しております!
株式会社Miraieが運営する『SEES(https://miraie-group.jp/sees)』は、 「シニアエンジニア向け検索10サイトを対象にしたサイト比較イメージ調査」のなかで、
上記3項目においてNo.1を獲得ししております。
株式会社Miraie
2007年設立のシステム開発会社。首都圏を中心にWeb・IT関連事業、コンサルティングサービス、人材派遣サービスなどを展開。 SES事業や受託開発などを中心にノウハウを蓄積しながら、関連事業へとビジネスの裾野を広げています。
監修者インフォメーション
目次を開く