概率论与项目规划

8
我正在管理一个项目,需要根据粗略的需求和规格进行估算。因此,特定功能和任务的估算是一组离散值,而不仅仅是一个离散值(例如,在10到20之间,而不是恰好为17)。
我很好奇,如果我想了解在最低估计内完成某个任务的大致概率,应该如何处理?请为了讨论的目的,忽略我的估算技巧、使用平台等因素。
我考虑使用Poisson distribution,其中λ=(low+high)/2,假设每个提议值的概率遵守罕见事件/正态分布定律。这并没有考虑到超出我的估算限制的可能性比可能性小,但仍然......
你对此有什么看法,你会选择哪种方法进行这样的实验?

请注意,通过单独估计各个任务的持续时间,您将错过风险之间的潜在相关性 - 并且通过假设独立性,您通常会低估极端风险。以概率方式对此进行建模是一场噩梦,但是非正式地思考这一点(即如果此任务进展不如预期,我可以预期哪些其他任务会出现问题)确实可以帮助发现项目中的风险区域。 - Mathias
4
我建议关闭这个问题,因为它与编程无关。 - Vadim Kotov
5个回答

10

基于证据的进度安排

基本上,这个想法是观察你的团队完成类似任务需要多长时间,以此来估计另一个任务需要多长时间才能完成。


5
我建议阅读Tom DeMarco和Tim Lister的《与熊共舞》,其中深入探讨了进度估算。一般而言,我认为在最低估计时间内完成任何项目的概率大约为零。这既来自他们在书中提供的分析,也来自个人经验。

2
一旦你告诉别人截止日期,那就成为了最低估计时间。 - user180247

2
我认为你没有足够的信息来做出这个决定。要想做到这一点,你需要知道概率曲线是否被归一化(很可能是),以及它是否有偏差(几乎肯定会有),还要知道与之相关的各种统计值(平均值、标准差等)。
如果你已经了解了这些,我认为你就不会问这个问题了。此外,你估算的技能、假设以及它们的准确性等都是影响因素,其中大部分都很难量化。
这就是基于证据的排程的好处——你不需要精确地了解事情需要花费多长时间,你只需要知道它们需要多长时间。
以下是几点简单的建议:
1)根据我的经验,它达到你最低估计的现实机会几乎为零。在软件项目中会遇到问题,大多数人估算不准,并且会出现问题。如果你想得到一个好的估计,则应该考虑这个问题。
2)非常仔细地思考你需要这个数字的用途。如果你要把它给客户或大多数经理,那么:
(a)他们不会记得注意事项,也不会记得范围的顶端,不会记得概率或理论。他们只会记得你给他们的好的低数字,其他都是“哇啦哇啦”的。
(b)客户和经理想要确定性,所以你需要给他们你确定的数字。如果你假设你的估计值服从正态分布,并且你有最佳情况和最坏情况的值,如果你给他们两者的平均值,你将50%的时间错过deadline。从经理的角度来看,这很糟糕。如果你想在95%的时间内达到deadline,那么你需要给出平均值+2个标准差。同样,如果你想要一个粗略的估计,则最坏的情况可能是最容易掌握的数字。
通常保守一些,超额完成任务。成为一个从不错过deadline并且经常提前交付的人。这并不需要改变你的工作方式,你只需要管理好期望即可。

1
我建议使用三点估算法。在项目中的每个任务上分配最小、最有可能和最大时间,以及随机分布类型(Pert、三角形、Beta等),具体取决于特征或历史数据。使用蒙特卡罗模拟多次(例如5000次)并查看累加结果。您还可以进一步加入风险元素(如果需要,还可以考虑风险之间的相关性),以获得更好的预测。像Palisade @Risk这样的工具可能能够帮助您。

0

泊松分布已经被尝试很多次了,但成功率都很低。我赞成基于证据的调度,因为它是自我纠正的,并且能根据实际数据运作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接