估计完成任务的时间

Gur*_*epS 2 project-management estimation

我知道这个问题已经在这里/程序员中问过几次了,这是一个非常常见的经典问题:

您如何准确地估计任务将花费多长时间?

我的问题是Windows中的点击任务,我可以给出准确的估计。对于编码新内容(例如使用我不熟悉的API),我无法估算出挽救生命的准确时间。这是一个思考并说出我脑海中的第一个数字(以天/周/天为单位)的情况。对于使用我熟悉的API的代码和我可以立即说我可以开发的应用程序(例如记事本类型的应用程序),我可以给出准确的估计。

任何帮助表示赞赏。

谢谢

Dan*_*gby 5

专注于碎片。当您尝试高水平地估计任务时,不仅令人生畏,而且您将无法准确地考虑构成总时间的所有因素。

相反,甚至不要试图猜测总数(不仅没有用,而且实际上可能会使您对单个任务的估计产生偏差),而是坐下来,然后尝试思考组成该任务的所有子任务。如果感觉太大,请将其分解为更小的子任务。

完成此操作后,请对每个子任务进行估算。如果其中任何一个大于约4个小时,则子任务可能还没有充分分解。将所有这些子估算值相加。这是您的估计。

使用这种方法会迫使您推理出完成任务实际需要什么,并使您得出更好的估计值。

确保您也考虑完成任务所需的非显而易见的步骤。如果您正在编写一段代码,是否包括编写相关的单元测试的时间估计?为了测试代码?要记录吗?

将小时数转换为几天数时,请对实际花费的时间进行实际预期。普遍的共识是,开发人员可以在任何给定的8小时工作日内完成4-6小时的工作。这大致符合我的个人经历。

如果您还有其他团队成员,则可以尝试一种称为Planning Poker的技术。最简单的想法是让团队中的每个成员离开并分别估算每个任务。完成此操作后,团队会聚在一起,比较估计值以查找较大的偏差。如果任务不够清楚,团队中的某些成员掌握了其他人没有的相关信息,或者不同的团队成员做出了不同的假设,则这往往会暴露出来。

进行估计时,请注意您的假设并将其记录为估计的一部分。假设x,y和x,任务q应该花费n个小时。例如,假设有QA工程师可以测试功能,假设有开发环境可以将功能部署到测试中,并假设尚未一起测试的两个第三方框架具有兼容性,任务所依赖的特征z在某个日期之前就准备好了……等等。我们一直无数次地做出这些假设。记录它们会迫使您意识到它们,并允许其他方验证您的假设是正确的。而且如果估计结果确实是错误的,那么您还有更多的信息可以分析原因。

即使遵循所有这些建议,您仍然经常会做出不准确的估计,但不要感到太糟糕,因为我们的大脑很难为抽象任务产生可怕的估计。我们存在多种认知偏见,这些偏见会影响我们衡量任务规模和工作量的能力。

我建议阅读本文以获取更多信息和建议:

http://blog.muonlab.com/2012/04/12/why-you-suck-at-estimating-a-lesson-in-psychology/