购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

敏捷之书

起初,工程师创造电脑及软件。软件混沌而糟糕,用户脸色阴暗。工程师说“要结构化”,于是就有了结构化。

实际上,结构化得有些过分了。

在过去的五六十年,许多软件工程师一直关注着软件质量的巨大起伏,这些软件质量的好坏取决于软件开发人员所采用的即兴开发方法。于是,他们着手创世,并最终得到了许多正规方法。软件工程专业 应运而生。软件工程认为软件开发是一种工程活动。由此,它引入了许多模型、方法、框架、语言、模式和技术,以期帮助程序员制造出更好的软件。但奇怪的是,多数项目仍旧不尽人意。而且更多的时候,这些正规方法徒生了官僚主义。通常,软件产品开发周期很长,并且需要大量的文书工作,以至于那些“确定的”需求在系统交付之前早已经发生了变更。与此同时,反而是一些由充满激情和遵守纪律的程序员所组成的小团队交付了高质量的产品。即使只有些特设的流程,并且需求在不断变化,他们仍以较低的成本和较短的时间完成了任务。创造过程虽然产生了恐龙,然而小小的蚂蚁却能满载而归。

上世纪九十年代初,“快速应用开发”(RAD) 方法诞生了。这种方法结合了重量级软件工程的一些正式的技术(比如变更委员会、检查和度量的标准)和来自许多成功项目团队的切实实践(比如原型、阶段性交付、频繁的客户合作)[McConnell 1996]。这种正规与特定开发方法的联姻繁荣了一系列以“轻量级”命名的软件开发方法,它们包括Evo (1988)、Scrum (1995)、DSDM (1995)、水晶方法(Crystal) (1997)、极限编程(XP) (1999)、特性驱动开发(FDD) (1999)、实效编程 (1999)以及自适应软件开发 (2000)。

如同寒武纪生命大爆发,一时之间,针对轻量级软件开发的方法、文章、图书和研讨会如雨后春笋般大量涌现。因此,有些专家希望能将这场运动的领导者组织起来开一次会。2001年,他们聚集于美国犹他州的一个滑雪胜地。在这次聚会上,他们决定用“敏捷”来替代“轻量级”,由此,敏捷宣言 横空出世(参见图2.2)。

图2.2 敏捷软件开发宣言

很多人认为,敏捷宣言是对那些正式的、按部就班的官僚化方法的反击。然而,几乎没有人意识到它也反对软件开发世界中那些不和谐的地方,比如无纪律性的程序员,混乱的流程,低劣的质量产品。这场新运动的领军人物在结构化和非结构化、秩序和混乱之间发现了一条中间路线。从某种程度上讲,这是一次英勇无畏的尝试,满心希望能够回归早期激情澎湃的开拓岁月,摈除因无政府状态所引起的惯常的种种恶行。

一些敏捷大师随后组建 敏捷联盟 。这是一个非盈利性组织,旨在向全球推广敏捷软件开发。而后,一个汇集会议、咨询、图书、杂志的新兴生态系统诞生了。软件开发开始变得敏捷,Agile以大写的A开头,象征着它比一整套的软件开发实践更深刻。就如同芸芸众生,项目通过探索和确认在秩序和混乱之间生存下来,而敏捷成为一种生活方式(Way of Life)。 5vP++ZSrLMY4P23qUoCmp4uQg1FhZReKiWaOh1oKUNMF7by0hqij02HVnOT4M9vQ

点击中间区域
呼出菜单
上一章
目录
下一章
×