自1968年软件危机【Naur et al 1969】一词出现以来,软件产业从业者和学者一直在探讨如何将传统行业中的工程方法应用于软件行业,希望软件的开发过程以一种受控、可预测的方式进行,并因此出现了软件工程这一学科。40多年来,软件从仅仅应用于国防军事和航空航天等高端领域,逐渐渗透到几乎所有的产业,甚至已经像水和空气一样成为人类日常生活和工作不可或缺的元素。相应地,软件开发领域相继出现了许多不同的开发过程和模型,从瀑布式模型、螺旋式模型,到CMMI软件能力成熟度评估和改进框架等。这些过程模型和框架无一例外地都是基于完美的结果产生于精确控制的过程这个理念,对软件开发生命周期中的计划与执行都十分重视,按计划、不超预算、实现了预定的需求规格范围、产出物的质量可接受,成了一种公认的、软件开发项目成功的标准。
对于最早利用计算机软件的国防军事和航空航天等复杂的、需要大量预先设计的应用领域来说,上述模型或项目成功标准依然成立。但是就数量上来说,在今天,更多的软件项目是服务于面对市场激烈竞争氛围的企业。能否快速响应市场的变化、调整自己的经营和管理方式,是决定一个企业能否生存和发展的根本因素,在这种情况下,已有的软件开发过程和模型就显得有些滞重,从而造成企业的信息化系统研发经常不能满足其日新月异的经营方式所需。为此,从20世纪90年代中后期开始,在企业应用软件开发的圈子里,陆续出现了一些轻量级的开发方法【Fowler 2004】,这些方法以企业业务价值最大化为目标,快速适应企业的业务变化,并尽量缩短企业信息系统从规划到初次投入使用的时间周期。在2001年的一次学术讨论会上,这些方法的创作者和拥护者们总结了这些方法的共性,发表了敏捷宣言,并将这些方法统一到敏捷这一面旗帜之下[Agilemanifesto 2001】。
最近十几年来,很多敏捷软件开发方法的成功案例,终于使之从草根一族渐渐走入了主流软件开发方法学的厅堂:CMM/CMMI的核心发起单位卡耐基一梅隆大学的SEI,也专门有研究报告,以论证敏捷方法和CMMI的兼容性和互补性[Glazer et al 2008】;兼并了著名的软件工程工具厂商Rational的业界大鳄IBM,也宣称推出自己的敏捷软件开发解决方案[IBM 2009]。国内敏捷软件开发的起步虽然较欧美晚,但在经济全球化的今天,敏捷热潮也逐渐从国外传到国内,尤其是随着业界领导厂商之一的ThoughtWorks公司进入中国市场,以及一贯致力于敏捷方法推广的IT专业媒体网站InfoQ中文站的开通,使得敏捷方法在中国也正以燎原之势快速地传播。通过其官方网站不难看出,国内最大的软件企业华为公司也已经开始采用这种方法【Huawei 2009】。