エンジニアの「工数見積もりが苦手…」への対策は?効果的な取り組み5点
[最終更新日]2024/06/14
「なかなか正確な見積もりを立てられない…」
このような悩みをお持ちのSEやプログラマーは多いのではないでしょうか。
工数見積もりに関して、苦手意識を持つエンジニアは少なくありません。
ですが、工数見積もりは適切な取り組みを知ることで、その品質を高めていくことが可能です。
目次
1)なぜあなたの工数見積もりは外れてしまうのか
なぜあなたの工数見積もりは外れてしまうのでしょうか。主な理由には、以下の3つが挙げられます。
理由を知ることは、正しい工数見積もりを立てる第一歩です。それぞれについて、詳しく確認していきましょう。
開発経験が少ない、未知のものが多い
その技術に関する開発経験が少ない、未知の内容が多いことは、工数見積もりの精度を下げる主な要因です。
経験豊富な技術であれば、効率的に進めるコツや陥りやすいポイントを踏まえて作業イメージやスケジュールを立てられます。
しかし未知の技術は得られる情報に限界があるため、工数見積もりが外れやすくなることは否めません。
感覚だけで作成する見積もりは、どうしても精度が下がりがちです。
また経験豊富なエンジニアの場合でも、工数見積もりのノウハウが不足していると精度は下がります。
例えば作業にかかる時間だけを積み上げて見積もりを作った場合は、ほとんどのケースで遅延を引き起こすでしょう。
WBSやクリティカルパスの理解、適切なバッファの見積もりが必要です。
ヒアリングや要件定義の不足(仕様が途中で変更される)
開発に必要な情報を揃えないまま見積もりを立てることは、工数見積もりが外れる結果に直結します。
たとえば、以下の要因があるでしょう。
- 顧客から丁寧にヒアリングしない
- 顧客の要望を鵜呑みにする。不明な点の確認や、より良くするための提案もしない
- 要件定義に不足がある
もっとも、顧客も初期の段階で要望を確定させているとは限りません。
むしろ打ち合わせや開発が進むにつれさまざまな要望が出され、途中で仕様が変わるケースも多いでしょう。
想定できない要望が出されれば作業項目が増えるわけですから、当初の見積もりを上回ることは自然のことといえます。
クライアントの希望・要望などからのバイアス
もう一つの要因として、「工数見積もり」という用語の認識が異なる点も見逃せません。
単なる「作業予定」のつもりで気軽に見積もりを出したところ、相手の方は「デッドライン」と捉えられて苦労した経験をお持ちの方もいるのではないでしょうか。
別の要因として、クライアントや営業サイドの要望、上司の指導などにより、作業スケジュールの短縮を迫られるケースもあります。
ここには「なるべく予算を抑えたい」といったクライアントの希望にこたえるため、「頑張ればなんとか実現可能」といった短めの見積もりを作ってしまうケースも含まれます。
もともと実現不可能なスケジュールならば、見積もりが外れるのはやむを得ません。
2)適切な工数見積もりを作成するための取り組み5点
適切な工数見積もりは、正しい方法で行うことが重要です。
取り組むべき項目には、以下の5点が挙げられます。
いずれも重要な項目です。何をどのように行えばよいか、順に確認していきましょう。
タスクの「細分化」を意識する
適切な工数見積もりの作成には、実施すべき業務や作業を正確に把握することが欠かせません。そのためには、タスクの細分化が重要です。
作業を分解して構造化する「WBS」(Work Breakdown Structure)は、有効な手法に挙げられます。
まず大きな粒度で項目を分けた後、それぞれの項目を細分化することで、実施すべき項目の抜けや漏れを防ぎます。
細分化の目安はプロジェクトにより異なりますが、3~4時間から1日が目安となります。
未知の分野や手に負えそうにない作業もタスクの細分化により、やり方が見えてくるケースもあるでしょう。
マクドナルド創業者のレイ・クロックは、「何事も小さな仕事に分けてしまえば、とくに難しい話ではない」という言葉を残しています。
大きなひとつのタスクよりも小さなタスクの集合体の方がその概要を把握しやすく、工数見積もりのブレも起きにくくなるのです。
優先すべき作業をクリティカルパスで定めておく
開発作業は、複数の項目を同時並行して進めるケースも多いです。
各項目にかかる時間は異なりますから、優先すべき作業の流れを「クリティカルパス」として定めることが重要です。
クリティカルパスとは、遅延がプロジェクト全体のスケジュールに影響を及ぼす一連の工程を指します。以下の図では、赤色で示した一連の工程がクリティカルパスです。
赤色で示された工程のどこかで遅延が発生すると、そのままプロジェクト全体のスケジュールも遅延してしまいます。
タスクフローを引いた際に、「どのフローがクリティカルパスになるか」を考える癖を付けましょう。
それぞれの作業の関わり合いについてのイメージを深めやすく、開発の全体像把握にも役立てられるはずです。
また、その際はクリティカルパスの領域にリソースを優先的に配分しておくとより安心でしょう。
適切なバッファの見積もり方を知っておく
現場で使える工数見積もりの作成には、適切なバッファの算出も重要です。
過少なバッファはスケジュール遅延につながり、信頼を失う原因となります。一方で過大なバッファは費用の増大につながるデメリットがあります。
代表的なバッファの見積もり方には、「PERT法」と「不確実性コーン」があります。両方の特徴や算出方法を理解したうえで、開発に活かせる方法を選びましょう。
手法#1 PERT法
PERT法は工程ごとの依存関係を図で示した、主なプロジェクト管理技法の一つです。
依存関係は丸印や四角で示した工程どうしを矢印で結んだもので、この図を「PERT図」(アローダイヤグラム)と呼びます(先ほどのクリティカルパスの図を思い出してください)。
PERT図は、アメリカ国防省をはじめ、国内外で広く用いられている手法です。
PERT法でバッファを算出するためには、工程ごとに3種類の工数を見積もる必要があります。
B | 最良時間(楽観的時間) | 全行程が問題なくスムーズに進行した場合に要する時間 |
---|---|---|
N | 最有力時間(最確時間) | 可能性が最も高いケースで必要と思われる時間 |
W | 最悪時間(悲観的時間) | 問題が続々と出るなど、全行程で想定よりも悪く進行した際に必要な時間 |
見積もり時間は、以下の数式で算出できます。
- (4×N+B+W)÷6
たとえば最有力時間が30時間、最良時間が22時間、最悪時間が80時間の場合、見積もり時間は37時間となります。
工程ごとの工数が算出できたら、PERT図を見てクリティカルパスを見つけましょう。
クリティカルパスでかかる時間が、プロジェクト完了までに必要な時間となります。
手法#2 不確実性コーン
不確実性コーンは、プロジェクトが早期であるほど見積もりと実際とのブレが大きいという特性を利用してバッファを見積もる方法です。
タスクごとの細かい工数を算出できない状況でも、以下の2つをもとにバッファを含めた工数の見積もりをします。
- 開発における現時点でのフェーズ
- 今後のタスクで想定される工数
算出のし方は非常にシンプルで、現時点でのフェーズに応じて、想定される工数に倍率を掛けます。
フェーズ | 倍率 |
---|---|
初期コンセプト | 4倍 |
承認されたプロダクト定義 | 2倍 |
要求の完了 | 1.5倍 |
ユーザーインタフェース設計完了 | 1.25倍 |
詳細設計の完了 | 1.13倍 |
工数の2倍から4倍を掛ける行為に、「そんなにバッファを取って大丈夫…?」と心配になるかもしれません。
しかしこの手法は、「要求定義の段階では、大きなブレが生じやすい」という多くの経験則をもとに編み出されたものです。
根拠ある手法であることを理解して活用することは、あなたのプロジェクトを守る要にもなるでしょう。
レビューをする
適切な工数見積もりの作成には、ここまで解説したステップに加えて「他の人によるレビュー」というステップを踏むことが重要です。
作成した見積もりを、上司やリーダー、他のメンバーにチェックしてもらいましょう。レビューを受けることで以下の項目に気づくことができ、より適切な工数見積もりに繋がります。
- 抜けている項目や余分な作業の有無
- 見積もり工数が短め(リスクの軽視)、あるいは長め(リスクの過大評価)となっていないか
- 工程の流れに誤りがないか
また他のメンバーが作成した工数見積もりのレビューも、実力アップの鍵となります。
どのような考えで作成しているかを知ることで、見積もりに関する知識が増え、より良い工数見積もりのヒントも得られるでしょう。
定期的にチーム共有とスケジュールの見直しをする
工数見積もりは作りっぱなしにせず、適宜見直すことが重要です。それは、以下の理由があるためです。
- プロジェクトの段階が進むにつれ、不確実性は下がる
- スケジュールの進捗状況を反映させる必要がある
- 顧客や上司からは最新の状況を求められるケースが多い
区切りがついたタイミングで、見積もりを見直すことはおすすめです。
例えば1つのフェーズが終わった、技術的に実現可能なめどが立ったといった時点などがよいでしょう。
また、工程見積もりは定期的にチームメンバーと共有しましょう。
スケジュールの可視化はもちろん、チームメンバーからより良いアイデアが出ることで、開発の効率化や見積もり精度の向上にも役立ちます。モチベーションのアップにもつながるでしょう。
3)完全な正確さよりも、「次につながる」工数見積もりを
ここまで説明した取り組みの実施により、工数見積もりの精度を上げ、ブレを少なくすることは可能です。
しかしどれだけ多くの取り組みを行ったとしても、完璧な見積もりを作ることはできません。
理由は、以下のような事態が起きることも決して少なくないからです。
- 突然の割り込み作業
- 機器のトラブルや、作業者の体調の変化
- 顧客からの追加依頼
このため、工数見積もりに完全な正確さを求めすぎずに、ある程度のブレは生じるものと考え、許容する姿勢も重要です。
また、ブレが生じた原因を分析することは、より良い工数見積もりにつながります。
例えばスキル不足が原因なら、スキルアップへの動機につながるでしょう。
ブレの少ない工数見積もりへの行動を強化することで、以下のメリットをもたらします。
- クライアントや発注者との信頼関係がアップする
- チームワークが良くなり、協働できるチームを作ることが可能
- 自身のスキルや知識を向上できる
工数見積もりは、立てて終わりではありません。分析をしっかり行い、次につなげましょう。
まとめ)正しい方法を学び、適切な工数見積もりの作成につなげよう
ここまでの内容を、まとめてみましょう。
工数見積もりが外れてしまう主な理由
適切な工数見積もりを作成するための取り組み
エンジニア経験が豊富な方でも、感覚だけで正確な工数見積もりを出すことは難しいものです。
また、正しい工数見積もりの算出方法を学び実践することで、顧客や上司、プロジェクトでの信頼を得られます。
経験の浅い方はブレ幅も大きくなりがちですが、見積もりの手法を学ぶことにより確度の高い見積もりを立てることが可能です。
まずはご自身が担当する部分について、実践してみましょう。一つ一つの経験が、必ず実となってあなたの将来のキャリアに役立っていくはずです。