2

私は、FogBugz で使用されているEvidence Based Scheduling (EBS) アプローチに頭を悩ませようとしており、Evidence Based Scheduling を何度か読みました。

私が理解しているのは、一般的な考え方、モンテカルロが使用される理由などです...

また、過去のストーリーのファクターを使用して推定の外挿を計算することもできます。ここまでは順調ですね。

質問1

私が持っている質問は、次のとおりです。複数のストーリーの確率分布を計算するにはどうすればよいですか? つまり、5 話がいつ終わるのか知りたいのです。

10% の値、20% の値、...、そして最後に 100% の値を合計してもよろしいですか?

例を挙げると:

  • ストーリー 1 は 4 時間と見積もられており、その確率分布は、0% が 3 時間、25% が 4 時間、50% が 4 時間、75% が 5 時間、100% が 9 時間であることを知っています。
  • ストーリー 2 は 6 時間と見積もられており、その確率分布は、0% が 4 時間、25% が 6 時間、50% が 6 時間、75% が 7 時間、100% が 13 時間であることを知っています。

ストーリー 1 と 2 の確率分布を知りたい場合は、それらを追加するだけでよいので、次のようになります。

  • 0%: 7 時間
  • 25%: 10時間
  • 50%: 10時間
  • 75%: 12時間
  • 100%: 22 時間

それだけでいいですか?それとももっと複雑ですか?

質問2

私のもう1つの質問は、複数のユーザーが関与している場合に複数のタスクの終了時間を計算する方法ですが、どのユーザーがどのストーリーで作業するかを事前に知りません。その割り当てを知っている限り、それは非常に簡単です。各ユーザーのストーリーの合計を計算し、最新のストーリーを全体の時間として取得します (1 つが 3 週間後に終了し、もう 1 つが 5 週間後に終了した場合、プロジェクト全体は5週間かかります)。

しかし、事前にわからず、すべてのユーザーがすべてのストーリーに取り組めるわけではない場合はどうすればよいでしょうか? たとえば、フロントエンド、バックエンドなどのコンピテンシーをストーリーに配置し、コンピテンシーをユーザーに割り当てたので、フロントエンド、バックエンド、および ... の開発者がいる可能性があります。すぐ。

もちろん、複数のコンピテンシーを必要とするストーリーもあり、その見返りとして複数のユーザーによる作業が必要になります。しかし、彼らはさまざまなことに取り組んでおり、タスクを完了するのにさまざまな時間を必要とします。そして、これもまた確率分布に依存します: もし 1 人がランを持っている場合、彼は持っていない場合よりも早く終了する可能性があります。これは、彼が次に何をするか、誰を支援するかなどに影響を与える可能性があります...

これを計算する方法はありますか?

4

2 に答える 2

1

1.

確率分布の対応するレベルの値を合計することはできません。それは、タスクの完了時間の間の完全な相関関係を根拠なく仮定します。代わりにできることがあります。

最悪の場合、2 つのタスクを完了するのにかかる時間は、各タスクを完了するのにかかる時間の合計です。ここまでは順調ですね。ソフトウェア開発における最悪の場合の見積もりは、おそらく問題ありません。時間の合計は一般的に問題になるとは思いません。

ここで、2 つのタスクの時間が、互いに独立した確率分布によって支配されているかどうかを検討する必要があります。つまり、1 つのタスクが完了するまでの時間について何かわかっている場合、他のタスクが完了するまでの時間についても何かがわかるのでしょうか? わからない場合、適切に安全な仮定を立てることができますか?

もちろん、それは誤った推定のコストに依存しますが、分布が実際に独立していると仮定するのは十分安全かもしれません. そうすれば、少なくとも 1 つのタスクを完了したからといって、他のタスクについて誤った希望を抱くことは通常ありません。したがって、答えは、1 つのタスクがそれぞれ独自の確率で M 個の結果に分析され、もう 1 つのタスクがそれぞれ独自の確率で N 個の結果に分析される場合、M*N 個の結果を形成し、(i,j ) 結果 最初のタスクの i 番目の結果の確率 (密度) と 2 番目のタスクの j 番目の結果の確率 (密度) の積。

申し訳ありませんが、理解できないため、例を変更します。最初のタスクが代わりにこの分布を持つとしましょう。ここで、X は 0% から 100% の間の一様分布の連続確率変数です。

3 hours, if       X <= 20% (with probability density 20%);
4 hours, if 20% < X <= 60% (with probability density 40%);
5 hours, if 60% < X <= 80% (with probability density 20%);
9 hours, if 80% < X        (with probability density 20%).

2 番目のタスクの分布は次のとおりです。ここで、Y は、X に関係なく、0% から 100% の間の一様分布の連続確率変数です。

 4 hours, if       Y <= 20% (with probability density 20%);
 6 hours, if 20% < Y <= 60% (with probability density 40%);
 7 hours, if 60% < Y <= 80% (with probability density 20%);
13 hours, if 80% < Y        (with probability density 20%).

Now we calculate as follows:

               4@20%   6@ 40%   7@20%   13@20%
              ------ -------- ------- --------
     3@20% | 3+4@ 4% 3+6@  8% 3+7@ 4% 3+13@ 4%
     4@40% | 4+4@ 8% 4+6@ 16% 4+7@ 8% 4+13@ 8%
     5@20% | 5+4@ 4% 5+6@  8% 5+7@ 4% 5+13@ 4%
     9@20% | 9+4@ 4% 9+6@  8% 9+7@ 4% 9+13@ 4%

2 つのタスクの時間の合計の確率分布と密度は次のとおりです。ここで、Z は 0% から 100% までの一様分布の連続確率変数です。

      7 hours, if       Z <=  4% (with probability density  4%);
      8 hours, if  4% < Z <= 12% (with probability density  8%);
      9 hours, if 12% < Z <= 24% (with probability density 12%);
     10 hours, if 24% < Z <= 44% (with probability density 20%);
     11 hours, if 44% < Z <= 60% (with probability density 16%);
     12 hours, if 60% < Z <= 64% (with probability density  4%);
     13 hours, if 64% < Z <= 68% (with probability density  4%);
     15 hours, if 68% < Z <= 76% (with probability density  8%);
     16 hours, if 76% < Z <= 84% (with probability density  8%);
     17 hours, if 84% < Z <= 92% (with probability density  8%);
     18 hours, if 92% < Z <= 96% (with probability density  4%);
     22 hours, if 96% < Z        (with probability density  4%).

これらはすべて面倒かもしれませんが、論理的であり、自動化するのは難しくありません。

2.

おっしゃるとおり、シナリオの扇形があります。大まかに言うと、世界が存在する前に誰もまだ何もしていなかったという最初の確信から始まります! その後、質問 1 を自動化した後、分析にさまざまな戦略を採用できます。たぶん、あなたの想像力は、この目的のために私のものと同じくらい優れています. とにかく、ここに私が提案できるものがあります。

what-if シナリオをインタラクティブに調べることができます。

発生する可能性のあるすべてのことを計算して合計しようとすることができます。これまで見てきたように、この種の分析は小さなケースで可能です。想像できるように、フライト ナビゲーション システムの構築など、大規模なケースでは扱いにくくなります。

最も可能性の高いシナリオと、おそらくその周りの限られた程度の変動を分析できます。

おそらく、あなたは自分のリスクをコントロールすることに関心を持つでしょう。したがって、ニーズと利便性に応じて、次の 1 つまたは複数を分析することを検討できます。それらはすべて、残りの部分とは少し異なります: 許容できない結果の可能性、または許容できない程度の不確実性が存在する可能性、または見積もり不確実性がどの程度存在するか、または予想される結果 (つまり、同じ状況に際限なく繰り返された場合の平均的な結果) の推定。

于 2013-03-14T06:02:26.147 に答える
1

問題をグーグルで調べなければ、「未知の開発者の能力」がおそらく問題を NP 困難な最適化問題のビンに押し込むと思います。注目すべきアルゴリズムは、シミュレーテッド アニーリングと遺伝的アルゴリズムです (シミュレーテッド アニーリングは Wintek の電子 CAD 自動配置プログラムで使用されていました (私は開発チームに所属していました))。

于 2013-03-15T22:06:05.827 に答える