Yuta KimuraYuta Kimura ·木村祐太Kimura
researchmap

Project Planning & Estimation

プロジェクト計画・見積もり:「いつ・いくらで」を見通す技術

ソフトウェアプロジェクトの成否は、書いたコードだけでなく「何を・いつまでに・いくらで・誰が作るか」の見通しで決まります。価格の決め方(pricing to win)、計画駆動開発のスケジューリング(タスク分割・依存・クリティカルパス・ガントチャート)、アジャイルの計画(プランニングゲーム・ストーリーポイントとベロシティ)、そして見積もり技法とCOCOMO II コストモデルまで、目的・進め方・意識するポイント・注意点つきで整理しました。この教材の主役は3つの計算ツール(COCOMO工数計算機、クリティカルパス/ガントチャート可視化、ベロシティ・プランナー)です。手を動かして「見積もりの感覚」をつかんでください。

この教材は日本語のみで提供していますThis learning material is available in Japanese only.

位置づけ・関連教材

この教材は計画・スケジューリング・見積もり(定量)を扱います。リスクマネジメント・人とチームのマネジメント・進捗と健全性のメトリクスは、姉妹教材「プロジェクト管理」学習ガイドにまとめています。

はじめにIntroduction

プロジェクト計画と見積もりとは何かWhat is project planning & estimation?

概念カタログConcept catalog

16の概念・技法カタログSixteen concepts and techniques

価格決定・計画駆動とスケジューリング・アジャイル計画・見積もり技法・COCOMO の5カテゴリに整理しました。カテゴリで絞り込み、各カードをクリックすると、目的・進め方・意識するポイント・注意点・具体例が開きます。この後の計算ツールとあわせて読むと理解が深まります。

計算ツールInteractive calculators

手を動かす:4つの計算ツールTry the numbers yourself

① COCOMO II 工数計算機

規模(KLOC)・スケール指数 B・コストドライバ乗数 M を動かすと、工数・開発期間・必要人員が即時に再計算されます。すべて簡略化した COCOMO II の関係式に基づきます(式は下部に明示)。

規模:Size(KLOC:千行)100
見積もり対象のコード規模。COCOMO はコード行数を入力にとる(大規模ほど不確かさが増す点に注意)。
係数 A(定数)2.94
COCOMO II の較正定数。標準は A = 2.94。組織の実績データで再較正するのが本来の使い方。
スケール指数 B(規模の不経済)1.10
スケール要因(先例性・開発の柔軟性・リスク解決・チームの結束・プロセス成熟度)が指数 B に効く。B>1 は「規模が2倍でも工数は2倍以上」という規模の不経済を表す。
コストドライバ乗数 M(工数調整係数)1.00
コストドライバ(製品の信頼性要求・複雑さ、プラットフォーム制約、人員の能力・経験、ツール・スケジュール)の積が乗数 M。全ドライバ標準なら M = 1.0。
推定工数:Effort
466人月(PM)
開発期間(TDEV)25.5 か月
平均必要人員18.3 人
KLOCB(規模項)158.5
38.8
人年(PM÷12)
1.00
乗数 M
工数  PM = A × KLOCB × M   (A=2.94, B=スケール指数, M=コストドライバの積)
期間  TDEV = 3.0 × PM(0.33 + 0.2×(B − 1.01))  〔か月・簡略式〕
平均人員 = PM ÷ TDEV   (PM=person-month=1人が1か月働く工数)

前提と注意:これは学習用に単純化した COCOMO II(ポストアーキテクチャモデル)の骨格です。本来 B は5つのスケール要因から B = 0.91 + 0.01×ΣSF のように、M は多数のコストドライバの積として求めます。TDEV の指数も較正値に依存します。絶対値ではなく「入力を変えると出力がどう動くか」の感覚をつかむのが目的です。とくに B を上げると規模の効きが急激に非線形になること、M が全体を素直にスケールさせることを確かめてください。

② クリティカルパス/ガントチャート可視化

教科書の演習「図23.14」(16タスク・所要日数・依存関係)を、汎用のCPM(クリティカルパス法)エンジンで解いて描画します。各バーは開始〜終了、クリティカルパスのタスクは緑で強調、点線はそのタスクが持つ余裕(フロート)です。

シナリオ:
130
総所要日数(プロジェクト期間)
T1→T2→T3→T7→T8→T14→T15→T16
クリティカルパス

読み方:クリティカルパスは「1日でも遅れると全体が遅れる」タスクの連なりで、その合計がプロジェクトの最短期間を決めます。フロート(点線)のあるタスクは、その範囲内なら遅れても全体に影響しません。コンティンジェンシー(余裕)は本来クリティカルパス上に確保します。

③ ベロシティ簡易プランナー(アジャイル)

プロダクトバックログのストーリーポイント合計とチームのベロシティ(1イテレーションあたりの消化ポイント)から、必要イテレーション数とおおよそのカレンダー期間を見積もります。

残ストーリーポイント合計240
ベロシティ(pt / イテレーション)30
直近数イテレーションの実績平均を使う。「見積もり」ではなく実測である点が重要。
イテレーション長(週)2
必要イテレーション数
8イテレーション
おおよその期間16 週(約 3.7 か月)
完了(切り上げ)8.0 → 8
ベロシティが安定していれば、残ポイント ÷ ベロシティ で完了時期を予測できます。スコープ(ポイント)を固定するのではなく、期日を固定して入る機能を優先順位で選ぶのがアジャイルの発想です。

④ 三点見積もり(PERT)計算機

タスクの楽観値 O・最頻値 M・悲観値 P(人日)を入力すると、期待値 E=(O+4M+P)/6 と標準偏差 σ=(P−O)/6、68%/95% の信頼区間を計算し、分布の形を描きます。

代表例:
楽観値 O
すべて順調ならば
最頻値 M
いちばんありそうな値
悲観値 P
想定内の悪いことが重なったら
期待値  E = (O + 4M + P) / 6     標準偏差  σ = (P − O) / 6
68%信頼区間 ≈ E ± σ     95%信頼区間 ≈ E ± 2σ  〔正規分布近似〕

読み方:悲観側の裾が長い(P−M が M−O より大きい)タスクほど、期待値 E は最頻値 M より右にずれます。「いちばんありそうな値」で約束すると五分五分より高い確率で遅れる:三点見積もりの最重要の教訓です。複数タスクの合計は E を足し、σ は √Σσ2 で合成します。

理解度チェックCheck your understanding

理解度チェッククイズComprehension quiz

それぞれの状況にもっとも適した用語・考え方を選んでください。

おわりにIn closing

計画と見積もりに向き合う心構えと、さらに学ぶためにHow to think about planning, and where to learn more