这些天,你老是听到“敏捷开发”这个词。使用敏捷方法,团队能比用传统方法更快把事情做好。它也能让顾客更快乐。它还能让人们更喜欢自己的工作。毫无疑问,敏捷开发已经改变了软件开发的历史,而且,有许多专家相信,这种方法已经蓄势待发,即将从IT业延伸到其他行业中去。
这就很讽刺了。它本来就不是在IT业诞生的。
有人认为敏捷原则起源于佛郎西斯·培根在1620年发表的关于科学方法的论述。更可靠的起源或许是20世纪30年代,当时,贝尔实验室的物理学家和统计学家沃特·休哈特(Walter
Shewhart)开始将PSDA循环(计划-执行-检查-处理)应用于改善产品和工作流程。休哈特将这种循环增长的改善方法教给了他的实习生威廉·爱德华兹·戴明。后者在二战后持续几十年的时间里在日本大力推广这种理念。丰田公司聘用戴明培训了数百名经理,最终将他的理念发展成为著名的“丰田生产方式”,而这正是今天“精益思考”的主要思想来源。这种循环增长的改善方法也是20世纪50年代X-15高超音速飞行器项目成功的一个主导因素。
1986年,我们一位成员(Takeuchi)与合著者Ikujiro Nonaka在《哈佛商业评论》上发表了文章《The New New Product Development Game》。通过研究比竞争对手更快实现成功创新的那些企业,两位作者发现了一种团队取向的工作方法,正是这种方法改变了很多产品的设计和改进,比如富士施乐(Fuji-Xerox)的复印机、本田的汽车引擎和佳能的相机。产品改进的传统方法是“接力赛模式”,一群专家完成一个阶段的内容,再将它移交给另一群专家。而这些成功的公司采用的是“橄榄球模式”,这是由Takeuchi和Nonaka命名的,在这种模式下,团队以整体的方式进行改进,问题会在团队内部得到解决。
1993年,我们的另一位成员(Sutherland)接受了一向看似不可能的任务:一家软件公司(Easel
Corporation)需要在六个月内用一款新软件替换他们的老产品。Sutherland已经掌握很多改善的方法,例如快速应用改进、产品导向设计、PDSA循环和臭鼬工厂。他希望在公司中级管理层中营造出像臭鼬工厂那样的企业文化,将组织分工和整体合作的好处结合起来。所以,他开始竭尽全力学习一切能最大化组织效率的知识。在读了很多论文、听了无数生产管理专家的演讲后,他发现,自己被一些刺激的想法吸引了。
贝尔实验室在《Borland Quattro Pro team》上发表的文章说,更短的团队日常会议能显著提高效率。不过,对于Sutherland来说,最重要的是他发现了Takeuchi和Nonaka的橄榄球原则,尽管它的应用领域是工业生产,而不是软件。Sutherland借鉴了很多篇《哈佛商业评论》文章的核心思想,再加上实际应用经验,他就创造了一种新的软件开发方法。为了向橄榄球原则致敬,他将这种方法命名为争球原则。争球原则使他按时完成了这项看似不可能的项目,并且没有超出预算,BUG比先前发布的任何一个版本都更少。之后,他和长期共事的Ken
Schwaber合作将这种方法系统化,并在1995年第一次将争球原则公布于众。
当然了,并不是只有Sutherland和Schwaber在寻找创新方法。当前正值创新时代,翻天覆地的新技术使慢节奏的竞争者岌岌可危。创业者和守成者都要在这个陌生而动荡的环境下找到比对手更好的适应措施。软件正在成为几乎每一个商业功能都不可或缺的一部分,众多富有创新精神的软件开发者都在寻找更优秀的编程方法,用以加强软件的通用性。
2001年,17位自称“无组织主义者”的开发者聚集在犹他州的Snowbird分享各自的想法。Sutherland和争球原则的其他支持者们也在其中。不过,这群人中还有很多人支持其他创新法则,包括终极编程(XP)、水晶法(crystal)、通用软件开发(ASD)、特征驱动开发(FDD)和动态系统开发法(DSDM)。所有这些方法都被认为是轻量级的,因为它们的规则更少、更简单,能做出快速适应,改进编译环境。没有几个与会者发现“轻量级”这个术语有多漂亮。
尽管他们共识很少,但最后还是为这项运动起了一个新名字:敏捷。这个词由一位与会者提议,此人读过《Agile
Competitors and Virtual Organizations: Strategies for Enriching the Customer》。这本书列出的100家公司都用创新方法适应了更多的新市场,包括ABB,Federal
Express,Boeing,Bose和Harley-Davidson。敲定下名字后,与会者接着又达成一致意见,发表了《敏捷软件开发宣言》,列出了四条获得公认的核心规则。在这项会议的后续议程和之后的几个月里,他们又发展出12条操作性规则,称为《迅捷宣言规则补遗》。从2001年开始,所有符合这些规则的软件开发方法,都被叫做敏捷手段。
Snowbird会议公布了敏捷开发的纲领后,这项运动迅速传播开来了。他们将文件发布到网上,并邀请其他人签名支持。这一年稍后的时间里,该组织的大部分创始人和一批新拥趸又开了一次会,讨论如何宣传敏捷开发。所有人都同意为这个话题写作或发言。一些与会者希望能有一个更长久的工作组织,于是他们成立了非营利组织“敏捷联盟”来支持这项运动。现在,敏捷联盟已经拥有接近3万会员和定期捐款人。
与此同时,敏捷开发原则依然在发展。在19世纪80年代晚期和90年代早期,来自MIT的研究者就已经开始研究日本的工业生产系统,尤其是丰田公司的生产体系。为了描述该系统提升效率的方法,他们提出“精益”这个概念,指通过尽量避免非平衡工作流和破坏性过载来减少浪费。尽管精益原则没有出现在Snowbird的敏捷开发系统中,但正式的精益和看板软件开发系统还是在20世纪初期出现了。最初,一些激进的敏捷主义者拒绝承认这些方法也属于敏捷开发手段。但是精益原则的支持者们将他们的注意力集中在客户合作上,最终,使用敏捷原则的人也开始接受精益原则、看板系统及混合方法(比如争球看板系统和精益争球原则),并将这些方法看作是正式的敏捷开发原则应用方法。
成功总有很多前因,而敏捷发开也留下了丰富的遗产。尽管敏捷开发原则的使用者会为各自流派激情辩论,有两点却毋庸置疑:第一,敏捷开发已经应用到信息技术以外的领域了;第二,敏捷开发的衍生版本将提升每个行业每个方面的创新进程。