部分に焦点を当てます。高いレベルでタスクを見積もろうとすると、気が遠くなるだけでなく、合計時間を構成するすべてのものを正確に因数分解できなくなります。
代わりに、合計を推測しようとさえせず (役に立たないだけでなく、実際に個々のタスクの見積もりにバイアスがかかる可能性があります)、座って、タスクを構成するすべてのサブタスクについて考えてみてください。それらが大きすぎると感じたら、さらに小さなサブタスクに分割します。
これが完了したら、各サブタスクに見積もりを出します。それらのいずれかが約 4 時間を超える場合、サブタスクはおそらく十分に分割されていません。これらのサブ見積もりをすべて追加します。これはあなたの見積もりです。
このアプローチを使用すると、タスクを完了するために実際に何が必要かを推論する必要があり、より適切な見積もりを作成できます。
タスクを完了するために必要な明確でない手順についても考えてください。コードを書いている場合、関連する単体テストを書くための時間の見積もりを含めましたか? コードをテストするには?それを文書化するためですか?
時間を数日に換算するときは、実際に頭を下げて仕事に費やす時間について、現実的な予測を使用してください。一般的なコンセンサスは、開発者は 1 日 8 時間の作業で 4 ~ 6 時間の作業を完了することができるということです。これは私の個人的な経験とほぼ一致します。
他のチーム メンバーがいる場合は、Planning Pokerと呼ばれる手法を試すことができます。最も単純なアイデアは、チームの各メンバーに仕事を任せて、それぞれのタスクを個別に見積もることです。それが完了すると、チームは集まり、見積もりを比較して大きな偏差を探します。これは、タスクが十分に明確でない場合、他のメンバーが持っていない関連情報をチームのメンバーが持っている場合、または別のチーム メンバーによって異なる仮定が行われている場合に明らかになる傾向があります。
見積もりを行うときは、仮定に注意し、見積もりの一部としてそれらを文書化してください。x、y、& x とすると、タスク q には n 時間かかるはずです。たとえば、機能をテストするための QA エンジニアが利用できると仮定する、テストのために機能を展開する開発環境が利用できると仮定する、まだ一緒にテストされていない 2 つのサードパーティ フレームワークの互換性を想定する、タスクが依存している機能 z は、特定の日付までに準備ができている...などです。私たちは、無意識のうちに常にこれらの仮定を大量に行っています。それらを文書化することで、それらを認識する必要があり、他の関係者があなたの仮定が正しいことを検証できるようになります。また、見積もりが間違っていることが判明した場合は、その理由を分析するための情報がさらに多くなります。
このすべてのアドバイスに従ったとしても、不正確な見積もりを頻繁に行うことになりますが、私たちの脳は抽象的なタスクに対してひどい見積もりを出すように組み込まれているため、それほど気にする必要はありません。私たちは、タスクのサイズと労力を測定する能力に影響を与える多くの認知バイアスを持っています.
さらに詳しい情報とアドバイスについては、この記事を読むことをお勧めします。
http://blog.muonlab.com/2012/04/12/why-you-suck-at-estimating-a-lesson-in-psychology/