見積もり精度を上げるために、私がやってきた5つのこと
見積もりが外れることへの恐怖は、エンジニアとして働き続けるなかでずっと抱えていた問題でした。
「今回こそ精度を上げよう」と思って見積もっても、蓋を開けると想定の1.5倍、2倍の工数がかかっている。クライアントへの説明が苦しくなり、次の案件で「多めに見ておこう」とバッファを積みすぎ、今度は高すぎて失注する——そういったサイクルを何度も繰り返してきました。
この記事では、そのサイクルから抜け出すために実際に取り組んできた5つのことをまとめます。
1. 「プロジェクト単位」ではなく「フェーズ単位」で見積もる
最初に変えたのは、見積もりの単位です。
「Webサイト制作:80時間」という見積もりの立て方をしていた頃は、ほぼ毎回外れていました。理由は単純で、「80時間」という数字に根拠がないからです。なんとなくの感覚と過去の印象をもとにした数字は、プロジェクトの構造が変わればすぐに崩れます。
変えたのは、フェーズごとに見積もりを分解することです。
- 要件定義:X時間
- 設計(ワイヤー・デザイン):X時間
- 実装:X時間
- テスト・修正対応:X時間
このように分けると、「実装は前回の案件と構造が似ているから30時間」「でも今回はアニメーション要件が多いから+10時間」という比較と調整ができるようになります。フェーズごとに分解するだけで、見積もりが「感覚」から「比較」に変わります。
2. 成果物を起点にタスクを洗い出す
フェーズに分けたあと、さらに精度を上げたのは「成果物→タスク」の順番で考えることでした。
たとえば「設計フェーズ」に対して「デザインをする」ではなく「何を納品するか」から考えます。
- ワイヤーフレーム(トップ・サービスページ・問い合わせページ)
- デザインカンプ(トップのみ、残りは共通スタイル適用)
- コンポーネント定義書
という具体的な成果物が決まれば、それぞれに必要な作業時間を見積もれます。「なんとなく設計で20時間」ではなく「ワイヤーフレーム3ページで9時間、デザインカンプで12時間」という積み上げに変わります。
成果物から考えると、見落としているタスクも見つかりやすくなります。「デザインレビューの対応工数を入れていなかった」という抜けが事前に見つかるのは、この考え方をしていたからです。
3. 過去の実績ログを「次の見積もりの参照先」にする
3つ目は、記録の使い方です。
工数を記録している人は多いですが、「記録した数字を見積もりに活かしている」人は意外と少ないと感じます。私も以前は記録はしていても、振り返る習慣がありませんでした。
変えたのは、見積もりを作るときに過去の類似案件のログを必ず参照することです。
「前回の案件でAPIの設計フェーズに何時間かかったか」「テストフェーズの工数は実装フェーズの何%になったか」——こういった比較ができると、今回の見積もりに根拠が生まれます。
逆にいえば、記録が「フラット」な状態(プロジェクト合計だけ残っている)だと参照できません。フェーズ・成果物・タスクという構造で記録されていてはじめて、意味のある比較ができます。
4. 「バッファ」ではなく「リスク要因」を個別に書き出す
見積もり精度が低かった頃、私は不確実性への対策として「バッファを20%追加する」という方法を使っていました。
これには問題があります。なぜ20%なのかに根拠がなく、バッファが「怖いから足す」数字になってしまいます。
変えたのは、バッファをひとつの数字にまとめるのではなく、不確実性の源泉をリストアップすることです。
- クライアントのレビュー回数が読めない(+3時間〜+8時間)
- 外部APIの仕様が固まっていない(+5時間〜+15時間)
- インフラ設定の経験が浅い(+3時間)
このように書き出すと、合計のバッファ幅に根拠ができます。またクライアントに対しても「このリスクが顕在化した場合は追加工数が発生します」という説明がしやすくなります。
5. 見積もりと実績の差を毎回振り返る
最後に、最も効果があったのは「振り返り」の習慣です。
プロジェクトが終わったあとに、フェーズごとの見積もりと実績を比較します。
- どのフェーズで乖離が大きかったか
- なぜその乖離が生まれたのか(見積もり時に見えていなかった要因は何か)
- 次回の見積もりに反映できることは何か
このサイクルを続けると、「自分はデザインフェーズの見積もりが甘い」「テストフェーズは毎回1.3倍かかっている」という自分のクセが数字で見えてきます。クセを知れば、次の見積もりで意識的に補正できます。
感覚で補正するのではなく、データで補正する。それが見積もり精度を改善する本質だと思っています。
まとめ
見積もり精度を上げる5つのこと:
- フェーズ単位で見積もりを分解する
- 成果物を起点にタスクを洗い出す
- 過去の実績ログを参照先として使う
- バッファではなくリスク要因を個別に書き出す
- 見積もりと実績の差を毎回振り返る
どれも「精度を上げるための手法を覚える」という話ではなく、記録と比較のサイクルを回せる構造を作るということです。仕組みが整えば、精度は自然と上がっていきます。見積もりが外れ続けているなら、まず「何を記録しているか」を見直すことをおすすめします。
本記事で取り上げた「見積もり精度の改善」は、LayerClock でも対応しています。 フェーズ・成果物・タスクの4階層WBS構造で作業を分解し、タイマー計測で実績を積み上げることで、見積もりと実績の比較を継続的に行える仕組みを無料から試すことができます。