论敏捷开发方法

敏捷代表着高效和灵活,敏捷方法就是在软件过程中所采用的轻型的、有效的方法。在重型方法中,开发队伍在一些不必要、重复的中间环节上浪费了太多的精力,而敏捷则避免了这种浪费。敏捷方法论提倡的一个“刚好够用”的思想,敏捷方法是响应变化的,敏捷方法其将人看作是项目成功的主要驱动力。敏捷方法的核心理念:适应和以人为本。

一般敏捷方法综述
敏捷方法是一组软件开发方法的统称, 其中包括SCRUM 方法,水晶方法(Crystal Methods), 特征驱动软件开发(Feature DrivenDevelopment, 简称FDD), 自适应软件开发(Adaptive SoftwareDevelopment, 简称ASD), 以及最重要的极限编程(eXtremeProgramming,简称XP)。极限编程是一种轻量、高效、低风险、柔性、可预测、科学而充满乐趣的软件开发法,是由Kent Beck 在1997 年提出的。Kent Beck 在九十年代初期就一直共同探索着新的软件开发方法,希望能使软件开发更加简单而有效。Kent 仔细地观察和分析了各种简化软件开发的前提条件、可能性以及面临的困难。1997 年,Kent 终于在Crysler 公司的C3项目(一个职员薪金管理系统)中成功引入了新的软件开发方法—XP。极限编程不仅是一个轻量级的、灵巧的软件开发方法,同时它也是一个非常严谨和周密的方法。它的核心价值是“沟通、简单、反馈和勇气”,即任何一个软件项目都可以从四个方面入手进行改善:加强沟通交流,从简单做起,寻求反馈,勇于实事求是。XP 是一种近似螺旋式的开发方法, 它将复杂的开发过程分解为一个个相对比较简单的小周期;通过积极的交流、反馈以及其它一系列的方法,开发人员和客户可以非常清楚。开发进度、变化、待解决的问题和潜在的困难等,并根据实际情况及时地调整开发过程。之所以称其为极限,是指对比传统的项目开发方式,XP 强调把它列出的每个方法和思想做到极限、做到最好,而其它XP 所不提倡的,则一概忽略,如开发前期的整体设计等。

敏捷方法的特点
(1)敏捷方法基于适应而非预测人们不可能在软件开发之前准确地把握当时的需求及其之后的走势。根据自动控制理论,自适应系统是一个强反馈系统。在软件开发中,需求的获取和分析、软件设计、编码等实质上均为前馈环节,真正的反馈环节应该是用户对可运行软件的使用以及在使用中与实际需求的比较判断。基于适应性特点,敏捷方法通过快速、短迭代式的开发,不断产出和演化可运行软件,加强项目有关人员的信息交流等手段来提高反馈的速度、力度和准确性。在软件过程改进方面,敏捷方法通过对实际反馈信息的度量,根据用户满意度(时间和质量的权衡)进行微调。(2)敏捷方法是以人为导向而非过程导向软件开发中,人的因素是第一位的。人是过程的主体,而人的工作承受力是有限的,任何超出人正常承受力的过程必然导致过程结果的偏离,这一点在注重过程改进的方法中往往被忽视或低估。敏捷方法认为, 软件开发中的绝大部分是需要创造力的设计工作,软件人员是创造性的工作者,有主观上做好工作的意愿,不同于大工业时代生产流水线上被动性的工人,因此,在管理理念上应注重领导和协作,而非命令和控制,充分发挥软件人员的能动性和创造力。敏捷方法特别强调软件开发中相关人员间信息交流,而人特别擅长面对面的交流,面对面交流的成本要远远低于文档交流的成本。

敏捷方法的适用范围
(1)需求不确定
(2)有责任感和积极向上的开发人员
(3)用户容易沟通并能参与
(4)小于50 人的项目组

原文地址:https://www.cnblogs.com/wangdan/p/3611455.html