《挖掘管理价值:企业软件项目管理实战》一1.5 敏捷软件项目管理

1.5 敏捷软件项目管理

挖掘管理价值:企业软件项目管理实战
计算机进入互联网时代后,软件得到了前所未有的普及。人们对软件开发适应度的要求逐渐提高,传统的开发模式面对快速变换的需求显得力不从心。近20年来,很多学者和专家在研究软件的敏捷开发模式,其中Scrum开发、极限编程、迭代开发都是某种形式的敏捷开发方法。

1.5.1 敏捷开发概念

敏捷的英文是Agile,其原意是快速和灵巧地做出反应或动作。经过多年的敏捷实践和探索,在2001年美国雪鸟会议上,敏捷开发概念被真正地提出来,同时发表了《敏捷宣言》。此宣言中,敏捷的定义主要包括1以下4点。

  • 人和交互重于过程和工具。
  • 可以工作的软件重于求全责备的文档。
  • 客户协作重于合同谈判。
  • 随时应对变化重于循规蹈矩。

在实践过程中,开发人员对于敏捷概念的理解不尽相同,甚至有些人认为敏捷概念破坏了工作的计划性和纪律性。其实,更确切地说,敏捷的精髓是强调快速的适应性。

1.5.2 常用敏捷开发方法

敏捷开发是一种思想,一种理念,如果要付诸于实现,就需要某些方法。近几十年来,敏捷开发的方法层出不穷,多达22种2,其中常见的方法主要有3:

  • 软件开发节奏(Software Development Rhythms);
  • 敏捷数据库技术(Agile Database Techniques);
  • 敏捷建模(Agile Modeling);
  • 自适应软件开发(Adaptive Software Development);
  • 水晶方法(Crystal);
  • 特性驱动开发(FDD,Feature Driven Development);
  • 测试驱动开发(TDD,Test-Driven Development);
  • 动态系统开发方法(DSDM,Dynamic Systems Development Method);
  • 精益软件开发(Lean Software Develo pment);
  • 敏捷统一过程(Agile Unified Process);
  • Scrum开发;
  • 极限编程(XP Extreme Programming);
  • 探索性测试(Exploratory Testing)。

根据2011年中睿软件咨询对敏捷开发的调查,以上主要方法的实际应用比例如图1-2所示。

1.5.3 敏捷软件项目流程

敏捷开发的过程摒弃了传统瀑布式开发过程中的诸多不足,因此其流程的出发点和步骤完全不一样,如图1-3所示。敏捷开发的流程具有步骤精简、并行工作和效率提高几个特点。

(1)步骤精简。减少了重重设计、评估和测试的过程,在有基本设计轮廓的时候,就可以开始先期的编程工作。随着编程的推进,设计也在逐渐细化中,两者保持协调,同步推进,将大大地提高开发过程的适应性和效率。

(2)并行工作。大部分敏捷方法都要求任务细化,以达到并行工作的效果。并行工作的好处是充分利用资源,互不影响,同时又能协同工作。设计、开发、测试得以同步进行。

(3)效率提高。敏捷开发要求团队中的角色更加清晰和明确,没有交集和重叠,以发挥每个人最佳的工作效率。由于敏捷开发对文档的要求有所降低或只要求重要的文档,因此可以节省大量用于文档维护的时间和成本。敏捷开发还强调和用户的互动,紧密的互动可以保障问题在第一时间被发现和解决。

1.5.4 敏捷的价值

根据VersionOne公司42011年的资料,敏捷开发模式与传统开发模式对于软件项目的价值对比如图1-4所示。

在图1-4中,实线为敏捷开发,虚线为传统开发。从图中我们可以清晰地看到,敏捷开发的价值反映在可见性(visibility)、适应性(adaptablity)、业务价值(business value)和风险(risk)4个方面。

  • 可见性。传统开发模式下,只有需求和测试阶段是清晰可见的,用户在其他的过程中无法或很有限地见到软件的细节或形态。而敏捷开发则不同,快速响应和及时交付使得用户在所有过程中或多或少有形地看到软件。
  • 适应性。传统开发模式要求按部就班,开发过程向一个方向进行。在需求分析阶段,其适应性比较强,可以随着需求的变换而变化,但是随着编程的深入,适应性越来越低,越来越难以改变。相反,敏捷开发的适应性衰退得比较平稳且又可以保持一定的灵活性,有效地提高了软件的竞争力。
  • 业务价值。传统开发模式下,软件在开发初期无业务价值可言。只有到软件编程和测试完成,才能体现其价值。由于敏捷开发可以做到快速建模和及时交付,其业务价值提前显现,尽管它体现的不是那么完整和完善,但是随着开发的深入,其价值将充分显现。软件价值体现得越早,对用户越有吸引力。
  • 风险。传统模式开发下的软件,其风险一般只有在最后交付时才能消失,成功则成功、失败则失败,几乎没有回旋的余地,风险控制也比较困难。敏捷开发的特点在于,风险通过小批量的阶段性交付提前暴露出来,使得风险可以处于可控的范围内,而不是到最后关头才看到风险。
时间: 2024-09-20 14:44:20

《挖掘管理价值:企业软件项目管理实战》一1.5 敏捷软件项目管理的相关文章

《挖掘管理价值:企业软件项目管理实战》一2.2 项目确立过程

2.2 项目确立过程 挖掘管理价值:企业软件项目管理实战 软件开发项目的确立有的时候是必然发生的,如用户需求或对现有系统的升级和更新:有的时候是偶然发生的,如市场商机或业务部门突然提出一个需求或者是系统突然出现了故障.不管是何种情况,软件开发都不可能一蹴而就,总需要一个或长或短的过程.因此在开始软件项目之前,通常需要一个立项的过程. 2.2.1 立项目的 立项的目的是为了确定软件开发的目的和范围,评估项目的投入.回报.合理性和可操作性,同时得到上层的批准和预算. 通常而言,立项要解决以下问题.

《挖掘管理价值:企业软件项目管理实战》一2.4 软件设计过程

2.4 软件设计过程 挖掘管理价值:企业软件项目管理实战 软件设计是根据需求的内容,运用计算机理论.技术和工具将其合理地.有机地.具体地转化为功能,并演示其实现的方法.过程和结果.设计人员在理解了用户的需求之后,首先在自己的脑海中会有一个大致的概念和思路,然后考虑如何去实现这些功能,当然这需要一定的专业知识和实践经验.这里就不阐述软件或数据库设计的理论知识了,而重点介绍如何将设计人员脑子里对软件的设计和理解反映到文字.图形和流程上,使得用户可以了解计算机是如何实现他们的需求的.我们用图 2-9

《挖掘管理价值:企业软件项目管理实战》一2.3 需求分析过程

2.3 需求分析过程 挖掘管理价值:企业软件项目管理实战 需求是软件的重要部分,好比是发动机离开了汽油不能运行一样.没有需求就没有软件存在的价值,没有需求就不可能让计算机完成人所需要做的事情.可以说需求是软件的基石或土壤,就算是一样的需求,因为对其不同的理解和解释,也会开发出迥异的软件.这就好比,相同的种子在不同的气候和种植方法下,长出来的果实也是有差异的. 2.3.1 需求的特点 普遍的需求都会符合以下的特点,有些比较明显,有些则比较模糊. 目的性.有明显的要求,希望得到什么,不是模棱两可的.

《挖掘管理价值:企业软件项目管理实战》一第 2 章 流程式生产软件——过程管理

第 2 章 流程式生产软件--过程管理 挖掘管理价值:企业软件项目管理实战 做事需要章法,管理需要流程.软件开发生命周期理论定义了软件开发普遍的过程,软件项目管理工作之一就是以此为基础,对软件开发的过程进行细致的管理. 本章重点 建立项目流程.为了标准化软件开发的过程,企业应该根据自己的管理要求建立项目管理流程. 项目确立过程.要开始一个软件项目,就必须先对项目的合理性进行恰当的论证和评估. 需求分析过程.软件的内容和功能来源于需求的收集和分析,应该根据需求的重要性来设定开发的优先级. 软件设计

《挖掘管理价值:企业软件项目管理实战》一导读

前 言 挖掘管理价值:企业软件项目管理实战 我自2000年开始从事软件开发工作,至今已经有12个年头.刚开始进入公司的时候,我还是一个程序员,每天跟在师傅后面完成代码片段的开发.除了要完成日常的工作任务以外,我还要不停地学习新的技术.语言和工具.在经历了几年的热情之后,面对干涩枯燥的代码,我开始感到迷茫和厌倦,我问自己:"我的出路在哪里?以后做什么?写程序能写到几岁?" 所幸的是,公司的规模在不断发展中,业务量越来越大.现有的开发资源已经明显不足,人员进行了扩编,于是我顺理成章地当上了

《挖掘管理价值:企业软件项目管理实战》一1.1 什么是软件项目管理

1.1 什么是软件项目管理 挖掘管理价值:企业软件项目管理实战软件开发是构建软件本身以及系统中一部分或全部产品的开发过程,是一个包括设计.开发.测试.实施.维护的系统过程.软件项目管理是针对某个特定的软件开发项目进行管理的过程,其主要目的有以下6种. 收集用户需求.收集和分析需求,使其可以利用计算机技术来实现. 安排和分配资源.包括人力资源和物资资源,使其投入软件开发活动,实现需求目标. 管理和控制项目进度.使其能够在预定的时间内完成或阶段性地完成任务. 控制质量.实现软件功能,使其能够达到设计

《挖掘管理价值:企业软件项目管理实战》一2.1 建立项目流程

2.1 建立项目流程 挖掘管理价值:企业软件项目管理实战过程必定会有步骤,步骤的数量有多有少,步骤都有一个基本的次序,我们称之为流程.要开始一个软件项目的过程,就应该首先确定一个适当的流程,这个流程可以是符合普遍规律(通常认为是软件开发生命周期)的流程,也可以是根据企业特点和要求制定的一个流程.我们认为,一个完整的.传统的软件项目开发和管理流程应该强化项目中每个阶段的申请和授权控制,如图2-1所示. 在图2-1中我们应该特别关注以下几点. 项目预算.审批是为了更好地.全局性地控制项目立项.需求提

《挖掘管理价值:企业软件项目管理实战》一1.2 软件项目特点和意义

1.2 软件项目特点和意义 挖掘管理价值:企业软件项目管理实战为什么对软件项目要提出专门的管理要求呢?软件自身的特点决定了它有别于一般的工程项目,这些特点反映在以下3个方面. 1.无形性软件不像大桥.房子.高速公路,它没有具体的.物理的实体,仅仅是存在于计算机系统中的代码和屏幕上的图形.因此软件项目也没有可见的.可触摸的实体,其管理过程就是将无形的软件构造过程可视化.具体化.可操作化和可控化. 2.多变性如果一座跨江大桥建到一半的时候,想把桥的一端换一个地方是不可能的,除非把大桥拆了重建.但是软

《挖掘管理价值:企业软件项目管理实战》一1.3 软件项目管理模型

1.3 软件项目管理模型 挖掘管理价值:企业软件项目管理实战往往有人认为项目的成败取决于技术或是某个人,但是从全局来看,项目的成败应该建立在一个良好的.健康的.完善的管理模型上,模型中的每一个环节都对项目的管理起到促进.巩固.保障的作用.这个模型包括以下环节,如图1-1所示. 过程.对软件项目过程进行管理和控制,包括事务.计划.流程.方法和交付. 资源.由人力.资金和供应商构成.人力资源包括参与软件项目的开发人员.测试人员.用户和管理人员.资金包括人员的工资福利.设备的采购.支付供应商服务费用等