I've worked up code that does what I think you are asking. It's in this gist.
The basic idea is that for each release, I divided all of it's resources over all of the work days between its start and end. I then walk through each day and if that day is in an iteration, I add those resources to that iteration. Is that what you are trying to do?
The former Agile Coach in me wants to question the approach. It feels like a bit too much long range planning with a level of precision in the calculations that exceeds the resource estimate accuracy... but I've held back those instincts enough to give you usable code.
It's probably overkill for this situation but the solution uses a library I'm working on called ChartTime. ChartTime allows you to do date and timebox manipulation and calculations. It has the ability to knockout holidays and weekends, which I've used in my example solution to your problem even though that precision wasn't needed. It also has timezone precision, which I did not use.
ChartTime is written in CoffeeScript and my solution to your problem is also written in CoffeeScript. CoffeeScript is just a cleaner syntax for JavaScript and it compiles to JavaScript so you can use the ChartTime library directly from JavaScript. I'm working on it every weekend/evening and it works well. The docs are pretty good but not complete yet.
发布评论
评论(1)
我已经编写了代码,可以实现我认为您所要求的功能。就在这个要点中。
基本思想是,对于每个版本,我将其所有资源分配到其开始和结束之间的所有工作日。然后我会过一遍每一天,如果那一天在迭代中,我会将这些资源添加到该迭代中。这就是你想做的吗?
我身上的前敏捷教练想要质疑这种方法。感觉有点太多的长期规划,计算精度超出了资源估计的准确性......但我已经抑制了这些本能,足以为您提供可用的代码。
对于这种情况来说,这可能有点过分了,但解决方案使用了我正在开发的一个名为 ChartTime 的库。 ChartTime 允许您进行日期和时间框操作和计算。它能够消除假期和周末,我在解决您的问题的示例解决方案中使用了它,尽管不需要这种精度。它还具有时区精度,但我没有使用。
ChartTime 是用 CoffeeScript 编写的,我对您问题的解决方案也是用 CoffeeScript 编写的。 CoffeeScript 只是一种更简洁的 JavaScript 语法,它会编译为 JavaScript,因此您可以直接从 JavaScript 使用 ChartTime 库。我每个周末/晚上都在做这件事,效果很好。这些文档非常好,但尚未完成。
I've worked up code that does what I think you are asking. It's in this gist.
The basic idea is that for each release, I divided all of it's resources over all of the work days between its start and end. I then walk through each day and if that day is in an iteration, I add those resources to that iteration. Is that what you are trying to do?
The former Agile Coach in me wants to question the approach. It feels like a bit too much long range planning with a level of precision in the calculations that exceeds the resource estimate accuracy... but I've held back those instincts enough to give you usable code.
It's probably overkill for this situation but the solution uses a library I'm working on called ChartTime. ChartTime allows you to do date and timebox manipulation and calculations. It has the ability to knockout holidays and weekends, which I've used in my example solution to your problem even though that precision wasn't needed. It also has timezone precision, which I did not use.
ChartTime is written in CoffeeScript and my solution to your problem is also written in CoffeeScript. CoffeeScript is just a cleaner syntax for JavaScript and it compiles to JavaScript so you can use the ChartTime library directly from JavaScript. I'm working on it every weekend/evening and it works well. The docs are pretty good but not complete yet.