Excel のようなテーブルでリソースを均等に分割する適切な方法を決定するのに苦労しています [終了]

StackOverflow https://stackoverflow.com/questions/8968434

質問

できる限り最善の方法でご説明させていただきますが、ご不明な点がございましたらお気軽にお問い合わせください。

まず、問題を説明してみます。

特定の反復に対するリソース コスト (ポイント) の数を計算する必要があります。そうは言っても、Excel ドキュメントを想像してください。一番左の列には、完了する必要があるリリースまたはプロジェクトのリストが表示されます。一番上の行の列ヘッダーは反復です。

以下の情報があります。個々のリリースに必要なリソースの数はわかっています。ただし、リリースは複数のイテレーションにまたがる可能性があるため、各イテレーションにわたって必要なリソースを公平に分割する方法が必要です。

例えば。リリースは次のイテレーションの 1 日前に開始される場合があるため、そのリリースとイテレーションの組み合わせにはリソースのごく一部のみを割り当てる必要があります。

今まで持っていたものを画像にまとめました。何らかの理由で、適切な金額を正しく計算できません。おそらく私の数学スキルが低いためです。これが皆さんにとって些細なことであることを願っており、あらゆる試みに感謝します。

これは私にとって初めての JavaScript の試みなので、ご提案があればお気軽に投稿してください。

今持っているものは大体これくらいです。

for (var i = 0; i < results.Iterations.length; i++) {
var iteration = results.Iterations[i];
for (var z = 0; z < results.Releases.length; z++) {
    var release = results.Releases[z];
    release[iteration.Name] = release[iteration.Name] || 0;

    if (dates.inRange(iteration.StartDate, release.ReleaseStartDate, release.ReleaseDate) 
    || dates.inRange(iteration.EndDate, release.ReleaseStartDate, release.ReleaseDate))
    {
       var availableReleaseDays = dates.workingDaysBetweenDates(release.ReleaseStartDate, release.ReleaseDate);
       var availableIterationDays = dates.workingDaysBetweenDates(iteration.StartDate, iteration.EndDate);
       var iterations = calculateIterations(release, results.Iterations, dates);
       var resources = Math.round(release.Resources/iterations );

       release[iteration.Name] += resources;
    }

}

Current View

役に立ちましたか?

解決

あなたが求めていると思うことを実行するコードを作成しました。この中にあるよ 要旨.

基本的な考え方は、リリースごとに、その開始から終了までの全稼働日にわたってそのすべてのリソースを分割するというものです。次に、毎日を確認し、その日が反復内にある場合は、それらのリソースをその反復に追加します。それがあなたがやろうとしていることですか?

私の中の元アジャイルコーチは、このアプローチに疑問を感じています。リソース見積もりの​​精度を超える計算精度を必要とするのは、少々長期的な計画を立てすぎているように感じます...しかし、私はそれらの本能を十分に抑えて、使用可能なコードを提供しました。

おそらくこの状況ではやりすぎですが、解決策では私が取り組んでいるライブラリを使用します。 チャートタイム. 。ChartTime を使用すると、日付とタイムボックスの操作と計算を行うことができます。休日や週末をノックアウトする機能があり、その精度は必要ありませんでしたが、問題に対する解決策の例で使用しました。タイムゾーンの精度もありますが、私は使用しませんでした。

ChartTime は CoffeeScript で書かれており、あなたの問題に対する私の解決策も CoffeeScript で書かれています。CoffeeScript は JavaScript のよりクリーンな構文であり、JavaScript にコンパイルされるため、JavaScript から直接 ChartTime ライブラリを使用できます。私は毎週末/夕方に取り組んでいますが、うまくいきます。ドキュメントはかなり充実していますが、まだ完成していません。

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