所以若将敏捷还是定位在《Manifesto for Agile Software Development》中的“软件”,那么大致可以这样理解:敏捷是一套面向商业竞争成功的适应能力和响应能力的价值和原则,并且会一直演进,思考的是如何更好地开发软件。它是组织(包括员工)品质的反映,也体现为了在动态环境中获益而创造变革和响应变革的能力。支持敏捷宣言的价值与原则的实践方法,被称作敏捷方法,如XP、Scrum和Lean等。敏捷方法中包含了一些良好的做法,称作敏捷实践。比如结对编程就是XP的实践。敏捷方法的三个重要的特征:以人为本、自适应和持续改进(含人、产品、过程及工作环境)。软件团队可以实施敏捷(或者说具有敏捷之形)如Scrum、XP等,但这些都是具体的敏捷方法,他们通过采纳实践——敏捷实践,如持续集成、测试驱动开发和自动化测试等,也许有助于推进敏捷实施。然而,他们要么掌握敏捷精髓,要么不能,二者必居其一。
那么,何谓掌握敏捷精髓?敏捷不等于敏捷方法如XP,也不是敏捷实践如测试驱动开发。它表示组织和人员为了在竞争中取得商业胜利,快速交付具有经济价值的产品和知识,为适应环境自我调整、对事情或变化及时做出响应、不断学习与自我完善——这就是掌握敏捷精髓。换句话说,成为敏捷不仅仅是决定采用“指定的”敏捷方法如Scrum、XP和/或敏捷大师们所描述的这样或那样的敏捷方法或敏捷实践,需要改变观念或态度,要把敏捷价值观与原则变成自己的思想和行为方式,通过不断试验,不断反思和总结经验,继而调整和自适应。也就是说,要实践,还要思考和自适应。
敏捷反应的是能力,体现的是思维,思考的是如何更好地开发软件。敏捷则是由价值--原则--实践组成一个相对完整的体系。
题外话
敏捷需要许多纪律和思考,不是每个人都可以进入敏捷思维。但是它是一种非常自然的工作方式,许多人享受它。我想是否将来某一天每个人都敏捷?不!基于同样的原因,人们有不采纳的权利。因为没有唯一的方法,所以,我们要做任何对我们有效的事!