敏捷软件开发的倡导“个体和协作胜于过程;可工作的软件胜于完整的文档;客户协作胜于合同;响应变化胜于遵循计划”的软件开发方式,以人为核心,注重交流和协作,强调软件可持续发展,实现频繁交付对客户最重要的价值。
敏捷软件包含敏捷项目管理、敏捷需求管理和敏捷软件方法三个部分。
一、敏捷项目管理
敏捷是一种态度而不是一个流程,是一种氛围而不是方法。敏捷项目管理强调的是沟通:与客户之间的沟通、项目成员之间的沟通。基于这一思路,敏捷项目管理更重视与“人”的作用,要求项目的组织形式具有以下特点:
1,很强的文化适应性。
2,最低限度的规则,鼓励自我组织,并结合自律以遵守哪些规则。
3,很好的协作和沟通环境。
从以上三点可以看出,敏捷项目管理对人的限制很低,这与传统软件工程中把“人”做为生产流水线上的一个环节进行管理的方式截然不同!软件业是科技密集型的产业,软件产品的最终质量更多的取决与软件开发人员的素质和态度,而不是软件的开发过程和开发设备,这也是软件业与传统行业差距最大的地方。敏捷项目管理的最终着眼点便是如何提高软件开发人员的素质和如何激发软件开发软件的热情,从而提高最终软件的质量。
但是从另一方法,采用敏捷项目管理,也必然要求项目成员具有更高的专业技能和专业素养,以防止宽松的环境导致的消极怠工等现象。
二、敏捷需求管理
软件开发的最终着眼点是如何满足用户的需求。这些需求通常是复杂的、模糊的,甚至是不确定的。敏捷需求管理采用增量交付的软件开发流程,借助其与客户持续沟通的特点,不断的校准软件的开发防线,逼近用户的最终需求,使最终开发出来的软件满足客户的要求。
敏捷软件开发流程【转】 - 浅色天空 - 浅色天空
增量交付的软件流程如图1所示。该流程最重要一点在于“增量交付”,软件以模块化的方式进行开发,通常一个模块的开发周期是一至两周。每个模块开发完成后,按照正规的发布流程发布,交付给客户试用。在客户使用过程中,了解客户对当前完成功能的意见。然后与客户沟通,一起制定下一轮开发的计划。
该流程的最大好处在于客户全程参与软件的开发,把握软件的目前的开发状态,确保软件实现的功能能够满足用户的需求。
但是另一方面,增量的交付也对软件开发技术提出了更高的要求:模块化的开发方式要求更彻底的解耦合;需求的变化要求软件架构具有更高的灵活性;增量交付要求对发布过程的高度自动化等等。
三、敏捷软件方法
对应于以人为本的敏捷项目管理和以增量交付的敏捷需求管理,敏捷软件开发提供很多具体的方法指导软件的开发实践,这些方法包括重构、结对编程、测试驱动、持续集成等,以下简要介绍重构和结对编程。
1,重构。
重构即在不改变既有代码的行为的前提下,改善代码的设计。重构的目的是为了消除代码重的“坏气味”,从而达到放置代码腐烂的目的。
常见的重构的手法有“重命名”、“抽出新方法”、“包装成员”、“将方法在继承层次中移动”等。
重构通常以设计模式作为目标,以单元测试作为保证代码正确性的手段。
2,结对编程
结对编程即两个开发人员使用一台电脑进行开发,通常是一个人操作另一个人,另一个人辅助,一段时间后,两人交换。这种看似降低了一半的开发效率开发方式具有以下优点:
第一,所有的决定都是有两个人共同做出的,并且所有的代码是在两个人的配合下写出的,这大大降低了Bug的产生几率,从而缩短了调试所需要的时间。
第二,所有的代码至少有两个人了解,这降低了代码对开发人员的依赖性,防止开发人员的离职对项目造成的影响。
敏捷软件开发为现代商用软件量身打造。经过这几年的发展,无论在项目的开发方式,还是在具体实践方法上,都有形成了自己的特色,与传统的开发方式分庭抗衡。
敏捷软件开发不是一个具体的过程,而是一个涵盖性术语(umbrella term),用于概括具有类似基础的方式和方法。典型的敏捷过程模型有:
1、XP(极限编程,eXtreme Programming)、
2、FDD(特性驱动开发, Feature-Driven Development)、
3、Scrum
4、ASP(自适应软件开发Adaptive Software Development)
5、DSDM(动态系统开发方法,Dynamic System Development Method)以及
6、AUP(敏捷统一过程,Agile Unified Process)
7、Crystal等。
分享到:
相关推荐
### 敏捷开发流程详解 #### 一、敏捷开发概览 **敏捷开发**是一种以人为核心、迭代、循序渐进的软件开发方法。它强调团队合作、快速响应变化和持续交付高质量的产品。与传统的瀑布式开发模型相比,敏捷开发更加...
Scrum敏捷开发流程是一个迭代式开发过程,强调团队协作、快速响应变化和不断改进。 1. 角色及职责 * 产品负责人(PM):主要决定每个迭代要开发的功能,并在每个迭代结束评审交付项是否符合要求。在产品开发流程...
本资料包中的"软件敏捷开发过程文档"提供了一个全面的框架,帮助开发者理解并实施敏捷开发流程。 1. **需求规格说明**:这是敏捷开发中的关键部分,传统的需求分析在敏捷中转变为更灵活的“用户故事”。用户故事是...
敏捷开发流程与方法讲义.pptx
Scrum敏捷开发过程.pdf
敏捷开发(Agile Development)是一种以人为核心、迭代、循序渐进的开发方法。
敏捷开发流程是一个轻量级的软件开发方法,旨在通过增量的、迭代的开发过程来交付有价值的软件。整个开发周期包括多个小的迭代周期,每个小的迭代周期称为一个Sprint,每个Sprint的建议长度为2到4周。在Scrum中,...
一套个人在敏捷开发中总结的敏捷开发流程规范与流程每一步的输出制品。
敏捷开发过程则是一种更为灵活和迭代的项目管理方法,它提倡快速响应变化,强调客户参与和团队协作。敏捷开发的典型框架包括Scrum、Kanban等。在敏捷开发中,TDD可以作为核心实践之一,有助于提高软件质量,减少缺陷...
敏捷开发流程详细说明 敏捷开发流程详细说明 敏捷开发流程详细说明
Scrum敏捷开发流程框架是一种广泛应用于软件开发领域的项目管理框架,尤其在复杂和不确定性的环境中,Scrum展示了其灵活性和高效性。Scrum的核心在于它强调迭代和增量开发,通过频繁的反馈和调整来应对变化,确保...
敏捷宣言是敏捷开发的核心,它强调人际关系、工作软件、客户合作和适应性的重要性,而非过程、工具、详尽文档和严格计划。这种理念与传统的瀑布模型形成对比,后者倾向于线性的开发流程和固定的计划。 敏捷开发的...
你将看到敏捷开发过程的全景图,包括为非技术类读者准备的全面指导,以及为开发者和测试人员准备的实用技术实践。, 本书为以下问题提供了明确的答案:, 怎样才能采用敏捷开发?, 我们真的需要结对编程吗?, 汇报应该...