たもろぐ

組み込みエンジニアが、エンジニアのキャリアやサイドプロジェクトについて考えるブログです。

見積もり甘くてデスマーチ?正確な作業見積のメリットとコツの話 2/2

こんにちは、たもです。

 

前回、正確な見積もりのメリットと、そのやり方について説明しました。

今回は、

  • 大きなプロジェクトを正確に見積もる方法
  • 見積もりの結果を上司や顧客にどう伝えるか

といったことについて書いていきます。

 

大きなプロジェクトでの見積もり

プロジェクトが大きければ、あたりまえですが正確な見積もりが難しくなります。

前回、

  • 作業を1時間以内で終わるよう分割し、その後作業の数を数えて見積もれば正確な見積もりができる!

といったものの、大きなプロジェクトに対していきなりそれをやるのは現実的じゃないです。

というのも、プロジェクトが始まる前からすべての作業が分かっていることは稀ですし、後から作業内容が変わることも多々あるためです。

こういう場合には、どうすればよいでしょうか?

 

一案として、ステージ別見積もりがあります。

ステージ別見積もりは、以下の3つのステージ毎に見積もりをする方法です。

  • 初期:プロジェクト計画時
  • 中期:計画立案時~作業初期
  • 後期:作業中期~リリース/納品時

 

それぞれのステージにおける見積もりは、以下のようにやります。

  • 初期の見積もり:
    今までで似たような規模のプロジェクトにかかった時間や、業界一般で実際にかかった時間データを使い、プロジェクトにかかる時間(金額)を概算します。

  • 中期の見積もり:
    現プロジェクトの今までの進捗から、これからの作業にかかる時間を見積もります。

  • 後期の見積もり:
    より細かい作業単位での見積もりをします。前回紹介した、「1時間以内の作業に分割して見積もる」といった手法が、このステージで使えます。

 

小学生の夏休みの宿題を例にしてみます。宿題は漢字ドリル、算数ドリル、自由研究の3科目あるとしましょう。

 

まず夏休みの頭で、宿題の計画を立てるとします。初期の見積もりですね。

2年生以上なら、去年の実績から、

  • 1日あたり各科目30分ずつくらい宿題を進めれば終わる
  • 自由研究は、丸2日くらい集中してやれば終わる

といった感覚(デ-タ)があると思います。これをもとに、ざっくり今年の計画を立てます。

 

次に中期の見積もりです。夏休み中盤あたりで、予定と実績を比較して、見積もりを修正していきます。

たとえば、計画に対して算数ドリルが遅れ気味なら、1日あたりに算数ドリルをする時間を増やす、またはどこか1日集中して遅れを取り戻す日を設けるなど、今後の1日あたりの負荷見積もりを訂正します。

 

最後に後期の見積もり。夏休みも残り1週間くらいとなったところで、確実に宿題を終わらせるために、1日毎に何をするかを詳細に計画し、宿題が終わるかを見積もります。

たとえば自由研究がまだ終わってなければ、夏休みラスト2日は自由研究に充て、それまでにドリル系は各科目1日1時間ずつやって終わらせる、といった詳細な見積もりを立てることができます。

 

以上、例も交えて3つのステージに分けて見積もる方法を紹介しました。

もちろんもっとステージを細かく分けてもいいですし、まずは後期のステップだけ見積もる、でもいいと思います。

大事なのは、数えられるもの(データ)から、先のことを見積もるクセをつけることです。できることから始めましょう。

 

 

見積もりの結果の伝え方、交渉方法

見積もりは、見積もるだけで終わりません。

あなたが見積もりをするのは、それを依頼した人がいるからです。

つまり、見積もり結果をお客さんや上司に言う場面が必ずあります。

ここで、場合によっては見積もりに対して文句を言われることもあるのではないでしょうか。

 

ここでは、見積もりが顧客や上司からの期待に合わなかった場合の交渉方法について説明します。

例として、SEであるあなたが、顧客からスマホアプリの開発を受けたとしましょう。

そこで、以下のようなやり取りが発生したとします。

  • あなた「見積ったかんじ、今回の案件だと3ヵ月くらいかかります」
  • 顧客「それじゃ遅い。2ヵ月でやってほしい!」

このとき、あなたならどう答えるでしょうか?ちょっと考えてみてください。

 

 

 

イメージできました?この場合、以下の3通りのやり方があるかと思います。

  1. 開発する機能等を減らす
  2. 納期を延ばしてもらう
  3. デスマーチ不可避。現実は非情である

 

それぞれ説明しましょう。

1個目の機能制限は、自分もよく使う方法です。

見積もりを立てた段階で、どの機能にどれだけ時間がかかるか、明確になっているはずです。

機能のリストとそれぞれにかかる時間(工数)を顧客と見ながら、どの機能を残す/削るの交渉をしていきましょう。

1個目の手法は、顧客が質よりも納期を重視する場合に有効です。

個人的には、このパターンに持ち込むことが多いですね。

 

2個目の納期延長は、一見難しいように見えます。

しかし、2ヵ月でできる範囲を説明し、すべての機能を無理に2ヵ月で納めようとすることのリスクを説明すれば、納期を延ばしてくれることもあります。

この場合も、見積もり時に用意した機能と工数のリストを見ながらやることで、交渉の成功率を上げることができます。

2個目の手法は、顧客が納期より質を重視する場合に有効です。

 

3個目のデスマーチですが、言うまでもなくこれを選ばないように気を付けましょう。

デスマーチがクセになってしまうと、健康や家庭、友人、趣味など、色んなものを犠牲にすることになります。思考停止によるデスマーチ、ダメ、絶対。

 

まとめ

以上、大きなプロジェクトの見積もり方法と、見積もり結果を顧客や上司に伝える方法について説明しました。

まとめとしては、

  • 大きなプロジェクトは、初期、中期、後期それぞれのステージで見積もる
  • 見積もり後の納期/金額交渉は、相手が「納期/金額重視」か「質重視」かを見極め、機能を絞るなり、納期/金額に余裕を持たせてもらうよう交渉する

です。

 

エンジニアに限らず、キツめの納期に翻弄される人は多いかと思います。

見積もりと交渉のやり方を工夫すれば、日々の仕事に多少の余裕を作ることもできますので、できる範囲で試していただければと思います。

 

偉そうに書き連ねましたが、自分も正確な見積もりや交渉は勉強中の身で、ようやく成功ケースがでてきたかな、という程度です。

「自分はこうやってるよ」とか「もっといい方法があるよー」という方は、教えていただければうれしいです。

 

それでは。

 

参考文献