我们把对实践中的敏捷开发过程进行总结和归纳,我们提出了六个更具可操作性的原则:
1、以小周期代替大周期:
瀑布模型、螺旋模型、快速原型等方法都有比较长的工程周期,常常要经历立项、需求、架构设计、详细设计、开发、测试等大的工程周期,耗时很长,很难看到完成的日子,更别说开什么庆功会了;敏捷开发强调使用小周期:需求、设计、开发、测试、发布,快速实现、快速验证、快速应用;
2、以小版本代替大版本:
过去我们一般是在规划阶段规划为若干个大版本,一次性整体实现,大版本实现周期长、工程复杂,由于工程整体实现技术复杂、工程周期长,风险很大,常常出现延时和夭折;敏捷开发提倡在规划阶段就根据关键成功因数和团队工程能力规划为多个小版本,团队通常情况下只需要稍加努力就能够完成,大部分情况下版本如期发布,这样更有利于激励团队,使团队保持良好的战斗力;
3、以重构为基础,系统高度组件化、接口化、可扩展,强调契约设计;
敏捷欢迎变化,甚至有可能推倒重来,而能实现这一特征的唯一法门就是不断重构,在重构中融入变化甚至是结构性的变化,重构是敏捷开发的常态行为;
敏捷开发实现的系统是低耦合、可扩展的,系统被打散为多个不同职责的组件,协作完成整个功能;组件是责任的实体,组件之间通过公开的接口交互,契约是组件间交互行为的语义表达;
4、以变化适应变化:
敏捷强调小周期、小版本、快速重构,所以新需求总能很快找到并入系统的时机,新需求一旦提出即可进入开发视野,根据重要性排除优先级,即刻设计实现并测试发布;敏捷也重视团队中人的变化,团队犹如一个变化的泡泡,不同阶段具有不同的形态,由于周期短,人员得到快速调整的时机和机会;
5、重构重视人的能动性,强调用户参与;
小版本规划的功能少,容易实现,容易发布,使团队很快就能尝到成功的喜悦,团队在成功的激励下走向下一个成功,这个行为具有很强的社会心理学基础:成功激励成功;
心理学实验表明:一个人面临的挑战强度太低或者强度太大,都会士气底下,进而不重视;挑战强度太低,轻而易举的取得成功,两三次之后就会提不起兴趣了;挑战强度太大则很难看到成功的希望,容易自暴自弃,也会造成士气低;根据团队的能力制定适度的版本规划是很重要的,它能保持团队良好的士气,使成功的喜悦迷漫在成员的心头;
用户在表达其构想时常常无法完整的表达出来,唯有我们做出来演示给其看时,他才会说:“哦,就是这样子;这里还需要改一下!我想法是这样的。。。“,用户参与能清晰、有效的获取其真实意图,通过不断的确认、修改而实现用户满意的交付件;
6、发布是一件轻松愉快的过程;
敏捷开发提倡尽早交付,也由于采用了小周期、小版本,开发过程中不断的有版本构建出来用于测试、验证、评价、归档,因为发布的过程仅仅只是从众多的版本中挑选一个合适的版本交付给最终用户使用;这样的状态下,发布过程是非常轻松愉快的;