您在项目计划和新项目的小时估算方面有什么经验?
您采用的方法是什么,为什么会或者不会适用于您?
有没有需要考虑的最佳实践?
您在项目计划和新项目的小时估算方面有什么经验?
您采用的方法是什么,为什么会或者不会适用于您?
有没有需要考虑的最佳实践?
我尝试使用的原则(并非总能如愿)是:
在进行估算时,重要的是以正确的粒度进行估算,并不断细化和添加任务,直到您对估算感到自信。很多时候,估算会突出一个冗长而关键的路径任务,这可能需要更多的细化和风险分析。
试图弄清楚每个任务的风险所在(有没有需要等待的时间?有没有缺乏知识?竞争对手是否可能抢先一步等等)有助于确定您对估算的信心,从而确定如何处理这些估算。风险分析还有助于确定是否需要进一步逐步细化。
为每个任务(包括设计、开发、测试和故障修复)指定最佳、可能和最差情况的估算值有助于风险分析和计划。可以使用这些估算值来计算命中特定成功百分比所需的最可能耗时。结合其他相关任务的信息和风险分析,项目经理可以将风险和其他已知因素(如系统测试)纳入估算中,以获得更可靠的估算。
当然,估算粒度也很重要。对于大多数任务来说,估算小时并没有意义。在软件中,通常使用天数最为适宜,但有时可能需要几周或几个月(例如如果您正在外包工作块)。选择一个对项目中所有任务都有意义的时间粒度(我通常在需求捕获和功能规范阶段使用天数,然后在了解更多有关任务及其子任务的情况后,每半天进行一次估算)。
这三个元素互相影响,因此往往需要对每个步骤进行多次细化。例如,在需求阶段尝试一次,然后在功能规范阶段再次尝试,最后在设计规范阶段再次尝试。
估算是一种学习技能,你做得越多,就会越来越好。当你了解自己不知道的内容时,风险分析会得到改善;当你了解自己已知的内容时,三点估算会得到改善;当你经历设计过程的每个步骤时,逐步细化也会得到改善。
如果你有时间,在完成任务后重新审视你最初的估算,看看实际时间与你的三点估算和项目计划相比如何。如果有区别,请查看时间损失或收益的原因,并尝试从中学习可以应用于未来项目的知识。
估算不应该成为一项令人生畏的任务-我总是感觉在进行估算之后对我的工作了解更多了而不是更少了。
关于这个问题,在《实用程序员》一书中有一些很好的信息。他们建议您使用适当的时间单位,而不是估计130天,建议估计为6个月。他们还建议集中处理最重要的任务,并避免基于子估计进行估计。
个人认为,将任务分解成易于理解的块以正确估计它们是有用的。如果任务太大,就会有太多的细节可以隐藏未考虑的问题。通过集中处理更小的块的详细信息,您可以更成功地评估潜在问题。
实践,实践,再实践。在你不断提高估算能力的过程中,为了保险起见,要进行过度估计。当然,如果你是一名顾问,这可能会让你失去业务。如果你害怕失去业务,可以低估,但要知道你将会在自己的空闲时间/底线上弥补额外的工作时间。
回复:
如果你害怕失去生意,可以低估价格,但要知道你将会在自己的空闲时间或底线上弥补额外的工作时间。
与其调整向客户呈现的工作时间,不如降低你的小时费率。这样至少能给客户增加价值的印象。
LM