要想追溯“敏捷”这个词真正的来源,还要说是2001年2月,17位参与者参与敏捷宣言会议http://agilemanifesto.org/
这17位参与者在各自不同的领域用不同的方法实践“轻量级开发”,他们聚集在一起,希望给“轻量级开发”起一个更共同更悦耳的名字,故有了“敏捷”
这些人主导了现代敏捷的主要实践方法:
Kent Beck, Ward Chunningham, Ron Jeffries, James Grenning, Robert Martin, Martin Fowler:极限编程(XP)
Jim Highsmith: Adaptive Software Development
Alistair Cockburn: JIT methodology, 水晶开发(Crystal Clear)
Jeff Sutherland, Ken Schwaber, Mike Beedle: Scrum
Jon Kern: 特征驱动开发(Featured-Driven Development)
Arie Van Bennekun: DSDM
Andy Hunt, Dave Thomas: The Pragmatic Programmer
在这次会议上,他们并非希望给各种敏捷实践建立一个规范的流程,而是希望通过建立敏捷联盟(网址www.agilealliance.com)来寻找一些共同的敏捷实践原则,这些原则包括4大项12小项:
四大项原则:
个人和交互超越过程和工具
可运行的软件超过易于理解的文档
客户协作超过契约协商
响应变化超过遵循计划
十二小项原则:
1、具有最高优先级的事情是通过尽早和尽量频繁的发布有价值的软件来满足客户的需要。
2、尽量频繁发布可用的软件,从几周一次到几个月一次不等,如果可能应该优先考虑更短的。
3、可运行的软件是过程的主要度量者。
4、非常欢迎需求变更,即便是在项目开发晚期的变更。敏捷过程就是利用不断变化来给客户带来竞争优势。
5、在整个软件开发过程中业务人员应该与开发人员在一起工作。
6、围绕着个人(项目组员)动机创建软件。给他们提供环境,满足他们的需要,相信他们能完成任务。
7、最有效和最高效的信息传递和与团队相处的方法是面对面的对话。
8、最好的架构、需求和设计出现在自组织的团队中。
9、不断地关注能加强敏捷的优秀技术和好的设计。
10、敏捷过程促进可持续开发。赞助商,开发者和用户应该能够保持一致的步伐。
11、简单——使剩余工作最大化的艺术——是非常重要的。
12、在有规律的间隔中,团队反思如何才能更有效率并响应地定基调和调整他们的行为。