首页 理论教育 敏捷开发方法:以人为核心、迭代渐进的软件开发方法

敏捷开发方法:以人为核心、迭代渐进的软件开发方法

时间:2023-11-06 理论教育 版权反馈
【摘要】:敏捷方法是一种以人为核心、迭代、循序渐进的开发方法,是一组软件开发方法学的总称。需要注意的是敏捷方法并不排斥文档,在敏捷开发中直到迫切需要并且意义重大时才进行文档编制,编制的内部文档应尽量短小且主题突出。敏捷方法强调开发团队与用户之间的紧密协作、面对面的沟通、频繁交付新的软件版本、紧凑而自我组织型的团队等,也更注重人的作用。

敏捷开发方法:以人为核心、迭代渐进的软件开发方法

敏捷方法(Agile Development)是一种以人为核心、迭代、循序渐进的开发方法,是一组软件开发方法学的总称。这些方法学包括:极限编程(eXtreme Programming,XP)、Scrum、自适应软件开发(Adaptive Software Development,ASD)、水晶方法(Crystal)、特性驱动开发(Feature Driven Development,FDD)、动态系统开发方法(Dynamic Systems Development Method,DSDM)、测试驱动开发(Test-Driven Development,TDD)、敏捷数据库技术(Agile Database Techniques,AD)、精益软件开发(Lean Software Development)等。虽然这些过程模型在实践上有所差异,但都是遵循了敏捷宣言(图2-5)的基本价值观

图2-5 敏捷宣言

·个体和交互胜过过程和工具:人是软件项目获得成功最为重要的因素,合作、沟通以及交互能力要比单纯的软件编程能力更为重要,团队的构建(包括个体、交互等)要比项目环境(包括过程、工具)的构建更为重要。当然,合适的过程和工具对于成功来说非常重要,但不应过分夸大过程和工具的作用。

·可以工作的软件胜过面面俱到的文档:与重文档驱动型的软件开发不同,敏捷方法更强调快速交付可使用的软件版本。这一点和螺旋模型类似。通过多次交付的软件版本迭代,使软件能够尽量贴合用户需求。需要注意的是敏捷方法并不排斥文档,在敏捷开发中直到迫切需要并且意义重大时才进行文档编制,编制的内部文档应尽量短小且主题突出。

·客户合作胜过合同谈判:与客户是双赢的关系而不是输赢的关系。客户的参与不仅是在需求定义和最终的项目验收维护阶段,而是项目的全过程参与。客户关系的改善不仅能够加快项目的开发进度,同时也能够在项目早期尽快地发现错误。

·响应变化胜过遵循计划:世界上唯一不变的是变化。在项目过程中需求变更、人员变动都有可能会影响预订计划的执行,与其坚守计划不变不如主动响应变化。在敏捷方法中长期任务被分解为若干短周期任务,以避免长期计划因变化而导致失败。

敏捷方法强调开发团队与用户之间的紧密协作、面对面的沟通、频繁交付新的软件版本、紧凑而自我组织型的团队等,也更注重人的作用。具体实施过程中遵循以下12条准则

(1)最优先要做的是通过尽早的、持续的交付有价值的软件来使客户满意;

(2)即使到了开发的后期,也欢迎改变需求,敏捷过程利用变化来为客户创造竞争优势;

(3)经常性交付可以工作的软件,交付的间隔可以从几个星期到几个月,交付的时间间隔越短越好;(www.xing528.com)

(4)在整个项目开发期间,业务人员和开发人员必须天天都工作在一起

(5)围绕被激励起来的个体来构建项目,给他们提供所需的环境和支持,并且信任他们能够完成工作;

(6)在团队内部,最具有效果并且富有效率的传递信息的方法,就是面对面的交谈;

(7)工作的软件是首要的进度度量标准;

(8)敏捷过程提倡可持续的开发速度,责任人、开发者和用户应该能够保持一个长期的、恒定的开发速度;

(9)不断地关注优秀设计的技能和好的设计会增强敏捷能力;

(10)简单——使未完成的工作最大化的艺术——是根本的;

(11)最好的构架、需求和设计出自组织的团队;

(12)每隔一定时间,团队会在如何才能更有效地工作方面进行反省,然后相应地对自己的行为进行调整。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈