システム開発においては前半部分を「上流工程」、後半部分を「下流工程」と呼んでいます。上流工程はシステムの骨格や土台を決める部分で、システム全体の質を左右する重要な役割を担っています。一方下流工程は上流工程で決められた内容に沿ってシステムを作り込んでいく、こちらも重要な役割を担っています。
ただし、上流工程と下流工程では求められるスキルが異なります。この記事では上流工程の仕事の流れや求められるスキルなどを紹介します。
目次
SE上流工程とは
SE上流工程とは、システム開発における「要件定義」「機能定義」「計画立案」「予算作成」「設計」などを行うフェーズです。
顧客が求めている要望を理解し、システム要件としてまとめるのが「要件定義」フェーズになります。次にシステムの具体的な機能を決めていくのが「機能定義」フェーズで、どのようなスケジュールと予算でシステム開発を進めていくのかを計画するのが「計画立案」フェーズ、「予算作成」フェーズです。そして、具体的にシステムの骨格を決めていくのが「設計」フェーズとなります。
上流工程はシステム全体の方向性や品質などを決める重要な位置づけです。上流工程でしっかりとしたものを作っておかないと、顧客の要望を満たすことができず下流工程で問題が多発してしまいます。
そのため上流工程はシステム開発を成功させるための重要な部分となります。
SE上流工程とSE下流工程の違い
SE上流工程とSE下流工程では、具体的にどのような違いがあるのでしょうか。ここではそれぞれの違いについて紹介します。
業務の流れ
上流工程では顧客とコミュニケーションをとりながら進めていく流れとなります。顧客が抱えている課題や、顧客のニーズをヒアリングして整理し、システムの要求事項としてまとめ、具体的な形に設計していきます。
一方、下流工程は上流工程で決まった内容に従って作り込む作業を進めていきます。下流工程では顧客と接する機会は上流工程ほどありません。
担当する役割
上流工程ではシステム開発のプロジェクト全体に関して、管理や決定などを行う役割を担います。
一方、下流工程ではシステムのソフト開発部分を製作する役割を担います。
担当する範囲
上流工程では高度な業務知識やプロジェクトマネジメント能力が必要です。また責任も重大なため、大手SIerなどの大企業が担当することが多くあります。
一方、下流工程では大手SIerの下請けや関連などのIT企業が入り込み、ソフトウエア開発を進めます。このフェーズでは、ソフトウエアの開発スキルが求められます。
SE上流工程の流れ
ここではSE上流工程の主なフェーズの内容を具体的に紹介します。
要件定義
要件定義は、開発するシステムの「目的」にあたる部分です。どのようなことを実現するためのシステムを開発するのか明確に決めるフェーズです。具体的にどのような機能が必要なのか、どれくらいの性能が必要なのかも洗い出して整理し「要件定義書」としてまとめます。
「要件定義書」をもとに顧客との認識の一致を図り、顧客から承諾が出ればシステムの形が決定したので次のフェーズに進みます。
このように、要件定義はシステムの形や機能、対応範囲を決めるシステム開発の中で最も重要なフェーズといえます。
基本・詳細設計
基本・詳細設計は、要件定義で決定した内容を実現するために、システム視点で実現可能な方法を検討します。例えば、テーブル定義や状態遷移、画面帳票、インタフェース、入出力など、システムとして実現するための情報を検討し「基本設計書」としてまとめます。
「基本設計書」がまとまったら、プログラム視点でどのように実現していくのかを検討し「詳細設計書」としてまとめます。
見積もり作成
「要件定義書」「基本設計書」「詳細設計書」でシステムの概要から具体的な実現方法までが決定したら、開発期間や費用を算出して「見積書」としてまとめます。
見積もり作成フェーズは上流工程の締めくくりの業務で、正確な見積もりを作成する必要があります。
見積書の内容に関して顧客から承諾が得られれば契約成立となり、下流工程の開発業務が開始となります。
SE上流工程で押さえておきたいポイント
SE上流工程で押さえておきたいポイントは、システム作成後のテストフェーズで確認する項目を意識することです。
テストフェーズで確認する項目は、次に挙げられる3つになります。
- 単体テスト
- 総合テスト
- システムテスト
それぞれのテストフェーズは上流工程の各フェーズに該当します。「詳細設計」で取り決めた内容が実現できているか確認するのは「単体テスト」、「基本設計」で取り決めた内容を確認するのは「総合テスト」、「要件定義」の内容を確認するのは「システムテスト」となります。
上流工程の各フェーズでは対応しているテストフェーズにおいて、何を基準に判定するのかを意識して取り決めを行う必要があります。上流工程で取り決めた内容があいまいだと、テストフェーズでのOKやNGが判定できないので、上流工程では明確な基準が必要となります。
SE上流工程のトラブルや課題
SE上流工程でのトラブルや課題にはどのようなものがあるのか紹介します。
不具合発生による納期の遅れ
SE上流工程で不具合が入り込んでしまった場合、システム全体に影響を及ぼす可能性があります。例えばプログラムのミスやプログラムの不具合であった場合は、すぐ後のフェーズである「単体テスト」で不具合に気づくことができ、修正も時間が掛かりません。しかし上流工程での不具合は、発覚するのが終盤の「総合テスト」や「システムテスト」のタイミングであるため、修正する場合は大幅な改造になる可能性があります。
さらにシステムの根本に関わる問題であることも少なくないため、最悪の場合は“仕様から検討し直し”という可能性もあります。そうなると納期遅れに繋がってしまいます。
SE上流工程での不具合は、上流工程の中で抽出し解決しておくことが求められます。
開発コストの増大
見積もりが不正確であった場合、想定していなかった機能や作業が後から増えて開発コストが増大してしまうことがあります。システム受注時に競合他社がいた場合、見積もりを抑えて提出しようとしてしまいがちですが、しっかりとシステム全体の機能や作業内容を見極めて見積もりを作成しておく必要があります。
SE上流工程の際にシステムの対応範囲を明確にしておくことで、顧客から機能改善や機能追加の話が出た場合、見積もりに含まれていないことを明確に示すことができます。そうすれば追加費用に関しての話し合いをすることができ、開発コストの圧迫を未然に防ぐことが可能となります。
開発コストの増大を防止するためにも、正確な見積もりを行うことが大切です。
開発後のトラブル
システムをリリースした後、トラブルが発生する場合があります。トラブルの原因はさまざまで、顧客の使い方が間違っている場合、顧客が想定していない操作をした場合、顧客の要望と開発したシステムに乖離がある場合、プログラムに不具合がある場合などが考えられます。
とくに「顧客が想定していない操作をした」「顧客の要望と開発システムに乖離があった」については、SE上流工程で未然に防いでおくべき内容です。
SE上流工程で求められるスキル
SE上流工程では、顧客の要望をまとめ、システム化を実現するための設計を行い、見積もりをまとめるフェーズです。必要なスキルとしては次のようなものがあります。
業務知識
顧客の業務に精通している必要があります。顧客企業が関係する業界の知識や顧客企業を取り巻く環境などの知識も必須となり、それらを加味した上で顧客の要望を形にしていく必要があるためです。
SE上流工程では、ITスキル以外にも幅広い知識が必要となります。
ITスキル
顧客の要望がまとまった後は「設計」フェーズに入ります。このときに実現可能なシステムを想定して設計する必要があるため、ITスキルは必須です。設計した後は下流工程を担当するエンジニアに内容を引き継ぐ必要があります。エンジニアと同等に会話できるくらいのITスキルが必要となります。
ヒアリングスキル
顧客が抱えている課題や要望は、顧客の中できちんと整理されているわけではありません。そのような課題や要望を正確にヒアリングし「要求定義書」としてまとめていく必要があるため、ヒアリングスキルが必須です。
また、内容によってヒアリングする顧客を選ぶ必要も出てくるため、顧客の誰が詳しい情報を持っているのかを日ごろから知っておくためにコミュニケーションスキルも必要となります。
SE上流工程のSEとして働ける企業
SE上流工程を担当する企業は限られています。ここでは上流工程のSEとして働くことができる企業について紹介します。
大手SIer企業
大手SIer企業は、システム開発を行っている企業の中でも規模が大きい会社を指しています。大手SIerは顧客からの業務依頼を直接受けている場合が多いです。そのため、SE上流工程に携わることが可能となります。
大手企業の情報システム部門が独立した「ユーザー系」企業や、ハードウエアメーカーの情報システム部門が独立した「メーカー系」企業、親会社を持たずに独自に経営している「独立系」企業などがあります。
ITコンサルティング企業
ITコンサルティング企業は、顧客企業のIT戦略の提案や策定、システム化計画の立案など、ITを使った経営全般に関する提案や推進などを行っています。ITを活用して顧客企業の抱えている課題の解決策を提示する役割を担っています。
昨今の企業経営では、ITをいかに活用していくかという点が重要になってきているので、ITコンサルティング企業の需要も高まっています。ITコンサルティング企業が提案したITシステムを導入することになった場合、上流工程から携わることが可能となります。
シンクタンク企業
シンクタンクは、コンサルティング企業のように顧客企業の課題解決が目的ではなく、社会や経済の調査・研究が目的です。研究機関という位置づけになります。
そのようなシンクタンクの調査・研究の一環でIT戦略やITマネジメントといったサービスを展開しているのがシンクタンク企業です。
上流工程からのITコンサルティングやシステムの設計・開発などを行っており、上流工程のSEとして業務に携わることが可能です。
まとめ
今回の記事では、SEの上流工程について解説しました。コンサルティング案件などを探している方、事例を知りたい方は、ぜひfoRProまでご相談ください。