【问题标题】:Estimates - by what factor should they be reduced when adding another developer?估计 - 添加另一个开发人员时应该减少哪些因素?
【发布时间】:2009-07-14 14:18:30
【问题描述】:

我目前正在估算一个新项目。假设有一名开发人员在进行这项工作,我的高级估计是 25 周。

实际上会有两个开发人员并行工作。什么因素可以合理地减少估计? (我意识到它不会是 0.5)

【问题讨论】:

  • 取决于硬币是正面还是反面。
  • 如果可以的话,您的问题标题非常具有误导性。您问的不是添加另一个开发人员,而是与两个开发人员而不是一个开发人员创建一个替代计划。这可能会导致对答案的一些奇怪投票。
  • 这个问题是题外话,因为它不在本网站的范围内,如What topics can I ask about here? 中定义的那样另见:What types of questions should I avoid asking? 您可以在another Stack Exchange site 上提问,例如@ 987654324@ 或Software Engineering。请务必阅读您打算在其上发布问题的任何网站的帮助中心内的主题页面。

标签: project-planning estimation


【解决方案1】:

根据原始开发人员和新开发人员的不同,您可以将这 25 周减少多达 75%(不,我不是在开玩笑)或增加 50%(同样,不是开玩笑)。事实上,各个开发人员之间存在巨大的差异。具有类似技能水平的开发人员已向vary by an order of magnitude 展示。

这一切都取决于两位开发人员的经验水平、技能组合和领域知识,以及他们合作的程度。一些团队(好的团队)比部分的总和更好。有些更糟。

一般来说,在所有其他条件相同的情况下,您会在沟通问题上浪费时间,我可能会认为大约 20% 是从一个到多个。

【讨论】:

    【解决方案2】:

    我不会盲目地增加或减少一个百分比 - 我会在开发人员之间划分估计的任务,并要求新开发人员估计他将完成每项任务的时间。我不会质疑他的任何估计,除非它们明显不符合要求。

    【讨论】:

      【解决方案3】:

      这取决于新开发人员学习代码库等需要多长时间。

      注意it may not even be shortened at all

      【讨论】:

        【解决方案4】:

        有所有正常的警告(不可能真正估计这一点,通常会增加开发人员增加时间等)。假设额外的开发人员具有与我相似的能力水平,具有与我相当的平台/技术的技能和经验,我通常估计增加额外的开发人员会减少 20%;增加三分之一额外减少 5%。之后没有减少。

        【讨论】:

          【解决方案5】:

          这取决于您添加的开发人员。最后,只有实际的开发人员才能对他们需要编写代码的时间给出一个有点现实的估计。您需要自己编写代码的时间与其他人需要多长时间没有太大关系。

          我建议你完全忽略最初的估计,决定如何在你们两个之间拆分项目。然后对双方完成自己的部分需要多长时间进行新的估计。然后为双方的发展添加时间。

          这样您就可以根据实际将要构建代码的开发人员的输入进行估算,而不仅仅是其中一个。

          【讨论】:

          • “只有实际的开发人员才能对他们需要编写代码的时间给出一个比较现实的估计。”邓宁-克鲁格效应等等等等。
          【解决方案6】:

          根据我的经验,将估算与工作人员分开处理是一个坏主意。我会先决定谁在做这项工作,然后和他们坐在一起,询问他们完成任务需要多长时间。他们应该提出问题,以帮助您了解否则会被忽视的关键问题。

          在进行项目管理时,沟通是最重要的事情。独立于从事工作的人来对待工作会导致您最终做出错误估计的因素太多。

          【讨论】:

            【解决方案7】:

            这个问题没有答案。这取决于开发人员的技能水平、项目知识、资源等。

            根据我的经验,我认为第一部分时间实际上会使项目倒退,因为赶上他需要时间。

            如果为了这个问题我必须想出一个数字,我会说前几周 -50%,然后 +25% 剩下的 :)

            【讨论】:

              【解决方案8】:

              这取决于提供的因素太多了。你能把它和另一个项目比较吗?项目难度如何?两个开发人员将共享多少工具?其他开发人员的技能如何?开发人员之间的沟通效率如何?真的没有任何先前的基准,很难给出一个好的数字。

              【讨论】:

              • 真的吗? -1?谁能解释为什么这是一个不恰当的答案?
              • 我也想知道同样的事情。如果这个不合适,那么其他大多数也不合适。
              • 关键是谁投了反对票。除了 -2 代表惩罚之外,SO 还有其他方法来解决滥用问题吗?
              • 我会说,虽然它们是很好的问题,但它们可能更适合对原始问题发表评论,而不是作为自己给出。这可能就是它被否决的原因(不,不是我投了反对票!)
              • @Kelly:得到-2的是回答者;投票者自己得到-1,仅供参考。例如,我否决了两个答案并失去了两个代表。简单的除法指向 -1 per。
              【解决方案9】:

              我不会简单地应用基于员工人数增加的因素。我想您最初对 25 周的估计是基于项目中涉及的所有任务的一些细分。在考虑项目中的第二个开发人员时,您应该查看该任务列表,看看这个人可以在哪里提供帮助。一旦你确定了他/她将要处理的那些任务,你就可以保持对其余部分的原始估计的准确性。然后,您应该根据专业知识、启动时间等估算此人完成您委派的任务所需的时间。

              【讨论】:

                【解决方案10】:

                我会将估计分为 2:

                • 进行设置,了解项目
                • 做好工作

                假设每个开发人员需要 2 周的启动时间,那么您最初的估计将是 2 周的启动和 23 周的工作。

                添加开发人员会花费您额外 2 周的时间来完成该项目。

                另外你需要考虑开发者之间的协调成本。估计这一点的一种方法是说每个开发人员每天需要与其他开发人员交谈 5 分钟。在您的情况下,这将增加每天额外 10 分钟的工作量。

                它还取决于划分项目的可能性。例如,您的项目是否适合将其分为几层,一层是数据库,一层是 UI。

                然而,最重要的因素是新开发者的素质。根据这一点,您可以从对生产力的负面影响中获得任何好处,即需要更长的压延时间,甚至不到一半的时间。

                【讨论】:

                  【解决方案11】:

                  这不仅取决于开发人员(如上所述),还取决于工作。项目是否可以足够细分,是否有任何外部因素会影响开发人员的进展(你不能在 3 个月而不是 9 个月的模式中再添加 2 个女性来生孩子)。我会确定工作是否可以有效地划分(分离的区域),了解其他程序员的水平(新人?或您已经想到的人)并根据需要的任何假设(例如 3rd 方接口,预期的变化等)

                  【讨论】:

                    【解决方案12】:

                    我认为您的估计最初可能会有所增加。 新开发人员必须熟悉项目,现有开发人员可能需要花一些时间教他一些有关该项目的知识等...

                    【讨论】:

                    • 奇怪......与往常一样,在降级答案时,我想知道为什么。 (尤其是在我之前 2 秒发布的与我类似的答案已升级 2 时)。
                    • 这不是我的反对意见,但在每秒 25 周的过程中,有能力的开发人员应该减少总时间。虽然在技术上是正确的,但初始速度最初会降低,在 25 周的过程中,这应该被以后增加的速度所抵消。如果 OP 指定了 2 周的时间范围,你会得到我的支持,但答案并没有真正解决他的问题。
                    【解决方案13】:

                    可能不会,至少如果交货时间少于 3 个月的话。

                    我个人认为,在第一个月,他们的工作效率基本上是消极的——他们几乎不会利用自己,从团队其他人那里拿走提问、破坏事物等等。

                    p>

                    下个月他们将接近盈亏平衡点,也许会好一点,但基本上做和采取同等措施。

                    他们可能会在最后一个月弥补他们在第一个月造成的损失。

                    在那之后,他们将在项目 3 个月后与其他任何人一样高效(这是有能力的,但不如从事该项目更长时间的人有用)。

                    (注意:这假设被添加的开发人员不会超过那些能够有效地让他们跟上进度的人。比如说,您要向项目中添加两名开发人员并且只有一个可以与他们交谈的人您可能会对现有人员的影响加倍,并将新人员的前进速度减半)。

                    决定具体影响的因素是:

                    1) 技术技能
                    2) 业务领域知识
                    3) 与具体项目相关的知识
                    4) 整个团队的规模,特别是你增加了多少额外人员的百分比

                    您希望前三个高,最后一个高,这样团队就不会按比例变化太多。在 10 人的团队中增加一个人,其影响是可控的。把一个 5 人的团队变成一个 10 人的团队,你可能会被搞砸 3 到 6 个月。

                    为什么会这样?更多的人增加了沟通渠道的数量,降低了平均知识水平,增加了某些事情被质疑的机会(因此重新开始辩论,可能有用,可能没有),增加对正常运作的团队的破坏等等。

                    【讨论】:

                      猜你喜欢
                      • 1970-01-01
                      • 2010-09-17
                      • 1970-01-01
                      • 2010-11-22
                      • 1970-01-01
                      • 2010-10-05
                      • 2016-03-09
                      • 1970-01-01
                      • 1970-01-01
                      相关资源
                      最近更新 更多