敏捷建模(Agile Modeling,AM)是一种态度,而不是一个说明性的过程。AM是敏捷建模者们坚持的价值观、敏捷建模者们相信的原则、敏捷建模者们应用的实践组成的集合。AM描述了一种建模的风格。当它应用于敏捷的环境中时,能够提高开发的质量和速度,同时能够避免过度简化和不切实际的期望。
AM是对已有方法的补充,而不是一个完整的方法论。AM的主要焦点是在建模上,其次是文档。AM并不是要反对文档。文档的创建和维护都会增大项目涉众的投资。敏捷文档尽可能的简单,尽可能的小,目的只集中在和目前开发的系统有直接关系的事情上,充分了解受众的需要。
AM的价值观包括了五个价值观:沟通、简单、反馈、勇气、谦逊。另外,AM定义了一系列的核心原则和辅助原则。如下:
主张简单:最简单的解决方案就是最好的解决方案;
拥抱变化:需求时刻在变要求人们对于需求的理解也时刻在变;
可持续性:你在开发的时候,你要能想象到未来;
递增的思想:你只要开发一个小的模型,或是概要模型,打下一个基础,然后慢慢的改进模型;
令投资最大化:不浪费资源;
有目的的建模:要确定建模的目的以及模型的受众,在此基础上,再保证模型足够正确和足够详细;
多种模型:开发软件需要使用多种模型,因为每种模型只能描述软件的单个方面;
高质量的工作:没有人喜欢烂糟糟的工作;
快速反馈:从开始采取行动,到获得行动的反馈,二者之间的时间至关紧要。和其他人一共开发模型,你的想法可以立刻获得反馈;
软件是你的主要目标:软件开发的主要目标是制造出满足需要的软件,而不是制造无关的文档;
轻装前进:模型不应太复杂,模型越复杂,越详细,发生的改变极可能就越难实现;
内容比表示更重要:一个模型有很多种的表示方法,不一定是用建模工具软件;
开放诚实的沟通:人们需要能够自由的提出建议,而且人们还应该能够感受到他们是自由的;
……..
极限编程(Extreme Programming,简称XP)是由KentBeck在1996年提出的。极限编程是一个轻量级的、灵巧的软件开发方法,是一种控制开发过程的思想,不是定义一个具体的开发流程。它的基础和价值观是交流、朴素、反馈和勇气;XP认为任何一个软件项目都可以从四个方面入手进行改善:加强交流;从简单做起;寻求反馈;勇于实事求是。
XP是一种近螺旋式的开发方法,它将复杂的开发过程分解为一个个相对比较简单的小周期;通过积极的交流、反馈以及其它一系列的方法,开发人员和客户可以非常清楚开发进度、变化、待解决的问题和潜在的困难等,并根据实际情况及时地调整开发过程。
XP要求项目团队遵循13个核心实践:
团队协作(Whole Team)
规划策略(The Planning Game);
结对编程(Pair programming)
测试驱动开发(Testing-Driven Development)
重构(Refractoring)
简单设计(Simple Design)
代码集体所有权(Collective Code Ownership)
持续集成(Continuous Integration)
客户测试(Customer Tests)
小型发布(Small Release)
每周40小时工作制(40-hour Week)
编码规范(Code Standards)
系统隐喻(System Metaphor)
总而言之:
‘敏捷’这个词是指软件开发的一种理念。好些个方法都可以归入敏捷型旗下,如极限程序设计(XP),Scrum,精悍开发(Lean Development)等等。每种方法都有自己特定的思路、社群和领军人物。它必须要遵循一些相同的原则。每个社群也从其他社群中借鉴相互的思想与技术。也有许多人士在不同的社群间来来往往,因此把不同的思想传来播去。所有这些都让敏捷社会成为一个复杂而动态的生态系统。