24

Ashによって投稿された「<a href="https://stackoverflow.com/questions/549597/dealing-with-awful-estimates/553200#553200">ひどい見積もりに対処する」に答えながら、私が学んだいくつかのヒントを共有しました。弱い見積もりを見つけるために個人的に使用します。しかし、私はもっとたくさんあるに違いないと確信しています!

サードパーティ (同僚、ビジネス パートナー、または外部企業) によってまとめられたソフトウェア プロジェクトの見積もりを迅速に評価する必要がある場合、シナリオで使用するヒューリスティックは何ですか?

目の前のタスクに関する詳細な知識がなくても発見できる、弱いソフトウェア推定の明らかな兆候とそれほど明白ではない兆候は何ですか?

4

17 に答える 17

22
  • Wideband Delphiなどのコンセンサス ベースの見積もり (要件の暗黙の範囲を完全に理解するため) を使用するのではなく、1 人の人物が見積もりを行った。
    • 見積もりを行う人が実装を行う人でない場合は特にそうです!! - 私はかつて、要件が与えられる前に 60 日間と見積もられたプロジェクトに取り組んだことがあります。私は幸せなバニーではなかったとだけ言っておきましょう
  • ドキュメンテーションの時間がありません。
  • 立ち上げの時間はありません (学習とチームの規模の点で)。
  • リスクのリストとタイムスケールへの影響はありません。
  • 最新の要件とリスクの観点から、予期しないことに対するバッファーはありません。
于 2009-02-16T13:25:04.083 に答える
19

誰も言っていないので、そうします。明らかな答えは、ソフトウェア スケジュールの見積もりがある場合、それは非現実的な数値の確かな兆候であるということです。はい、ソフトウェアを見積もる方法はたくさんありますが、形や形を問わず正確な方法はありません。通常、締め切りが設定されます。タスクが過大評価されている場合、結果を改善するために余分な時間が費やされます。タスクが過小評価されている場合は、納品を満たすために何かが犠牲になります (テストや機能など)。

この答えは人々が信じたくないものであることはわかっていますが、見積もりは常に推測です。多くの場合、開発者は 1 日の終わりまでにどれだけの成果を上げられるかを予測することさえできません。何が実際に関係しているのかまだわからないことについて、彼らが何ヶ月も何年も先のことを推測することを期待しています。

あなたの質問に対する唯一の実用的な答えは、非現実的な結果をもたらす傾向がなく、あなたの会社での過去の履歴に基づいて推測できるワークシートを使用することです。残念ながら、それは推定器が見逃したタスクを考慮していません。少なくともこれは大まかな数字を与えるかもしれません。

まったく同じシステムの模造品を何度も開発しない限り、これを理解したと思っている人は、自分をだましていることになります。関連する変数が多すぎます。

于 2009-02-16T18:12:52.457 に答える
11

見積もりには、タスクの見積もりプロジェクトの見積もりの​​ 2 種類があります。これらを大きな写真と小さな写真として見ることができます。

プロジェクトの見積もりは必然的に高レベル (粒度は通常、数日以上) であり、次のようなものを含める必要があります。

  • 高レベルのアーキテクチャ。
  • テストの時間。
  • ランプアップ時間;
  • 欠陥プロセス;
  • ドキュメンテーションの時間。
  • 関連するトレーニング;
  • 仮定;
  • 依存関係 (たとえば、チーム B がフェーズ 1 を提供するまで、チーム A は必要なことを実行できない)。
  • クリティカル パス (プロジェクトが遅れるかどうか、およびどれだけ遅れるかを決定する可能性が高いのはどの部分か)。と
  • リスク。

欠けているものが多いほど、見積もりは非現実的 (または危険) になります。

2 番目の種類のタスク見積もりで、通常ははるかに低いレベルです。この種の見積もりの​​場合は、単純にタスクの内訳にする必要があります (たとえば、5 日を超えるタスクはありません)。

これらは上記の項目に対処する傾向はありませんが、まだ行われていない決定に関する仮定 (製品ハードウェアなど) など、関連するものもあります。また、関連する経験、背景知識、またはスキルのためにタスクを実行できる人とできない人を特定することも価値がある場合があります (その人またはそれらの人が過度にコミットする可能性があるため)。

他の投稿では、テスト時間は開発時間と同じかそれを超える必要があると述べています。私はこれに強く反対します。私は、8 時間の開発タスクで 100 時間以上のテスト時間がかかり、80 時間の開発タスクで 2 時間未満のテストになることを見てきました。どちらの場合も、テスト時間はまったく妥当なものでした。両者の間に絶対的な相関関係はありません。せいぜい、接続が緩んでいるだけです。

于 2009-02-16T13:24:50.933 に答える
5

うわー...ツールキットの答えが本当に好きです。

また、プロジェクトが見積もられたときに実際に見積もりを行うよりも、見積もりを行う人が問題を解決する方法の手がかりをはるかに多く持っていることを前提としているため、見積もりにはまったく欠陥があることに同意します。ただし、始める前に、少なくとも山のサイズを見積もる必要があると思います。やろうとする価値があるかどうかは、どんな努力よりも優先されるべきであり、それが見積もりの​​本質であるべきだと考える人もいました.

危険な見積もりの​​指標をさらにいくつか思いつきました。

  • 相互参照なし- 推定値が少なくとも 2 つの異なる方法で検証できない場合、信頼性が低い可能性があります。たとえば、私が最後に行った見積もりでは、作業を小さな機能チャンクに分割し、チームが同様の範囲の機能を実行するのにどれくらいの時間がかかったかを検討することができました. 次に、これらのコストの合計を見て、私が取り組んできた他のプロジェクトと比較して、その範囲がどれほど大きいかを確認できました。それは検証する2つの方法です。
  • 推定器のバックグラウンド- これがコードを書いたことのないハードウェアの専門家によって行われたソフトウェアの推定である場合 - 非常に恐れてください。より微妙 - 見積もり担当者のバックグラウンドがプロジェクトの技術と問題領域に近ければ近いほど、より良い結果が得られます。
  • 詳細- いくつかの異なる投稿でいくつかの異なる方法で述べたように、個々の機能と、各機能を完了するために必要なタスクの両方の詳細を確認するのが好きです。私が目にする見積もりの​​ほとんどは、正式なプレゼンテーションでは詳細を示していませんが、見積もりを行った人に尋ねると、どこかにファイルがあるはずです。ビールとケチャップで汚れた紙ナプキンの裏側でないことを願っています。:)
  • 文書化された仮定- 見積もり担当者は、タスクに関する一連の仮定を作成する必要があります。これらは、できれば正式な書類のどこかに文書化する必要があります。文書化された仮定があまりない短い提案を見ると、私はいつも少し心配になります。十分に検討され、顧客に伝えられなかったか、十分に検討されていなかったかのいずれかです。どちらが悪いかは正直わかりません。仮定も合理的でなければならないことは言うまでもありません。
  • バランスのとれたライフサイクル- ただし、タスクは細分化されていますが、設計、コード、およびテストの比率は? ドキュメンテーション、外部システムとの統合、およびリリース後のサポートはどうですか? 非常に重要な余分なもの (システム管理者、CM の第一人者、管理作業) はどうですか?
  • たるみ- 安っぽさの企業デーモンが来て私をからかうのは確かですが、スケジュールとコストには多少のたるみが必要です。見積もりが野心的で、経験豊富な目に積極的に見える場合は、低すぎる可能性があります。見積もりが高すぎることはほとんどありません。
于 2009-03-11T19:02:40.807 に答える
3

良い経験則の 1 つは、テスト時間が開発時間とほぼ同じかどうかを確認することです。それは見積もりの​​良い兆候です。

彼らが見積もりの​​内訳をあなたに与えることができないなら、それは悪いことです. 通常、忘れられている可能性のある多くのささいなことの兆候. 完全な元の内訳を提供する必要はなく、次のような内訳のみを提供する必要があります。

  • 要件
  • 発達
  • テスト
  • パッケージ化と展開

標準テンプレートを使用して見積もりを計算する必要があります。すべての列に番号を入力する必要はありませんが、考えられるすべてのタスクを一覧表示するためにテンプレートを使用します。そうすれば、テンプレートを使用して、見積もりを作成するときに人々の心を揺さぶることができます。

見積もりが過度に正確である場合、たとえば 0.25 時間刻みの場合、それは私にとって悪臭です。

要件の取得、テスト、展開、運用グループへの引き継ぎなど、不足しているものがある場合は? それらのいずれかが欠けている場合、それは戻ってきてあなたを噛むようなものです.

編集:注意すべきもう 1 つのことは、古い「90% 完了」タスクです。進行状況の更新後に、タスクが「90% 完了」としてリストされ、進行状況が更新されます。それは良いことではありません!

HTH

乾杯

于 2009-02-16T13:15:58.583 に答える
2
  • 見積もりの​​編集者は利用可能であり、他の上級プロジェクトメンバーとそれについて話し合う用意がありますか?そうでない場合、それはしばしば懸念事項です。

  • 開発スタッフの経験とスキルがわかる前に、見積もりが顧客に送信されましたか。2点推定が役立つ場合がありますが、ある程度しか役立ちません。

  • 見積もりを確認する機会を得る前に、特定の日付で説明されているすべての機能を提供することにコミットしていると言われます。

(ちなみに、私の質問に答えてくれてありがとう。)

于 2009-02-16T13:55:07.007 に答える
2

私はダンクに完全に同意します。悪い見積もりの​​最初の兆候は、大規模で詳細な事前スケジュールの単なる存在です。見積もりはまさにそれであり、概算です。そうでない場合は、正確な模倣と呼びます。したがって、プロジェクトの管理に単独で使用しないでください。

考慮すべき最も重要な点は、見積もりの​​正確さではなく、一貫性です。サードパーティがあなたのために見積もりを行っていた場合は、彼らの成功または失敗の履歴を確認し、過去のクライアントと話し、彼らの信頼性を判断するように依頼します。

とはいえ、アジャイルの観点から、プロジェクト中に一貫性のある見積もりを取得しようとする方法のいくつかは次のとおりです。

  • 時間ベース(理想的な日数)ではなく、相対的なサイズ設定標準(S、M、L、XL)を使用します。
  • 時間ではなく複雑さに焦点を当てる
  • 一人の見積もりではなく、常にグループの見積もりを使用してください
  • プロジェクト全体、通常は各スプリントの開始時に頻繁に見積もりを収集します
  • ストーリーの複雑さを判断する際に、以前のスプリントからのフィードバックを使用する
  • 相対的なサイジングに意味を与えるためのトラック速度
  • スラッシングを調査/理解するための頻繁かつ初期のストーリーの振り返り

これらの見積もり方法を使用している企業と取引している場合は、一貫性のある、したがってより良い結果が得られる可能性があります。

于 2009-03-15T10:58:01.200 に答える
1

目の前のタスクに関する詳細な知識がなくても発見できる、弱いソフトウェア推定の明らかな兆候とそうでない兆候は何ですか?

目の前のタスクについてあまり詳細な知識がない状態で与えられる見積もりは、一般的には適切ではありません。

おそらく、一般的なアプローチは、要件の項目が見積もりの​​項目に対応していることを確認することです。相対サイズをすばやく確認したい場合は、100,000 語の要約に 100 語の見積もりが与えられている場合、それが正しい可能性はありません。

また、(他の人が言ったように)分析、コーディング、デバッグ、テスト、統合、不測の事態などが言及されていることを確認してください。そこに何らかの思いが込められていることを示しています。

さまざまな段階で成功と承認の基準があることは、優れた兆候です。少なくとも 10% 完了している定義済みのポイントがあれば、見積もりが間違っていても、早い段階でわかり、適応するチャンスがあります。「終了」までチェックポイントがなければ、その日が来るまで遅れていることに気付かないかもしれません。

于 2009-02-16T13:34:14.563 に答える
1

3、6 、または 12 か月 (基本的に任意の概数) の形式の見積もりは、推測の悪臭を放ちます。通常、予想よりも大きなラウンド数を選択すると、四半期、半年など、通常の容疑者となります。私は、実際の開発イテレーション (サイズに関係なく) の観点から見積もることを好みます。

于 2009-02-16T13:17:25.773 に答える
1

見積もりを出す人は、仕事をしている人とどのくらい親しみがありますか?

チームが非常に異なるバックグラウンドを持つ個人で構成されている場合でも、一般的な人が仕事をしているという見積もりをよく見てきました。ほとんどの場合、タスクと専門分野が完全に一致せず、GUI またはデータベースのいずれかを実行することになる C++ サーバーサイド プログラマーを取得します... 時々、チームのマネージャーはチーム メンバーの強みをあまり評価しないことがあります。彼のチームが前のプロジェクトで多忙なため、彼が自分で見積もりを出すように頼まれた場合、問題の仕事は実際にはチームの一部にしか適していないことがわかります (やる気がない、スキルが不足しているなど)。

于 2009-03-14T15:21:39.517 に答える
0

見積もりを評価するもう1つの便利な方法は、同様の種類の以前のプロジェクトに費やされた実際の作業と比較することです。比較に最適なデータは、組織が行った以前のプロジェクトの作業データです。組織の履歴データがない場合は、業界全体のベンチマークに対して見積もりをベンチマークすることができます。

また、見積もりが単一の絶対数(たとえば、180日)として提示されている場合、それは良い兆候ではありません。単一の絶対数は、指定されたデータに対して100%の確率でタスクが終了するという見積もりを示します。範囲(たとえば、130〜180日)で提示された見積もりは、タスクを完了できる範囲を示します。

私が上で書いたことの多くは、それを本に帰するものです:

ソフトウェアの見積もり:スティーブマコネルによるブラックアートの謎を解き明かす

于 2009-02-16T14:09:32.043 に答える
0

適切な見積もりには、プロジェクトのすべてのフェーズを含む、適切な内訳があります。

ほぼ確実に、ビジネスにとって都合の良い日に終了することはありません。

これには、さまざまな種類のリスクが含まれます。

暗黙的(10〜12か月)または大きな単位(約4分の4)を使用して、信頼区間の観点から提示されます。

それは、プロジェクトを遂行する責任のある誰か、できれば複数のそのような人によって作られます。

開始時に遅延がある場合は、終了時に遅延が発生します(開始から10〜12か月、または今開始する場合は2010年第1四半期頃、プロジェクトがまだ開始されていない2010年1月のようなものではありません)。

仮定と依存関係が明確かつ目立つようにリストされます。

編集:これの一部は、プロジェクトの段階によって異なります。特に信頼区間が割り当てられていない場合、早期の正確な見積もりは警告サインです。それはプロクラステスの見積もりの​​悪臭です。

また、他の開発方法論にも注意してください。タイムボックス化されたプロジェクトは、厳密で任意のスケジュールを持つことができますが、機能セットは柔軟になります。

于 2009-02-16T15:03:25.987 に答える
0

「4 ~ 6 週間」、より短いタスクへの分割を伴わない場合...

于 2009-03-15T11:21:40.053 に答える
0

人員に対して見積もりをチェックします。非常に正確なヒューリスティックではありませんが、大規模な作業に 1 人または 2 人の開発者が割り当てられている場合、そのタスクが正しく見積もられていないことは明らかです

于 2009-02-16T14:27:48.880 に答える
0

次のいずれか:

  • これは 1 つの大きなプロジェクトであり、短い高レベルの戦略は説明されていません。
  • プロジェクトで達成したいことについて、明確で短く簡潔なビジョンがない
  • プロジェクトは、徐々に提供されるビジネス価値を中心に構成されていません
  • チームは、大きなプロジェクトの「正確な」見積もりを出そうとしていますが、長い分析フェーズに入る (または完了した) 場合は? (変更が発生し、通常は、さらに大きな努力をしないと簡単に定量化できない方法で、これらの見積もりに影響を与えます)
  • プロジェクト全体の「詳細な」見積もりがあります(以前に関連)
  • 第一段階の詳細な見積もりがないか、それらに何か問題があります。
于 2009-03-10T06:11:26.003 に答える