大まかな要件に基づく信頼できる見積もりなどは事実上ありません。実際、私の経験では、1 日以上と推定される単一のタスクは、そのタスクをさらにサブタスクに分割する必要があることを強く示しています。
1週間の見積もりでさえ、通常はうまくいきません。私の経験では、詳細なしで 1 週間と見積もられたほとんどのタスクは、最終的に 2 ~ 3 週間かかり、大規模なプロジェクトでは問題が悪化するだけです。
それは主に心理的なものです。私たちは、プログラマー/デザイナー/アーキテクトとして楽観主義者であることを知っています。長く漠然としたターゲットを自分自身に与えると、実際にはそうでなくても、ゲームをリードしているように感じるのは信じられないほど簡単です. あと4週間?そして、先週機能していた壊れた検索機能を修正するだけでいいのですか? 簡単だ!それはさておき、楽しい Ajax フェード エフェクトに取り組みましょう。
そうは言っても、封筒の裏側の見積もりに私がよく使用する特定のヒューリスティックがあります。顧客やマネージャーが常に尋ねる質問は、「では、やりたいとしましょう<some_vague_project>
。どのくらいの時間がかかると思いますか?」というものです。
最初に、プロジェクトの特定の側面を特定します。つまり、次のとおりです。
- 期待される寿命 - 一度だけ実行、一時的、または永続的?
- プロジェクトの独創性 - 以前にそのようなことをしたことがありますか?
- 必要なドメイン知識と既知のドメイン知識のレベル - 仕様には学習曲線がありますか?
- ボラティリティ - スコープ/所有権はどの程度明確で、変更される可能性はどの程度ですか?
- 影響 - 重要なビジネス機能をサポート/置き換えますか?
- UI の複雑さ - 5 画面未満、20 未満、またはそれ以上?
- 顧客対応ですか?(もしそうなら、無数の改訂を経る必要があります)
- 他のシステムと相互運用する必要がありますか?
次に、通常、これらのそれぞれに「ポイント」を割り当てます(これは「システム」ではないことに注意してください。これはすべて頭の中で発生し、通常は微調整が必要です)。おおよそのプロジェクト サイズのポイントを集計します。
- ノーポイント:1~2日(台本)
- 1点:1~2週間
- 2点:2~4週間
- 3点:1~2ヶ月
- 4点:3~6ヶ月
- 5点:6~12ヶ月
- 6点以上:手がかりがない。
ここで私が行っていることに注意してください。複雑さとともに、多かれ少なかれ指数関数的な成長率があります。アプリが顧客向けであるなどの新しい問題を追加すると、プロジェクトに少し余分な時間が追加されるだけでなく、時間が2 倍または3 倍になります。言語、法律、ルックアンドフィールなどを精査します。重要なビジネス機能を置き換える場合も同じ考えです。あらゆる不測の事態に備えて、すべてのコンポーネントを防御的に記述する必要があります。
繰り返しますが、これは実際のプロジェクト計画では実用的ではなく、仕様全体を最大 1 ~ 2 日のタスクに分割せずにプロジェクトのタイムラインに実際にコミットすることはありません。これは、顧客/マネージャーが頭の中で計算するように効果的に要求し、「わからない」という答えを受け入れたくない場合に、すぐに使える簡単な質問に答えるためだけのものです.
繰り返しますが、全員が私の話を聞いていることを確認 するために、この方法を使用して実際のプロジェクトの見積もりを作成しないでください。 せいぜい、プロジェクトの最小基準となる「規模」を考え出すのに役立ちます。これは、取締役会で、点線に署名せずに期待に似たものを設定するために言うことができるものです。