如何创建准确的小时估算?

时间:2008-11-20 15:20:34

标签: project-management project-planning estimation

  • 您有什么经历? 项目规划和创建时间 对新项目的估计?

  • 您使用的方法是什么, 为什么或没有工作 为你?

  • 是否有任何最佳做法 考虑到了吗?

8 个答案:

答案 0 :(得分:19)

估算任务

我尝试使用的原则(我并不总是有机会)是:

  • 逐步细化
  • 3分估计
  • 风险分析

逐步细化

在估算时,以正确的粒度进行估算并不断分解和添加任务非常重要,直到您对估算值有信心。通常,估算强调了可能需要更多细化和风险分析的冗长的关键路径任务。

风险分析

尝试找出每项任务存在风险的地方(是否存在某些事情的交付时间?缺乏知识吗?竞争对手可能会打败你吗?等等)有助于确定您对估算的信心,这允许您确定如何处理这些估计。风险分析还有助于确定是否需要进一步逐步细化。

三分估计

为每项任务指定最佳,可能和最差情况估算(包括设计,开发,测试和错误修复)有助于风险分析和规划。估计值可用于计算达到该任务特定百分比成功的最可能持续时间。连同其他相关任务和风险分析的信息,项目经理可以将风险和系统测试等其他已知元素纳入估算值,以获得更可靠的估算。

当然,估算的粒度也很重要。大多数任务的小时数估算都没有意义。在软件中,天通常是最好的,但有时可能是数周或数月(例如,如果你外包工作块)。选择对项目中的所有任务都有意义的时间粒度(我通常在需求捕获和功能规范阶段使用几天,之后半天,因为我了解有关任务及其子任务的更多信息)。

结论

这三个项目相互补充,因此您经常需要多次完善每个步骤。例如,您可能会在需求阶段尝试,然后在功能规范期间再次尝试,并在设计规范期间再次尝试。

估算是一项学到的技能;你做得越多,你就越好。当您了解更多关于您不知道的内容时,风险分析会得到改善,随着您对所了解内容的了解越来越多,三点估算会得到改善,并且在您完成设计流程的每个步骤时,逐步细化会得到改善。

如果您有时间,请在完成任务后重新查看原始估算值,并查看实际时间与3点估算值和项目计划的对比情况。如果它不同,请查看时间丢失或获得的时间,并尝试了解未来项目可以采取的措施。

估计不应该是一项艰巨的任务 - 我总是觉得我估计比以前更了解我的工作。

答案 1 :(得分:9)

我强烈推荐史蒂夫麦康奈尔的书"Software Estimation: Demystifying the Black Art"。它确实很好地涵盖了这个问题。

答案 2 :(得分:7)

The Pragmatic Programmer中有一些很好的信息。他们建议您使用适当的时间单位,而不是估计估计为期6个月的130天。他们还建议集中最重要的任务。并避免根据子估算进行估算。

我个人认为将任务分解为可理解的块来正确估计它们是有用的。如果任务很大,那么太多的角落和可以隐藏未经思考的问题的缝隙。通过专注于较小块的细节,您可以更成功地评估潜在问题。

答案 3 :(得分:2)

你的问题是NP完全问题:)有许多算法用于提出估计但它们总是只是猜测,从来不准确,并且许多需要很长时间才能执行。忘记小时估计,使用scrum或其他一些敏捷框架。在项目开始的几个小时内对项目进行估算只是骗人们。

在构建功能之前,不要进行基于小时的估算,并在功能进展时不断更新这些估算值。

不要忘记在估算中加入测试时间。

答案 4 :(得分:1)

RE: 如果您害怕失去业务,估计不足,但请注意,您将从空闲时间/底线中补充额外时间。

你最好还是减少每小时的费用,而不是把你提出的时间搞乱到客户端。至少通过这种方式,您可以向客户展示增值的外观。

LM

答案 5 :(得分:0)

练习,练习,练习。为了安全起见,在提高估算能力时要高估。当然,如果你是一名顾问,这可能会让你失去生意。如果您害怕失去业务,估计不足,但请注意,您将从空闲时间/底线中补充额外的时间。

答案 6 :(得分:0)

记录您在实际项目中花费的时间,这将有助于您计划下一个项目,PSP / TSP提供一种方法

答案 7 :(得分:0)

由于你的问题很复杂,你可能会发现主题"How do you do very quick (and dirty) estimations for coding tasks?"很有用,其中包含部分答案。