本节书摘来华章计算机《软件工艺师:专业、务实、自豪》一书中的第1章 ,第1.1节,[英]桑德罗·曼卡索(Sandro Mancuso)著 爱飞翔 译, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
第2章
敏捷软件开发
2001年2月,软件业中十七位有影响力的人物在美国犹他州的滑雪胜地相聚,讨论替换当时笨重且基于文档的软件开发方式。他们每个人都有不同的软件开发经历,所以觉得应该聚在一起,分享各自的心得。他们想要在相互交流的过程中提出一些新的软件开发方式,更好地交付软件项目。
这十七位参与者是:Kent Beck、Mike Beedle、Arie van Bennekum、Alistair Cockburn、
Ward Cunningham、Martin Fowler、James Grenning、Jim Highsmith、Andrew Hunt、Ron Jeffries、Jon Kern、Brian Marick、Robert C.Martin、Steve Mellor、Ken Schwaber、Jeff Sutherland和Dave Thomas。
他们展示了各种开发方式和技术,如极限编程(Extreme Programming,XP)、Scrum、动态系统开发模型(Dynamic Systems Development Model,DSDM)、自适应软件开发(Adaptive Software Development)、Crystal、特性驱动开发(Feature-Driven Development)及实用编程(pragmatic programming)等。
多番讨论过后,《敏捷软件开发宣言》(Agile Manifesto)和敏捷联盟(Agile Alliance)诞生了。
敏捷软件开发并不是单一的概念,它包含各种开发方式和开发技术,在特定的情境之下,这些方式与技术使得开发团队及公司能够适应持续变化的软件项目,并减少相关风险。敏捷软件开发原则与开发方式大致可分为两组:面向流程的与面向技术的。
本章要讨论敏捷软件开发的含义,也要介绍《敏捷软件开发宣言》以及很多机构在采用敏捷软件开发时所遇到的问题。