至少从 2007 年(敏捷实践背后的“真实期权”),Chris Matts 和 Olav Maassen 就在敏捷社区讨论过真实期权,一种基于金融期权数学的决策决定流程。这个观点也不完全是新的——Kent Beck 在 1999 年他出版的“白皮书”《解析极限编程》中就谈到过真实期权。现在 Matts 和 Maassen 通过一篇精益和真实期权的帖子,将其确定在敏捷社区的 Lean 部分,指出根据他们的经验,真实期权的应用有益于精益实现。对于真实期权所带来的价值,其他很多人也发表了自己的看法。
作为一个投资银行家,Matts 认识到,因为敏捷中内含的期权思想,它要比瀑布流程方法有更少的风险。但是当他试图用金融数学在一个敏捷项目中衡量期权的价值时,却发现这不可能。然而,他却发现了一种简单的模型,使他可以比从前更方便地挖掘出内含的期权。这三个真实期权模型中的规则是:期权有价值;期权会失效;除非你知道原因,不要过早承诺。
有了真实期权,Matts 和 Maassen 建议我们要尽可能推迟去做决定,而要去收集信息,创建期权,并理解它们什么时候失效,从而可以让我们优化决策决定流程,将做出坏决定的风险降低到最小限度。对于在精益软件中应用真实期权,作者提到了下面三个对精益改进的地方:
- 精益箴言:用真实期权替代“推迟决策到职责要求的最后一刻”。“除非你知道原因,绝对不要过早承诺”引导我们多去收集信息,从而帮助我们早些做承诺,减少风险和复杂性。
- 精益提倡推迟决策到“职责要求的最后一刻”,这对了解什么时候做决策没有提供多少帮助。在真实期权中,条件很明确,指出什么时候应该做承诺,减少了不确定性。
- 尽管精益原则已经被应用在软件开发中,作者体会到这和在制造业中应用这些原则是不同的。比如:客户从丰田订购(Pull)一辆汽车(一个精益核心概念),但是却给(Push)软件开发团队很多功能需求。他们通过特性注入(一种基于真实期权和 Kolb 学习模型的敏捷分析技术,它能帮助确定需要交付的指定价值的最小功能集)减少了复杂性,做到了第三次改进。
精益软件开发思想领导者 David Anderson 此前对在软件开发中应用真实期权有所怀疑,提到“现实情况是:作为一个行业和职业,我们距离正确度量和评估这些数据还很遥远。”(需要计算真实期权)。但是,一年以后,他转而说“真实期权会改变一切”,这还激发了他在“为市场风险排序和计划”方面的思考。显然,现在他已经完全接受了这个方法:在 InfoQ 的 QCon 旧金山 2009 大会上,他也提到“精益拉式系统和真实期权理论,为在技术项目领域管理整体业务风险提供了新的途径。”
其他人也提供了一些信息:XP Game 的联合创始人 Pascal Van Cauwenberghe 已经创建了真实期权空间游戏,并在AgileCoach.net 站点上提供了使用它的全部指南。
这个话题激起了人们的兴趣,现在社区开始探讨敏捷、精益、看板真实期权、功能注入和行为驱动设计(译者注:请参考InfoQ 中文站“拉动的力量:一种新的软件生命周期”一文)以及这些概念之间的组合关系所能产生的潜力了。对于想跟踪这个话题的朋友,Olav Maassen 已经建立了一个关于真实期权的邮件讨论组。
欢迎访问InfoQ 中文站上更多关于真实期权和特性注入的内容。
评论