質問

特定のタスクにかかる時間を見積もることは、ソフトウェア開発で最も難しい部分の1つと思われます。私の現在のショップでは、反復の開始時にタスクを数時間で見積もりますが、タスクが完了すると、将来の見積もりに役立てるためにそれを使用しません。

過去の見積もりから収集した情報をどのように使用して、将来の見積もりを改善しますか?

役に立ちましたか?

解決

私がこれまでに現実的にスケジューリングするために見た中で最も興味深いアプローチの1つは、証拠ベースのスケジューリング。FogCreekFogBugz 6.0リリースの一部です。概要といくつかの例については、上記にリンクされているJoelのブログ投稿を参照してください。

他のヒント

推定値が爆発した場合、それが単なるランダムなものか(環境が壊れた、トリッキーなバグなど)、特定できなかったものがあるかどうかを特定します。

エシメイトが大きすぎる場合は、時間がかかりそうだと思ったものを特定し、そうしなかった理由を解明します。

これを十分に行うことで、開発者が見積もりを行うことができれば幸いです。

たとえば、コントローラーのテストの作成には時間がかかると考えている開発者が、想像よりも時間がかからない場合、同様のスコープのコントローラーに対して行う次の見積もりは、それを念頭に置くことができます。

コンセンサスが得られるまで、チームメートと繰り返し見積もります。もちろん間違いを犯しますが、「速度」を計算しません。明確に要素を考慮しますが、むしろ、新しい推定討論で収集した経験を使用します。

これまでのところ、時間を見積もることで得られることがわかりました。他のタスク、予期せぬ状況またはプロジェクトの影響との干渉は、必然的にあなたの時間枠を変更します、そして、あなたが絶えず再評価するならば、あなたが開発することができたとき、管理に多くの時間を浪費するでしょう。

したがって、ここでは、時間に対するソリューションの経験に基づいて初期推定を行います(モデルを使用せず、環境で十分に機能するモデルは見つかりませんでした)が、KPIをまた、この期限に間に合うことをビジネスに保証するものでもありません。ここでの開発アプローチは大部分がリアクティブであり、ビジネスの要件を非常にうまく満たすようです。

推定がオフの場合、ほとんど常に露骨な原因があり、それが教訓につながります。メモリからの最近のもの:

  • ユーザーインターフェイスは、存在しない.NET機能(新しい行を挿入し、GridViewでインラインで編集する機能)を想定していました。学んだ教訓は、推定する前に選択したクラスの機能を検証することです。この間違いには1週間かかりました。

  • ftpプロセスは、FtpWebRequestが銀行の安全なftpサーバーと通信できると想定しました。 ftpサーバーが現在のディレクトリのバックスラッシュ以外を返す場合、このクラスには既知のバグがあることが判明しました。学んだ教訓は、「チュートリアル」や「例」だけではなく、クラス名を使って「バグ」や「問題」をグーグルで調べ、「問題」が潜んでいないことを確認することです。この間違いは3日間かかりました。

これらのレッスンでは、プロジェクトの推定と開発の「チェックリスト」に進みます。文書であるため、次のプロジェクトで忘れられることはありません

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top