预测未来是不可能的。要求预测(“估计”)只是在麻烦。每个人都这样做,每个人都弄错了。
您对“超出500%”的判断可能与建筑师的估计一样错误。毕竟,“ ...到目前为止,该项目仍未完成...”这里没有事实。
没有人知道“正确”的答案。直到完成,没人会知道。
甚至在完成之后,“原始”估算(有或没有变更控制)也可能与实际完成的任何事情都不相关。
估计是一个陷阱-这是一个操纵游戏。您不会赢,无法收支平衡,甚至无法退出游戏。
编辑
处理不好的估计;一个“遗留”的估计似乎是错误的。
在那里。您不同意别人的估计。他们要么忽略了您认为必要的内容,要么 他们的工作范围与您不同,或者他们的生产率不同。同样,如果估算的不仅仅是工作量,则成本基础也不同。所有这些都是有争议的。因此,对导致估算的细节提出异议。不要质疑总数- 摘要中没有真实的信息。争议作为估算基础的各个细节。找出他们在想什么。
您的假设和他们的假设一样有错误的可能性。同样可能。
当要求估计。
你会错的。
它们在于工作范围。
您不知道团队的生产力。
任何涉及新技术的陈述都是错误的。
您不能只添加填充来随机覆盖这些内容。您实际上不知道也没有“估计”的依据。这只是猜测。克服它。
规则1:由于您只是猜测,所以要以较小的增量进行猜测。
在任何“估计”的情况根本问题是不是预测未来。在超过一两周的时间内,您无法做到任何准确性。将您的预测限制在您拥有直接和即时详细知识的时间范围内。例如,下一个版本。
最基本的问题是-通常-您的购买者或客户的决策。问题不是“成本是多少?” -还不完整。问题是“投资值得吗?” 真正的问题更多是围绕“成本/收益比是多少”和“什么时候应该停止支出,因为更多的投资不会产生更多的回报?”这样的问题。这些才是真正的问题。
规则2:以事实信息为决策者提供支持。
敏捷方法可以为大多数人提供最好的服务。第一个版本-从现在开始的一个月-将耗时5人×4周,它将产生功能X来弥补每天损失100万美元的损失,功能Y来解决每周失去20万美元的机会。您对正在做的事情有详细的了解,因此这种预测很有意义。之后的发布有些模糊。
从现在开始一年后的发布到未来为止,任何预测都只是一个随机数。未来6个月内不要流汗任何细节,只需使用简单的经验法则即可。
当他们询问TCO是什么时,您必须诚实。“总成本发生在您停止支付开发费用时。在停止支付之前,您将永远产生成本。”
真正的问题是“您要解决哪些问题?” 或“您正在寻求什么新机会?” 和“那值多少钱?”
规则3:使软件的成本低于应解决的问题。
如果您不太清楚问题所在,那么将根据估计来进行估算。尽量避免这种情况。
论概率。除了使疾病或事故恶化之外,软件开发的任何部分均不受实际概率的约束。“风险”简直就是糟糕的管理。通常形式为“我们没有考虑业务需求A或技术B的复杂性”。通常是“随着我们对问题或技术的了解越来越多,我们更改了时间表”的形式,这种形式被称为“范围蠕变”。
没有学习东西和改变范围的可能性。可以肯定的。
论规划。有“计划”和“估计”。计划构建什么是一回事,最好用清单或依赖图表示。“估计”所需的努力是基于不可知的因素。
“计划”是普通的良好管理。
“估计”需要不可知的知识。要准确地“估计工作量”,您必须对产品具有源代码级别的洞察力,并且必须知道哪个人将键入该源代码以及个人将犯什么错误。由于您可能不知道,因此任何估算都一定是错误的。而且经常会误导点,因此毫无用处。
如果估算超出500%,并且该项目仍在进行中,则估算有什么价值?
没有。它所做的只是使人们不高兴。但是无论如何,该项目还是取得了进展。
由于没有人能看到未来,因此正确估算并没有任何意义。使其有用,帮助人们做出决定。
保持短暂。尽快交付价值。创建一个计划,使客户可以随时取消该项目并仍然有价值。
不要让计划成为项目中唯一的“神圣真理”。可交付的功能是神圣的。其他所有事物都应随着交付成果的变化而变化。
不要让计划超出其创造的价值。