【发布时间】:2010-09-23 06:24:20
【问题描述】:
您的经验是什么? 项目规划和创建时间 新项目的估算?
您使用的是什么方法, 以及为什么有效或无效 给你?
是否有任何最佳实践可以采取 考虑?
【问题讨论】:
标签: project-management project-planning estimation
您的经验是什么? 项目规划和创建时间 新项目的估算?
您使用的是什么方法, 以及为什么有效或无效 给你?
是否有任何最佳实践可以采取 考虑?
【问题讨论】:
标签: project-management project-planning estimation
我尝试使用的原则(我并不总是有机会)是:
在进行估算时,重要的是要以正确的粒度进行估算,并不断分解和添加任务,直到您对估算有信心为止。很多时候,估计会突出一个冗长的关键路径任务,可能需要更多的细化和风险分析。
尝试找出每项任务的风险所在(是否有交货时间?是否缺乏知识?竞争对手能否击败您?等等)有助于确定您对估算的信心,这使您可以确定如何处理这些估计。风险分析还有助于确定是否需要进一步逐步完善。
为每项任务(包括设计、开发、测试和错误修复)指定最佳、可能和最坏情况估计有助于风险分析和规划。估计值可用于计算达到该任务特定百分比成功的最可能持续时间。结合其他相关任务和风险分析的信息,项目经理可以将风险和其他已知元素(如系统测试)纳入估算,以获得更可靠的估算。
当然,估计的粒度也很重要。对于大多数任务,以小时为单位进行估算是没有意义的。在软件中,几天通常是最好的,但有时可能是几周或几个月(例如,如果您将工作块外包)。选择一个对项目中所有任务都有意义的时间粒度(我通常在需求捕获和功能规范阶段使用几天,然后在我了解有关任务及其子任务的更多信息后使用半天)。
所有这三个项目相互补充,因此您经常需要多次改进每个步骤。例如,您可能在需求阶段进行了尝试,然后在功能规范期间再次尝试,在设计规范期间再次尝试。
估计是一种习得的技能;你做的越多,你就越好。风险分析会随着您了解更多未知内容而改进,三点估计会随着您了解更多关于您知道的内容而改进,而逐步细化会随着您完成设计过程的每个步骤而改进。
如果您有时间,请在完成一项任务后重新查看您的原始估算值,看看实际时间与您的 3 点估算值和项目计划相比如何。如果有所不同,请查看在哪些地方浪费或获得了时间,并尝试了解您可以从中获得什么以用于未来的项目。
估算不应该是一项艰巨的任务 - 我总觉得估算后我对自己的工作比以前了解更多。
【讨论】:
我强烈推荐 Steve McConnell 的书 "Software Estimation: Demystifying the Black Art"。它确实很好地涵盖了这个问题。
【讨论】:
The Pragmatic Programmer 中有一些关于此的极好信息。他们建议您使用适当的时间单位而不是估计 130 天估计 6 个月。他们还建议集中精力完成最关键的任务。并避免根据子估算进行估算。
我个人认为将任务分解为可理解的块以正确估计它们是有用的。如果任务很大,那么有太多的角落和缝隙会隐藏未曾想到的问题。通过专注于较小块的细节,您可以更成功地评估潜在问题。
【讨论】:
您的问题是一个 NP-Complete 问题:) 有许多算法用于提出估计,但它们总是只是猜测,永远不准确,而且许多算法需要很长时间才能执行。忘记时间估算,使用 scrum 或其他一些敏捷框架。在项目开始时以数小时为单位进行估算简直是在欺骗人们。
在构建功能之前不要进行基于小时的估算,并随着功能的进展不断更新这些估算。
不要忘记在估算中包含测试时间。
【讨论】:
练习,练习,练习。为了安全起见,在您完善自己的估计能力时,请高估。当然,如果你是一名顾问,这可能会让你付出代价。如果您害怕失去业务,估计不足,但请注意,您将从空闲时间/底线中弥补额外的时间。
【讨论】:
回复: 如果您害怕失去业务,估计不足,但请注意,您将在空闲时间/底线之外弥补额外的时间。
你最好减少你的小时费率,而不是搞乱你向客户展示的时间。至少通过这种方式,您可以向客户展示附加价值的外观。
LM
【讨论】: