Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我很难确定在类似excel的表中均匀分配资源的正确方法_Javascript_Math_Logic_Scrum_Rally - Fatal编程技术网

Javascript 我很难确定在类似excel的表中均匀分配资源的正确方法

Javascript 我很难确定在类似excel的表中均匀分配资源的正确方法,javascript,math,logic,scrum,rally,Javascript,Math,Logic,Scrum,Rally,我将尽力以最好的方式解释这一点,但请随时澄清 首先,我将尝试解释这个问题 我需要计算任何给定迭代的资源成本(点数)。也就是说,想象一个excel文档。最左边的一列列出了需要完成的发布或项目。在顶行,列标题是迭代 我有以下信息。我有每个版本所需的资源数量。但是,因为一个发布可以跨越多个迭代,所以我需要一种方法在每个迭代中公平地分割这些所需的资源 例如,一个发布可能在下一次迭代的前一天开始,因此我必须只为该发布/迭代组合分配一小部分资源 我已经在一张图片中包含了到目前为止我所拥有的东西。由于某些原因

我将尽力以最好的方式解释这一点,但请随时澄清

首先,我将尝试解释这个问题

我需要计算任何给定迭代的资源成本(点数)。也就是说,想象一个excel文档。最左边的一列列出了需要完成的发布或项目。在顶行,列标题是迭代

我有以下信息。我有每个版本所需的资源数量。但是,因为一个发布可以跨越多个迭代,所以我需要一种方法在每个迭代中公平地分割这些所需的资源

例如,一个发布可能在下一次迭代的前一天开始,因此我必须只为该发布/迭代组合分配一小部分资源

我已经在一张图片中包含了到目前为止我所拥有的东西。由于某些原因,我无法正确计算正确的金额,很可能是因为我的数学能力差。我希望这对你们中的一位来说是微不足道的,我感谢你们的任何尝试

这是我第一次尝试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;
    }
for(var i=0;i
}


我已经编写了代码,可以满足您的要求。它就在这里

基本思想是,对于每个版本,我在开始和结束之间的所有工作日内分配所有资源。然后我遍历每一天,如果这一天是在迭代中,我将这些资源添加到该迭代中。这就是您试图做的吗

我以前的敏捷教练想质疑这种方法。这感觉有点太过长远的规划,计算的精度超过了资源估算的精度……但我已经抑制了足够的直觉,给你提供了可用的代码

对于这种情况来说,这可能有些过分,但该解决方案使用了我正在使用的一个名为“ChartTime”的库。ChartTime允许您进行日期和时间框操作和计算。它具有取消假日和周末的功能,我在解决您的问题的示例解决方案中使用了这一功能,尽管不需要这种精度。它还具有时区p我没有使用的recision


ChartTime是用CoffeeScript编写的,我对您的问题的解决方案也是用CoffeeScript编写的。CoffeeScript只是JavaScript的一种更简洁的语法,它可以编译成JavaScript,这样您就可以直接从JavaScript使用ChartTime库。我每个周末/晚上都在编写它,效果很好。文档很好,但并不复杂还没有。

我已经编写了代码,可以满足我认为您的要求。它就在这里

基本思想是,对于每个版本,我在开始和结束之间的所有工作日内分配所有资源。然后我遍历每一天,如果这一天是在迭代中,我将这些资源添加到该迭代中。这就是您试图做的吗

我以前的敏捷教练想质疑这种方法。这感觉有点太过长远的规划,计算的精度超过了资源估算的精度……但我已经抑制了足够的直觉,给你提供了可用的代码

对于这种情况来说,这可能有些过分,但该解决方案使用了我正在使用的一个名为“ChartTime”的库。ChartTime允许您进行日期和时间框操作和计算。它具有取消假日和周末的功能,我在解决您的问题的示例解决方案中使用了这一功能,尽管不需要这种精度。它还具有时区p我没有使用的recision


ChartTime是用CoffeeScript编写的,我对您的问题的解决方案也是用CoffeeScript编写的。CoffeeScript只是JavaScript的一种更简洁的语法,它可以编译成JavaScript,这样您就可以直接从JavaScript使用ChartTime库。我每个周末/晚上都在编写它,效果很好。文档很好,但并不复杂还没有。

Calculations函数做什么?你的图像很难读取。即使我放大它,我也不知道数据是什么意思。@StephenOstermiller,对不起,这是我5年前在一家公司工作的。我不再在那里工作了。Calculations函数做什么?你的图像很难读取。即使在我放大了它,我不知道数据是什么意思。@StephenOstermiller,对不起,这是我5年前工作过的一家公司。我不再在那里工作了。我在这个解决方案中提出的一个假设是,发布的资源将分布在整个发布中,而不是在突发事件中使用。你不尝试完成一个吗在开始其他事情之前先做些什么?资源会转移。另外,更敏捷的是/Scrum会假设你每次迭代都有相同的资源,并让你尝试构建的时间和范围有所不同。谢谢Larry。我的任务是创建这个,但原因是经理可以看到他在进度上有哪些超出或低于进度项目或员工,并尝试作出判断