真正完成某事需要多长时间?

4
我是说请告诉我你做过的一个编程项目的名称和完成所需时间。老板从未抱怨过,但有时我觉得事情进行得太慢了。但这可能也是因为我自己不耐烦。让我知道你的经验以作比较。
我还注意到,事情总是似乎比原计划需要更长的时间,有时甚至要长得多。我不知道为什么我们不开始计划它,但我认为这可能是出于激励目的。
Ryan

我认为这个问题需要更多细节。您能举一个具体的项目例子,并说明为什么您觉得它花费的时间比应该的时间还长吗? - David G
8个回答

7
最好的方法是简单地记录时间,记录你的估计时间,并确定你偏差的平均百分比。只要你保持一致,就可以根据你认为完成任务的时间适当地估计实际时间。这不仅仅是确定你在估计方面有多糟糕,而是考虑到不可避免的干扰(个人和老板/客户基础)的规律性。
这是基于Joel Spolsky的证据支持的排程,这是必读的,因为他解释了另一个重要方面是将你的任务分解成易于掌握的(最大16小时)任务,估计并将它们相加以得出你的最终项目总数。

2
肠道估计是根据经验得出的,但你需要详细列出涉及的任务才能得到合理的结果。
如果您有规格或至少有一些限制,可以开始创建任务(设计用户页面、设计标签页面、实现用户页面、实现标签页面、编写标签查询等)。
完成后,将其相加并乘以2。如果您将不得不与他人协调,则将其乘以3。
在进行项目时,请详细记录实际时间,以便在项目完成时评估您的准确性并磨练您的估算技巧。

2

我完全同意之前的帖子...不要忘记你团队的工作量。仅仅因为你估计一个项目需要3个月完成,并不意味着它会在那个时间之内完成。

我在一个较小的团队中工作(5名开发人员,1名领导),我们中的许多人同时参与几个项目 - 有些大,有些小。根据项目的优先级、管理层的心血来潮以及其他团队的可用性(如果需要),对项目的工作会穿插在其他项目中间。

因此,是的,价值3个月的工作可能是准确无误的,但可能是在6个月的时间段内完成的价值3个月的工作。


1

我曾经独立完成了1-6个月的项目,而且我总是倾向于将我的原始估计翻倍或者四倍。


1

比较两个编程项目实际上是不可能的,因为有太多的因素意味着仅从一个项目中得出的指标并不适用于另一个项目(例如使用的特定技术、开发人员的先前经验、需求的变化)。除非您正在复制几乎与之前构建的系统完全相同的另一个系统,否则您的估计将具有低准确性的概率。

当您与同一团队构建现有系统的下一个版本时,一个警告是:具体的经验可以提高估计下一批工作的能力。

我见过太多的估算方法尝试,但没有一种方法奏效。它们可能具有伪科学的吸引力,但在实践中却行不通。

唯一有意义的答案是敏捷倡导者所提倡的相对短的迭代:选择可以在短时间内执行的工作范围,交付它,然后进行下一轮。预算是根据短期基础分配的,利益相关者能够评估他们的资金是否被有效地使用。如果进展缓慢,他们可以放弃该项目。


1
霍夫斯塔特定律:“即使你考虑了霍夫斯塔特定律,它总是比你预计的时间更长。”我认为这是因为:
  • 工作会膨胀以填满可用的时间。无论你如何残酷地削减不必要的功能,如果截止日期更紧迫,你本来会更加残酷。
  • 项目期间会出现意外问题。
无论如何,将个人经历进行比较真的很误导人,部分原因是人们具有选择性记忆。如果我告诉你,曾经花费我两个小时编写一个完全优化的快速排序,那么也许我忘记了我一周前就知道自己会有这个任务,并一直在思考想法。也许我忘记了它里面有一个错误,我后来又花了两个小时修复它。
我肯定忽略了所有非编程工作:会议、架构设计、咨询其他卡住了我碰巧知道的东西的人、行政工作。所以,希望像“坐在那里编码”的工作速率能一直保持是不公平的,这是许多人事后感到自己“应该更快”的情绪的根源。

0

我从2周到1年的时间内完成项目。通常情况下,我的估计是相当准确的,事后来看。然而,在项目开始时,我通常会受到抨击,因为我的估计被认为太大了。

这是因为我考虑了很多人们忘记的事情:

  • 修复漏洞的时间
  • 部署的时间
  • 管理/会议/互动的时间
  • 允许需求所有者改变主意的时间
  • 等等

诀窍在于使用基于证据的调度(请参见Joel on Software)。

问题是,如果你计划多留一点时间,如果没有问题出现,你将用它来改进代码库。如果出现问题,你仍然在估计范围内。


0

我相信Joel已经写过一篇关于这个的文章:你可以要求团队中的每个开发人员详细列出他的任务(需要完成哪些步骤),并要求他们估计每个步骤所需的时间。稍后,当项目完成时,将实际时间与估计时间进行比较,就可以得到每个开发人员的偏差。在开始新项目时,再次要求他们评估时间,并将每个开发人员的偏差乘以估计时间,以获得接近实际预期的值。

几个项目后,你应该有非常好的估计结果。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接