如果我们谈论中大型项目,则合同必须具有明确定义的安全触发器。也就是说,客户希望非常确定,如果我们同意在时间=T,预算=B和范围=S结束项目,我们不会以时间=T×2,预算=B×3或范围=S/2结束。
另一方面,作为交付产品的公司,我们不希望项目意外结束。也就是说,如果在某些迭代之后客户说:“现在我看到这实际上是我们所需要的全部。我们现在停止。”而项目计划了另外两个月,那么我们就会有没有计划工作的人员。如果三到六个人不是很大的问题,那么15到25个人可能是一个真正的问题!
然而,我没有找到任何具有安全功能的合同的真实示例,可以允许项目在完全敏捷的方式下执行(无论是否向客户声明)。我在许多论坛上发现的标准说法是,与客户交谈,向他解释这是更有效率的工作方式等,但这既不能说服我,也不能说服我的管理层。并不是我们不相信敏捷实际上是更好的做事方式。只是安全触发器中存在的漏洞是如此明显,以至于我们的任何客户都不会接受它,并且我们也不喜欢它们(漏洞,而不是客户;)。
请不要提出“它可能会这样工作……”——我已经读了大量相关信息。我只对“对我们而言,它是这样工作的”感兴趣。没有疑问,请跳过其中所有自信的信息。
另外,据我所知,标准的迭代、特征驱动方法建议客户在每个迭代之后付款(迭代次数),并且在任何迭代之后,客户和项目执行者都可以停止项目,而不必过多地谈论后果,而是说“它无论如何都会失败,所以越早越好”(这是正确的,但在签订合同时并不是非常有帮助)。