2021年 春期 応用情報技術者試験 問9
プロジェクトのコスト見積り
L社は大手機械メーカQ社のシステム子会社であり,Q社の様々なシステムの開発,運用及び保守を行っている。このたび,Q社は,新工場の設立に伴い,新工場用の生産管理システムを新規開発することを決定した。この生産管理システム開発プロジェクト(以下,本プロジェクトという)では,業務要件定義を受け入れをQ社が担当し,システム設計から導入までと受け入れの支援をL社が担当することになった。L社とQ社は,システム設計と受け入れの支援を準委任契約,システム設計完了から導入まで(以下,実装工程という)を請負契約とした。
本プロジェクトのプロジェクトマネージャには,L社システム開発部のM課長が任命された。本プロジェクトは現在Q社での業務要件定義が完了し,これからL社でシステム設計に着手するところである。L社側実装工程のコスト見積りは,同部のN君が担当することになった。
なお,L社はQ社の情報システム部が,最近になって子会社として独立した会社であり,本プロジェクトの直前に実施した別の新工場用の生産管理システム開発プロジェクト(以下,前回プロジェクトという)が,L社独立後にQ社から最初に受注したプロジェクトであった。本プロジェクトのL社とQ社の担当範囲や契約形態は前回プロジェクトと同じである。
【前回プロジェクトの問題とその対応】
前回プロジェクトの実装工程では,見積り時のスコープは工程完了まで変更がなかったのに,L社のコスト実績がコスト見積りを大きく超過した。しかし,①L社は超過コストをQ社に要求することはできなかった。本プロジェクトでも請負契約となるので,M課長はまず,前回プロジェクトで超過コストが発生した問題点を次のとおり洗い出した。
・コスト見積りの機能の範囲について,Q社が範囲に含まれると認識していた機能が,L社は範囲に含まれないと誤解していた。
・予算確保のためにできるだけ早く実装工程に対するコスト見積りを提出してほしいというQ社の要求に応えるため,L社はシステム設計の途中でWBSを一旦作成し,これに基づいてボトムアップ見積りの手法(以下,積上げ法という)によって実施したコスト見積りを,ほかの手法で見積りを実施する時間がなかったので,そのまま提出した。その後,完成したシステム設計書を請負契約の要求事項として使用したが,コスト見積りの見直しをせず,提出済みのコスト見積りが契約に採用された。
・コスト見積りに含まれていた機能の一部に,L社がコスト見積り提出時点では作業を詳細に分解し切れず,コスト見積りが過少となった作業があった。
・詳細に分解されていたにもかかわらず,想定外の不具合発生のリスクが顕在化し,見積りの基準としていた標準的な不具合発生のリスクへの対応を超えるコストが掛かった作業があった。
次に,今後これらの問題点による超過コストが発生しないようにするため,M課長は本プロジェクトのコスト見積りに際して,N君に次の点を指示した。
・aを作成し,L社とQ社で見積りの機能や作業の範囲に認識の相違がないようにすること。その後も変更があればメンテナンスして,Q社と合意すること
・実装工程に対するコスト見積りは,Q社の予算確保のためのコスト見積りと,契約に採用するためのコスト見積りの2回提出すること
(i) 1回目のコスト見積りは,システム設計の初期の段階で,本プロジェクトに類似したシステム開発の複数のプロジェクトを基に類推法によって実施して,概算値ではあるが,できるだけ早く提出すること
(ii) 2回目のコスト見積りは,システム設計の完了後に②積上げ法に加えてファンクションポイント(以下,FPという)法でも実施すること
・積上げ法については,次の点について考慮すること
(i) 作業を十分詳細に分解してWBSを完成すること
(ii) 標準的なリスクへの対応に基づく通常のケースだけでなく,特定したリスクがいずれも顕在化しない最良のケースと,特定したリスクが全て顕在化する最悪のケースも想定してコスト見積りを作成すること
【1回目のコスト見積り】
これらの指示を基に,N君はまず,Q社の業務要件定義の結果を基にaを作成し,Q社とその内容を確認した。
次に,1回目のコスト見積りを類推法で実施し,その結果をM課長に報告した。その際,L社が独立する前も含めて実施した複数のプロジェクトのコスト見積りとコスト実績を比較対象にして,概算値を見積もったと説明した。
しかし,M課長は,"③自分がコスト見積りに対して指示した事項を,適切に実施したという説明がない"とN君に指摘した。
N君は,M課長の指摘に対して漏れていた説明を追加して,1回目のコスト見積りについてL社内の承認を得た。M課長は,この1回目のコスト見積りをQ社に提出した。
【2回目のコスト見積り】
N君は,システム設計の完了後に,積上げ法とFP法で2回目のコスト見積りを実施した。
(1) 積上げ法によるコスト見積り
N君は,まず作業を,工数が漏れなく見積もれるWBSの最下位のレベルであるbまで分解してWBSを完成させた後,工数を見積もり,これに単価を乗じてコストを算出した。
次に,この見積もったコストを最頻値とし,これに加えて,最良のケースを想定して見積もった悲観値と,最悪のケースを想定して見積もった悲観値を算出した。
楽観値と悲観値の重み付けをそれぞれ1とし,最頻値の重み付けを4としてコストに乗じ,これらを合計した値を6で割って期待値を算出することとした。例えば,最頻値が100千円で,楽観値は最頻値-10%,悲観値は最頻値+100%となった作業のコストの期待値はc千円となる。
bのコストの期待値を合計して,本プロジェクトの積上げ法によるコスト見積りを作成した。
(2) FP法によるコスト見積り
N君は,FP法によってFPを算出して開発dを見積もり,これを工数に換算し単価を乗じて,コスト見積りを作成した。表1~3は,本プロジェクトにおけるある1機能でのFPの算出例である。表1,表2を基に,表3でFPを算出した。
データファンクション | ファンクションタイプ | レコードタイプ数 | データ項目数 | 複雑さの評価 |
---|---|---|---|---|
D1 | EIF:外部インタフェースファイル | 1 | 4 | 低 |
D2 | ILF:内部論理ファイル | 1 | 3 | 低 |
D3 | EIF:外部インタフェースファイル | 1 | 5 | 中 |
D4 | ILF:内部論理ファイル | 1 | 4 | 低 |
D5 | ILF:内部論理ファイル | 1 | 6 | 中 |
トランザクションファンクション | ファンクションタイプ | 関連ファイル数 | データ項目数 | 複雑さの評価 |
---|---|---|---|---|
T1 | EQ:外部照会 | 1 | 5 | 低 |
T2 | EI:外部入力 | 2 | 7 | 中 |
T3 | EO:外部出力 | 1 | 6 | 低 |
T4 | EI:外部入力 | 2 | 8 | 中 |
T5 | EQ:外部照会 | 1 | 5 | 低 |
T6 | EQ:外部照会 | 3 | 10 | 高 |
ファンクションタイプ | 複雑さの評価 | 合計 | |||||
---|---|---|---|---|---|---|---|
低 | 中 | 高 | |||||
個数 | 重み | 個数 | 重み | 個数 | 重み | ||
EIF | 1 | ×3 | 1 | ×4 | 0 | ×6 | 7 |
ILF | ― | ×4 | ― | ×5 | ― | ×7 | ― |
EI | ― | ×3 | ― | ×4 | ― | ×6 | ― |
EO | ― | ×7 | ― | ×10 | ― | ×15 | ― |
EQ | 2 | ×5 | 0 | ×7 | 1 | ×10 | 20 |
総合計(FP) | e |
N君は,M課長に積上げ法とFP法によるコスト見積りの差異は許容範囲であることを説明し,積上げ法のコスト見積りを2回目のコスト見積りとして採用することについて,L社内の承認を得た。M課長は,承認された2回目のコスト見積りをQ社に説明し,Q社の合意を得た。その際Q社に,業務要件の仕様変更のリスクを加味し,L社のコスト見積りの総額にfを追加して予算を確定するよう提案した。