バックグラウンド
現在、私のチームは、主要な書き換えを出荷するための「バグ修正と研磨」フェーズにあります。いくつかのマイルストーンに対して予定されている、修正すべきバグの山がまだたくさんあります。各マイルストーンのバグを修正するために必要なエンジニアリング作業の見積もりを出すように依頼されました。
以前のマイルストーンでは、次のプロセスに従いました。
- コードのその領域について最もよく知っている人にバグを割り当てます。バグを修正する可能性が高い人です。
- 各人に割り当てられたバグを調べてもらい、バグを修正するのにかかると思われる時間を 1 時間単位で見積もってもらいます。バグの修正に 1 日か 2 日以上かかる可能性があると思われる場合は、そのバグを可能性の高いサブタスクに分割し、それらを見積もります。
- マイルストーンごとに各人に割り当てられた作業量を合計し、作業量が大幅に異なる場合はバランスを取ってください。
- 各マイルストーンの各人の合計に「パディング係数」を掛けて、過度に楽観的な見積もりを考慮します (1.5 を使用しています)。
- 特定のリリースのチーム メンバー全体で最大の合計を取り、それをチームが既存のバグをクローズするのにかかる時間にします。
- 特定のマイルストーンに到達するまでに作成されると予想されるバグの数を見積もり、これらのバグのそれぞれを解決するのにかかる平均時間を見積もります。これを、各リリースの既存のバグをクローズする時間に追加します。これは、必要な作業量の最終的な数値であり、そのマイルストーンを確実に出荷する日付として提供されます.
これはかなり正確ですが (これまでの 3 つのマイルストーンではほぼ正確に達成できました)、かなり時間がかかります。
現在の問題
今後のマイルストーンのエンジニアリング時間の見積もりを提供するよう求められましたが、時間がかかりすぎるため、上記のプロセスを使用しないように求められました. 代わりに、チームの技術リーダーとして、確実性の低い見積もりを提供するように求められました。
私の主な見積もりの経験は、上記の方法のいくつかのバリエーションを使用したものです(長年のフリーランスのバックグラウンドから)。大きなタスクで「腰から撃つ」と、気が遠くなる傾向があることがわかりました。よくわからないコードの領域のバグを修正するのにかかる時間を見積もると、さらに悪化するのではないかと思います。
物事を細かいタスクに分解して見積もることなく、迅速に見積もるのに成功したヒント、トリック、またはテクニックは何ですか?
オプションではないもの:
- 見積もりを出していない - 私はこれを試したが、飛ばなかった:)
- とてつもなく広い数値と信頼区間を選ぶ - 私はこれを検討しましたが、うまくいくとは思いません。
- エビデンスベースのスケジューリング - JIRA を使用していますが、これにはエビデンスベースのスケジューリング ツールが書かれていません。現在、FogBugz に移行することはできません。 JIRA、私たちは喜んでそれを支払います)。