为什么软件开发技术人员总是不能准确估测项目时间
在软件开发过程中都会跟软件开发技术人员打交道,很多时候我认为一个简单的修改并不需要太多时间,可是我的软件开发技术人员同事总是不能给我一个肯定的时间答复,他们总是无法保证在他们声称的时间内搞定我的需求,为什么软件开发技术人员总是不能准确估测项目时间呢?
一个曾经与我一起工作过的经验丰富的项目经理声称,他拿到软件开发技术人员的时间估算以后,先将它乘以π,然后转化下一个时间数量级后,才能得到真正的值。1天转化成3.14周。他过去因为软件开发技术人员不擅长估算时间而吃尽了苦头。我创建了一个用来翻译软件开发技术人员时间估算的表格,来尽量缩小估算错误。
时间估算时困难的。每一个软件开发技术人员都有一个现实的估计区间。低于这个区间的估计意味着(构件,测试,检查代码的)时间开销被低估了。超过这个区间的估计意味着这个任务太大而很难预估。
对于初级开发者来说,这个区间甚至都不存在。他们忽略(构件,测试,检查代码的)时间开销,同时困难的任务他们却又无法预估。我想说一个有经验的开发者应该在0.5至24小时将事情做完。超过24小时,就需要细分。这项工作应该在开发者的头脑中完成,然后总和到60小时。但是即使是有一些有经验的开发者也需要有利用管理时间块来思考。
同样重要的是明白:编程经验不等同于估算经验。一个不被包含在估算流程中的开发者将不会擅长估算。同样,如果实际的时间花费不被测量和用于与估算比较,那么将没有反馈来学习。
最后,每个软件开发技术人员都应该具备估算的技能。为磨练这个技能,接手每个任务时,先决定你要做什么。然后在开始之前估算任务所需时间。最后测量实际花费时间,并与估算相比较。同样比较你实际完成的与计划完成的。这样你将会既提高你对一个任务包含细节的理解,同样也提高了你的估算技能。