我的意思是名编程项目你有没有和花了多长时间,请。老板从来没有抱怨但我有时候感觉事情的花费太长时间。但是,这可能是因为我不耐烦。让我知道你的经验进行比较。

我也注意到,事情总是似乎需要更长的时间,有时更长的时间,比原计划。我不知道为什么我们不开始计划为它但后来我认为这也许是对于激励人心的目的。

瑞安

有帮助吗?

解决方案

最好只是简单地计时,记录您的估算并确定平均百分比。鉴于此,只要您保持一致,您就可以根据您认为自己完成的时间来适当估计实际时间。这不仅仅是为了确定你估计的糟糕程度,而是考虑到不可避免的干扰(包括个人和老板/客户)的规律性。

这是基于Joel Spolsky的循证调度,必不可少的阅读,正如他解释说,主要的另一个重要方面是将你的任务分解成一口大小(最多16小时)的任务,估算并将它们加在一起以达到你的最终项目总数。

其他提示

基于肠道的估计有经验,但你真的需要详细说明所涉及的任务以获得合理的东西。

如果你有一个规范或至少有一些约束,你可以开始创建任务(设计用户页面,设计标签页面,实现用户页面,实现标签页面,写标签查询,......)。

完成此操作后,将其添加并加倍。如果你打算与其他人协调,那就加倍。

随时记录您的实际时间,以便评估项目完成时的准确程度并提高您的估算技能。

我完全同意以前的海报......不要忘记你的团队的工作量。仅仅因为你估计一个项目需要3个月,这并不意味着它会在那附近的任何地方完成。

我在一个较小的团队(5个开发人员,1个领导者)工作,我们中的许多人一次在几个项目上工作 - 一些大,一些小。根据项目的优先级,管理的一心一意和其他团队的可用性(如果需要),项目的工作可以穿插在其他团队中。

所以,是的,3个月的工作可能已经死了,但在6个月的时间内可能需要3个月的工作时间。

我自己做了1到6个月的项目,而且我总是倾向于将我原来的估计值加倍或成组。

实际上不可能比较两个编程项目,因为有太多因素意味着指标仅适用于另一个(例如,使用的特定技术,开发人员的先前经验,转移要求)。除非您要删除与之前构建的系统几乎完全相同的另一个系统,否则您的估计值准确度很低。

需要注意的是,当您使用同一个团队构建现有系统的下一个版本时;获得的具体经验确实提高了估计下一批工作的能力。

我在估算方法上看到了太多的尝试,但都没有奏效。他们可能具有伪科学的吸引力,但他们只是在实践中不起作用。

唯一有意义的答案是敏捷倡导者所倡导的相对较短的迭代:选择可在短时间内执行的工作范围,交付,然后进入下一轮。然后在短期内分配预算,利益相关者能够评估他们的资金是否得到有效支出。如果要花费太长时间才能到达任何地方,他们可以抛弃这个项目。

霍夫施塔特的法律:

它总是需要更长的时间比预期的,甚至当你把霍夫施塔特的法律考虑在内。'

我相信这是因为:

  • 工作展开,以填补可用的时间做到这一点。无论如何无情的你是切不必要的功能,你将已更加残酷,如果在最后期限甚至更加严格。
  • 意想不到的问题过程中发生的项目。

在任何情况下,它的真的误导性来比较奇闻轶事,部分原因是人们的选择性记忆。如果我告诉你这一次我花了两个小时编写一个全面优化的快速排序,那么也许我忘记的事实,我知道我有这项任务提前一个星期,并一直在思考在思想。也许我忘记了那有一个错误,我花了两个小时,固定一个星期后。

我几乎可以肯定留下了所有的非编程工作:会议、建筑设计、咨询人是卡在什么我碰巧知道,管理。所以,这是不公平对你自己想的速度工作,似乎是合理的条款"坐在那里的编码",并希望得以持续,所有的时间。这是一个很大的感情事后,你"应该已经快".

我做的项目从2周到1年。通常我的估计是相当好, 后验.在项目开始时,我通常得到殴打,因为我估计数被认为太大。

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

  • 时间错误的固定
  • 时间用于部署
  • 时间管理/会议/相互作用
  • 时间允许要求所有者改变他们的心灵
  • 等等

窍门是要用基于证据的调度(见Joel在软件)。

事情是,如果你计划一个小小的额外时间,你会用它来提高本代码的基础,如果没有出现问题。如果出现问题,你仍然在估算。

我相信Joel写了一篇关于此的文章:你可以做什么,要求团队中的每个开发人员详细列出他的任务(需要做的所有步骤是什么),并要求他们估计所需的时间每一步。之后,当项目完成后,将实时与估计时间进行比较,您将获得每个开发人员的偏见。当一个新项目启动时,要求他们再次评估时间,并将其与每个开发人员的偏差相乘,以获得接近实际预期的值。

在几个项目之后,你应该有很好的估计。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top