我目前正在估算一个新项目。我的高水平估计假设有一个开发人员在工作25周。
实际上将有两名开发人员并行工作。降低估算值的合理因素是什么? (我意识到它不会是0.5)
答案 0 :(得分:14)
根据原始开发人员和新开发人员的不同,您可以将25周减少多达75%(不是我不是在开玩笑)或增加减少50%(同样,不是开玩笑)。事实上,各个开发人员之间存在巨大的差异。具有相似技能水平的开发人员已经证明vary by an order of magnitude。
这一切都取决于两位开发人员的经验水平,技能和领域知识以及他们如何协同工作。有些团队(好的团队)比部分总和更好。有些情况更糟。
一般来说,在所有其他条件相同的情况下,你会因为沟通问题而浪费时间,而且我可能会把这个问题从一个变为一个以上。
答案 1 :(得分:6)
我不会盲目地增加或减少百分比 - 相反,我会将开发人员之间的估计任务分开,并要求新开发人员估计他将对每项任务进行的时间。我不会质疑他的任何估计,除非它们明显不合时宜。
答案 2 :(得分:4)
这取决于新开发人员学习代码库等需要多长时间。
答案 3 :(得分:2)
有了所有正常的警告(不可能真正估计这个,经常添加开发人员添加时间等等)。假设额外的开发人员具有相似的能力水平,与我的平台/技术具有相似的技能和经验,我通常估计增加20%的额外开发人员;增加三分之一可减少5%。之后没有减少。
答案 4 :(得分:2)
这取决于您要添加的开发人员。最后,只有实际的开发人员可以对他们编写代码所需的时间进行一些实际的估计。您需要自己编写代码的时间与其他人需要的时间没有多大关系。
我建议你完全忽略原来的估算,决定你如何在两个人之间分割项目。然后对需要多长时间来完成自己的部分进行新的估计。然后为开发的两个方面添加时间。
通过这种方式,您可以根据实际构建代码的开发人员的输入进行估算,而不仅仅是其中一个。
答案 5 :(得分:1)
根据我的经验,处理与做工作的人分开的估算是一个坏主意。我首先会决定谁在做这项工作然后与他们坐在一起,并询问他们需要多长时间才能完成任务。他们应该提出一些问题,这些问题可能会帮助您理解原本不会引起注意的关键问题。
沟通是进行项目管理时最重要的事情。独立于工作人员的工作是由太多因素决定的,而这些因素很糟糕。
答案 6 :(得分:0)
这个问题没有答案。这取决于开发人员的技术水平,项目知识,资源等。
根据我的经验,我认为第一部分时间实际上会将项目设置回来,因为需要时间来抓住他。
如果我为了这个问题不得不拿出一个号码,我会说前几周为-50%,其余为+ 25%;)
答案 7 :(得分:0)
这取决于提供的因素太多。你能比较一下这个项目吗?这个项目有多难?两个开发人员将共享多少工具?其他开发人员的熟练程度如何?沟通开发人员的沟通效率如何?真的没有任何先前的基准,很难给出一个好的数字。
答案 8 :(得分:0)
我不会根据人数的增加来应用一个因素。我想你最初估计的25周是基于项目所涉及的所有任务的细分。在考虑项目的第二个开发人员时,您应该查看该任务列表并查看此人可以提供帮助的位置。一旦确定了他/她将要处理的任务,您就可以保持原始估计的准确性。然后,您应该根据专业知识,提升时间等来估计此人所需的时间,以完成您委派的任务。
答案 9 :(得分:0)
我会将估算值分成2:
假设每个开发人员需要2周启动,那么您的原始估计将是2周启动和23周工作。
添加一个开发者会花费你额外的2周的努力。
此外,您还需要考虑开发人员之间的协调成本。估计这一点的一种方法是说每个开发人员需要每天开发5分钟。在你的情况下,每天额外增加10分钟的努力。
这也取决于划分项目的可能性。例如,您的项目是否适合分为多层,一个是数据库,另一个是UI。
然而,最重要的因素是新开发者的质量。根据这一点,你可以从生产力的负面影响中获得任何东西,也就是说在压延时间内需要更长的时间,花费不到一半的时间。
答案 10 :(得分:0)
它不仅依赖于开发人员 - 正如上面所说的那样 - 它还取决于工作。项目是否可以进行细分,是否有任何外部因素会影响开发人员的进展(“你不能再增加2名女性在3个月内生育宝宝而不是9个月的模式”)。我将确定是否可以有效地划分工作(解耦区域),了解其他程序员(某人是新的?或者您已经想到的人)的级别,并创建所需的任何假设(例如第三方接口,预期的变化等。)
答案 11 :(得分:-1)
我认为您的估计值可能会先增加一点。 新开发人员必须熟悉该项目,现有开发人员可能需要花一些时间教他一些关于项目的事情等等。
答案 12 :(得分:-1)
可能不会,至少不会在不到3个月内交付。
就我个人而言,我认为在第一个月他们基本上会产生负面影响 - 他们几乎不做任何自己的使用,并从团队的其他成员那里提出问题,打破事情等等。
接下来的一个月,他们将接近盈亏平衡,可能会好一些,但基本上做得和采取相同的措施。
最后一个月他们可能会弥补他们在第一个月受损的情况。
之后,在项目开始3个月之后,他们将会像其他人一样富有成效(这是有能力的,但不像那些已经参与其中的人那么有用)。
(注意:这假设添加的开发人员数量不超过那些能够有效地提高他们速度的人。例如,你在项目中添加了两个开发人员,而且只有一个人可以通过事物来讨论它们你可能会对现有人的影响加倍,新人的速度会减半。)
决定确切影响的因素将是:
1)技术技能你希望前三个是高,最后一个是这样,团队不会发生太大的变化。将一个人添加到10人团队中,其影响是可管理的。让一个5人团队进入一个十人团队,你可能已经搞了3到6个月。
为什么会这样?越来越多的人增加了沟通渠道的数量,降低了平均知识水平,增加了一些可能被质疑的机会(因此辩论重新开放,可能有用,可能不会),增加对运作中的团队的干扰等等。