由于我们使用敏捷方法(特别是 Scrum),因此我们比用户确定优先级花费的时间长了大约一个小时。
更多的时间不会导致更高的准确性。
因此,困难的部分是让用户确定优先级。我们经常听到这样的讨论“如果整个事情没有按时完成,那一切都是一文不值”。“除了 XYZZY 组件,它确实有一些价值。” 这种争论可能会持续几个小时,直到确定 XYZZY 应该是第一个。
通常,我们会尝试创建 4 周的 sprint。前几个很复杂,因为总是有新的东西。在前两个(或三个)之后,我们似乎设定了稳定的步伐。
每个用例都有一个相对简单的、主观的评估来评估完成它需要付出的努力。任何超过一个完整 sprint 持续时间的东西都必须分解。大多数时候,一些用例被捆绑到一个冲刺中。
这是对每个用例进行评分的正式方法,以更好地处理成本和进度问题。我们不使用它们,因为额外的努力没有帮助。
在前两次冲刺之后,
有新的和不同的功能,
优先事项都变了,
每个用例的细节都进行了大幅修改。
当您尝试估计的事物在每个 sprint 结束时发生变化时,“准确性”是什么意思?
一个教训。我公司的一些部门花了很长时间来完全定义将要交付的内容,然后衡量他们是否准确地交付了他们想要的东西。
客户注意到了这一点,有人说我们“花了很多时间交付合同所说的内容,但这不是我们所需要的。”
坚定的预先估计的问题在于,他们过着自己的生活。您在估算中“投资”的越多,估算似乎就越有用。它们没有用,因为它们通常是完全错误的。它们基于完全错误的预先假设。
在估算上投入更多时间是一个糟糕的政策。“准确”的答案并没有更准确,但更被每一层管理人员所珍视。随着您和客户的学习,您使许多假设无效,并且您绝对必须不断地重新估计。
不要在前面做。如果您的合同要求您提前完成,请确保您有变更控制条款,并告诉客户您绝对会在前进的过程中进行更改。正如您和客户所了解的那样,你们都必须做出改变。