敏捷给产品开发带来的价值已经日益被软件开发业界所认可,从几个人的创业公司到几十万人的跨国企业,越来越多的产品团队采用敏捷的方式收集分析需求、开发产品、乃至部署运维。然而,传统的软件合同与敏捷开发方式相互冲突,往往会导致产品失败或大大降低敏捷给产品开发带来的价值。在 11 月 7 日召开的 Agile Singapore 大会上,来自挪威 PROMIS 公司的 Trond Åsheim 展示了一种适合敏捷开发的合同模式。
Trond 首先回顾了传统的两种软件开发合同模式:固定价格(Fixed Price)和时间材料(Time&Material)。
固定价格模式将风险全部转给供应商,因此需求越抽象、需求变更越频繁、需求范围越模糊,供应商的风险越高。为了降低风险,供应商势必要求客户在开发启动前就明确需求范围、提供详尽的需求描述、控制需求变更频度——这样的做法毫无疑问是与敏捷价值相冲突的,所以毫不奇怪基于固定价格模式的敏捷开发很容易以失败告终。
时间材料模式则将风险全部放在客户方,容易导致客户方对于供应商持有很高的不信任感,这也是不利于客户协作的。
Trond 介绍了适合敏捷开发的合同模式:目标价格(Target Price)。在目标价格的基础上,客户和供应商以预先商定的比率(一般而言 50:50)共同承受收益或亏损。Trond 用图表很好地比较了这三种合同模式。
Trond 列举了目标价格模式对敏捷开发友善之处:
- 风险由客户和供应商均摊;
- 供应商可以在较大的不确定性的基础上估算成本、制定解决方案;
- 客户不必从一开始就提供详尽的需求;
- 供求双方均不需在投标阶段花费大量时间和资源制作规格说明书、详细设计和计划(无论是否敏捷开发,这些东西往往在开发过程中很快就失去其作用,反而持续束缚团队开发出真正有用的产品)。
Trond 介绍了一个在挪威 IT 业界行之有年的基于目标价格模式的合同模型:PS2000 Agile。这个合同模型曾经于 2008 - 2011 年帮助一个一亿元挪威克朗的项目取得成功。具体介绍可以参看这里。
此外,Trond 也谈到了敏捷合同应该具备的特点:
- 在合同期间能够很好地应对客户不断变化的商业环境和冲击;
- 在开发期间更灵活地处理需求和范围变化;
- 引入更多专职于与团队协作的客户;
- 减少冗员,使计划、控制和跟踪更加有效率;
- 通过每日站会持续跟踪进度和,降低不确定性;
- 鼓励团队自我组织。
关于 Agile Singapore 大会:这是由 Rally Software 和 Odd-e 联合冠名赞助的在新加坡举办的第一届敏捷盛会,于 2013 年 11 月 7 - 8 日在新加坡滨海湾金沙大酒店会议中心召开,Kent Back, Jim McCarthy, David Hussman 等敏捷思想领袖出席大会并做主题演讲。
评论