更新日:2022/10/04
この記事のまとめ
SEの業務は「上流」と「下流」とに分けられることがあります。どの工程を上流とし、何を持ってそう呼ぶのか、イメージしづらい方もいるのではないでしょうか。
そこでこの記事では、SEの上流工程と呼ばれるに仕事内容や流れについて詳しく解説します。上流工程で求められるスキルなども紹介するため、これから上流工程を目指す方はぜひ参考にしてください。
目次
システム開発の現場では、設計・開発・テストなどと業務の役割が分かれています。上流工程とは、平たく言えばその根幹を支えている業務のことを指します。下流行程とも比較しながら、どのような業務なのかを具体的に解説します。
ITエンジニアが担うシステム開発では、古くから「ウォーターフォールモデル」という手法が採用されています。滝のように上流から下流に業務が進むよう、大事なところから順次着手し、移行していく仕事のやり方です。
システム開発において上流に位置するのは、次のような業務です。
つまり、顧客の要求を分析し、システムへと落とし込むための初期段階を担います。実際に手を動かして開発する人たちの土台となるため、プロジェクト全体に与える影響は大きいといえます。
下流工程は、上流工程が作成した要件定義や設計にならい、システムを構築・完成させる流れのことです。プログラマーやテスターといった職種が担当します。
企業の規模や体制にもよりますが、下流行程は開発チームのメンバーと接することがほとんどで、上流工程のように顧客と折衝する機会はあまりありません。プロジェクトの舵取りを担うのも上流行程の役割です。したがって、上流行程には実務以外にマネジメント能力も求められます。
上流工程は下流工程よりも給与面で優遇される傾向があります。プロジェクトの方針を定めたり顧客と折衝したりと、下流工程に比べて責任が大きいためです。また、下流工程を管理する立場でもあることから、身につけている知識やスキルが評価されている面もあります。
勤務時間も下流行程より余裕があるケースが多いでしょう。大枠の方針さえ固まれば次は下流工程の担当になり、作業量としては下流行程のほうが多いためです。
上流工程でのシステム開発は、システム化する計画の立案、要件定義、設計、見積もり作成の4つで構成されます。特に中心となるのは、システムの企画から設計です。それぞれについて具体的に解説します。
いきなりシステム開発からスタートすることはありません。まずはユーザーの要求や課題を明確にし、必要となる予算や開発期間などをまとめます。
まとめたら、それらが妥当かどうかを審議します。この段階で詰めが甘いと後の行程に影響を及ぼすため、慎重に審議しなければいけません。問題がなければシステム開発スタートです。
システム開発を始める前に、システムの概要と実装機能を定義してクライアントに提示することを「要件定義」といいます。システムの構成案や仕様を詰めて話し合う場となるため、非常に重要な工程です。
クライアントの要望を実現する機能を挙げ、情報を共有しながら定義書を作り込んでいきます。各機能に過不足がないよう慎重に進めなければいけません。
設計はシステムの構成や処理方法を検討し、計画を立てることを指します。要件定義を基に必要な機能の実装方法を具体的に考えるのがポイントです。
設計には「外部設計」「内部設計」という段階があります。ユーザーが利用しやすく、安全に利用できることを目指すのが外部設計、各機能をどのように実装するかを考えるのが内部設計です。それぞれの設計に不具合やトラブルが生じないよう、チェックをしながら進めます。
システム開発の概要が決まったら、予算や開発期間を計算して見積もりを作成します。クライアントから同意がもらえれば契約成立、下流工程で開発業務がスタートします。
見積もり作成は上流工程の締めくくり業務であり、非常に重要です。スケジュールや開発現場の状況などを総合的に判断する必要があるため、正確性が求められます。
上流工程が担当したシステム設計の出来次第で、下流工程の業務の質は大きく左右されます。不十分な部分があると追加の実装や修正が重なり、予定通りにプロジェクトが進まないかもしれません。今度は、システム設計における上流工程の流れを解説します。
システム開発と同じく、必要な機能や性能を明確に定義するために要件定義が不可欠です。クライアントの要求や課題を解決するために、どのような機能が重要になるか検討します。
要件定義でまとめた情報は、設計段階の資料・ルールとして参照されます。下流工程の開発やテストケース作成時にも必要になる大切な情報源です。プロジェクト内で一貫して利用するため、担当者は慎重に作り込なければいけません。
システム全体の構成を決定するための設計が、アーキテクチャ設計です。アーキテクチャの対象はソフトウェアだけでなく、ハードウェアやシステムの実行環境も含まれます。使用する技術の選定をするのもアーキテクチャ設計のフェーズです。
アーキテクチャ設計の時点で、下流工程で行うテストケースや開発環境を決定するケースも少なくありません。開発状況に応じて追加の作業や修正も入りますが、下流工程の方針の基盤となる重要な設計です。
機能設計とは、機能を実装するための具体的な方法を決める設計のことです。プログラムやデータの管理方法など、開発をスムーズに進めるための重要な行程なので、一つひとつの仕様を詳しく決めていきます。
ユーザーの利便性を考慮した設計も含みます。たとえば、操作画面やボタン、リンクの配置といったシステムを快適に使うための設計です。また、システムの処理に関する設計以外に、外から見える部分の設計を行います。
システム内部の実装に関する設計を内部設計といいます。作業対象はシステムに存在するすべての処理です。機能間での連携はもちろん、データの送受信や書き出し速度に至るまでを組みます。
なお、プロジェクトや開発現場によって内部設計の位置づけは異なります。機能の詳細部分を設計するため、「3」の機能設計と兼ねて行うことも少なくありません。そのため、開発の粒度を事前確認してから設計書を作るケースが大半です。
上流工程の業務ではトラブルや課題がつきものです。不具合が発生してスケジュールの見直しが生じたり、見積もりのミスでコストの増大を招いたりすることもあります。ここでは、SEの上流工程の作業で起こるトラブルや課題について情報をまとめました。
上流工程に不備があると、多くのケースで下流工程に受け継がれます。結果、修正が必要となり、納期が大幅に遅れることもあります。
納期遅れでいえば、クライアントからの合意が得られず、予定通りに進まないことも珍しい話ではありません。場合によってはスケジュールを組み直しも必要になるでしょう。
こうした一つひとつの不備や遅れがプロジェクト全体に影響を及ぼすため、上流工程での作業は責任重大です。
見積もりの設定が甘いと開発コストが増大することがあります。クライアントと予算の上限を話し合い、無理のない範囲で設計することが重要です。
ここの詰めが甘いと、想定外の機能追加が生じてしまいます。結果、予定外の修正も複数出てくるでしょう。「仕様が固まったら納期まで開発に集中するだけ」という環境を作るためにも、見積もり設定は慎重さが必要です。
システムをリリースした後でトラブルが発生するケースもあります。クライアントが仕様にない動作をしたために起こることもありますが、間違った処理がされたまま納品していたことが原因であることもあります。
こうしたトラブルは、下流工程による作業不備のせいだとは限りません。上流工程で想定・防止できるケースもあります。開発後の運用フェーズでもトラブルがないよう、リスクが少ない設計にする意識を持ちましょう。
上流工程を担当するなら、設計をスムーズに進めるためのスキルが不可欠です。クライアントと接触するためコミュニケーション能力も必要ですし、下流工程チームをまとめるためのマネジメント力も求められます。ここでは、SEの上流工程で身につけておきたいスキルを解説します。
クライアントが求めるシステムを開発するには、クライアントの要望を最大限に引き出すためのヒアリングスキルが不可欠です。要件をうまく洗い出し、課題解決につながる設計へとつなげます。
ヒアリングで重要なのは、クライアントの困っていることに着目することです。「現場での作業を効率化したい」「システムをリニューアルして使いやすくしたい」といった要望を具体的に聞き出します。認識違いが起こらないよう、情報を整理しながら提案を進めるのがポイントです。
下流工程のチームメンバーとうまく連携を取るマネジメントスキルも、コミュニケーションスキルと同じくらい大切です。スケジュール調整やタスクの管理を中心に、チームが円滑に回るよう気を配らなければいけません。
実際に、下流工程ではスキルの高い人にタスクが集中することがよく起こります。偏りの少ないタスク分配や役割分担を心掛け、うまくマネジメントしてあげましょう。
設計をする際は、下流工程までを考慮した綿密な計画が必要です。明確な道筋とゴールを立てるのはもちろん、不備や出戻りが起こらないよう設計するスキルも求められます。
コーディングやテストの実施方法などについても、分かりやすく具体的な指示が必要です。修正や追加の開発は限りなく減らし、スケジュール通りに進められる設計を意識しましょう。
SEとして上流工程で活躍するために、資格を取得するのもひとつの手です。資格勉強を通して実務に役立つスキルや考え方が身につくことは大いにあるでしょう。ここでは、SEの上流工程の仕事に役立つ資格について紹介します。
応用情報技術者試験は、IT系資格の中でも知名度の高い国家資格です。技術者としての信用につながるため、SEの上流工程にチャレンジしてみたいと考えている方は、取得するのをおすすめします。
主催しているのはIPA(情報処理推進機構)です。試験は午前と午後の2部に分かれており、選択問題と記述問題が出題されます。プロジェクトマネジメントや設計・運用に関する出題が多く、上流工程の基礎的な知見を身につけられるのが特徴です。
プロジェクトマネージャ試験では、チームメンバーをマネジメントする際に必要となるスキルの習得を目指します。下流工程のメンバーと連携し、効率的にプロジェクトを回したい方は取得を検討するとよいでしょう。
応用情報技術者試験と同じくIPAが主催する試験で、午前2部と午後の2部の計4部に分かれて実施されるのが特徴です。予算やスケジュールといったコスト面での管理スキルや、品質担保のための知識が問われます。難易度は高めですが、上流工程にチャレンジするうえで生かせるでしょう。
システムアーキテクト試験は、上流工程のアーキテクチャ設計にまつわる知見を身につけるための試験です。クライアントのニーズを把握し、正確にシステムに落とし込む行程に生かせることが多いでしょう。
同じくIPAが主催する試験で、毎年春期に実施されます。ソフトウェアの設計から運用までを対象に出題されるため、幅広い範囲の対策が不可欠です。運用後の投資対効果について分析・評価できる水準まで知見を深められます。
オラクルマスターは、Oracle Databaseに関する知見を深めるための試験です。データーベースについてのスキルを高めることで、高いパフォーマンスを望めるシステム設計ができるようになるでしょう。
日本オラクル社が主催する試験で、「Bronze(ブロンズ)」「Silver(シルバー)」「Gold(ゴールド)」「Platinum(プラチナ)」の4段階に難易度分けされているのが特徴です。OSからデーターベースの構築まで、幅広いスキルが求められます。
上流工程は開発の初期段階にあたり、クライアントからの要望や課題をシステム設計へとつなげていく工程です。下流行程をうまく調整してまとめ、プロジェクトを成功に導きます。
SEの上流工程にチャレンジするには、これまでの経歴を生かして転職する必要があります。しかし企業情報のリサーチや応募書類の準備など、転職にはさまざまなステップが不可欠です。
そうした点でお困りの場合は、ぜひマイナビITエージェントをご活用ください。専門のキャリアアドバイザー在籍しており、経歴・スキルにマッチした企業選びから応募書類のチェック、面接対策まで全面的にサポートできます。
IT業界
Webエンジニアに将来性はない?AI発展の3つの影響と生き残るための戦略
IT業界
ネットワークエンジニアの将来性は?需要が高まる理由と必須のスキル
IT業界
システムエンジニアを辞めたい4つの理由と辞める前に確認したいこと