项目生命周期指项目从启动到收尾所经历的一系列阶段,生命周期可为管理项目提供基本框架。在本篇中,我们将着重介绍项目生命周期模型方法和典型的6种生命周期模型,区别各自的优缺点,以便在实践中灵活运用。

 

11、项目生命周期的模型方法有三种:

(1)预测型生命周期。

预测型生命周期(也称为完全计划驱动型生命周期)是在项目生命周期的尽早时间,确定项目范围及交付此范围所需的时间和成本。

优先选择预测型生命周期的情况:充分了解拟交付的产品,有厚实的行业实践基础,或者整批一次性交付产品有利于干系人。

(2)迭代和增量型生命周期。

在迭代和增量型生命周期中,随着项目团队对产品的理解程度逐渐提高,项目阶段(也称为迭代)有目的地重复一个或多个项目活动。迭代方法是通过一系列重复的循环活动来开发产品,而增量方法是渐进地增加产品的功能。迭代和增量型生命周期同时采用迭代和增量的方式来开发产品。

采用迭代和增量方式的项目也可以按阶段推进,迭代本身可以顺序或交叠进行。一次迭代中,将执行所有项目管理过程组中的活动。每次迭代结束时,将完成一个或一组可交付成果。后续迭代可能对这些可交付成果进行改进,也可能创造新的可交付成果。每次迭代中,项目团队都综合考虑反馈意见,对可交付成果进行增量修补,直到符合阶段出口标准。

在大多数迭代生命周期中,都会制定一个高层级的框架计划以指导整体实施,但一次只针对一个迭代期制定详细的范围描述。

优先选择迭代和增量型生命周期的情况:组织需要管理不断变化的目标和范围,组织需要降低项目的复杂性,或者,产品的部分交付有利于一个或多个干系人,且不会影响最终或整批可交付成果的交付。大型复杂项目通常采用迭代方式来实施,这使项目团队可以在迭代过程中综合考虑反馈意见和经验教训,从而降低项目风险。

(3)适应型生命周期。

适应型生命周期(也称为变更驱动方法或敏捷方法),其目的在于应对大量变更,获取干系人的持续参与。适应型生命周期也包含迭代和增量的概念,但不同之处在于,迭代很快(通常2~4周迭代1次),而且所需时间和资源是固定的。虽然早期的迭代更多地聚焦于规划活动,但适应型项目通常在每次迭代中都会执行多个过程。

优先选择适应型方法的情况:需要应对快速变化的环境,需求和范围难以事先确定,或者,能够以有利于干系人的方式定义较小的增量改进。

 

12、通用的项目生命周期结构可分为启动项目、组织与准备、执行项目工作、结束项目四个阶段(这种分阶段方法用于和非专业人员沟通,不要与项目管理过程组相混淆)。项目生命周期的特征包括以下2个:

(1)成本与人力的投入在开始时较低,在工作执行期间达到高峰,并在项目快要结束时迅速回落。

swift项目生命周期 项目生命周期模式_迭代

 

 

(2)风险与不确定性在项目开始最大,随着决策的制定与可交付成果的验收而逐步降低。在项目整个生命周期中,干系人对项目的影响越来越小,变更的代价逐步增大。

swift项目生命周期 项目生命周期模式_软件开发_02

 

 

13、项目阶段是一组只有逻辑关系的项目活动的集合,通常以一个或多个可交付成果的完成为结束。采用项目阶段结构的作用,是把项目划分成合乎逻辑的子集,有助于项目的管理、规划和控制。各个项目阶段具有如下特征:

(1)阶段结束以可交付的成果为标志,可交付成果可以转移或转交到下一个阶段;

(2)各阶段的工作重点不相同;

(3)根据各个阶段的特征或过程中不断清晰的项目目标等可施加额外的控制和管理,为成功的实现目标。

 

14、项目阶段之间的关系有3种:

(1)顺序关系:一个阶段只能在前一阶段完成后开始。这种关系可减少项目的不确定性,不过缺点在于不便于缩短工期等。

swift项目生命周期 项目生命周期模式_swift项目生命周期_03

 

 

(2)交叠关系:前一个阶段还未完成时便可开展下一个阶段,各个阶段间存在交叉。这种关系的优点在于相对的节省时间,有利于快速开展工作,完成部分成果或达到部分目标;缺点在于因为未从整体考虑设计等,增加了项目风险,容易导致返工。

swift项目生命周期 项目生命周期模式_软件开发_04

 

 

(3)迭代关系:就是一次只指定和规划一个项目阶段,并且下一个阶段的规划和开展需要取决于目前阶段的开展程度和整体决策。这种关系的优点在于适用于很不明确的和变化多样的环境中;而这种关系则不利于长期规划,会加大项目成本和风险。

swift项目生命周期 项目生命周期模式_软件开发_05

 

 

15、项目生命周期模型就是对生命周期模型方法和项目阶段关系类型的具体化和最佳实践,这些模型可被项目管理人员运用于不同项目,或项目的不同阶段。典型项目生命周期模型有以下几种:

(1)瀑布模型:最经典的软件生命周期模型,对应结构化方法,将软件开发分为:可行性分析(计划)、需求分析、软件设计(概要设计、详细设计)、编码(含单元测试)、测试、运行维护几个阶段,按顺序依次执行。

(2)螺旋模型:是一个软件深化模型,强调风险分析,将原型实现的迭代特征与线性顺序(瀑布)模型相结合,使软件增量版本的快速开发成为可能。4阶段螺旋:制订计划(一象限)、风险分析(二象限)、实施工程(三象限)、客户评估(四象限)。

(3)迭代模型:横向4阶段:初始、细化、构造、移交,纵向为核心工作流:业务建模、需求获取、分析与设计、实现、测试、部署。

(4)V模型:V型结构由左右两边组成,左侧强调开发阶段,右侧强调测试阶段,明确表明了测试过程中不同的级别,清晰描述了测试阶段与开发阶段的对应关系。

(5)原型化模型:在很难一次性全面准确提出用户需求的情况下,首先不一定要对系统做全面、详细的调查、分析,而是本着开发人员对用户需求的初步理解,先快速开发一个原型系统,然后通过反复修改来实现用户的最终需求。

(6)敏捷开发模型:是一种应对快速变化的需求的一种软件开发能力。是以人(用户的需求进化)为核心、迭代、循序渐进的开发方法,更强调程序员团队与业务专家之间的紧密协作、面对面的沟通、频繁交付新版本、紧凑而自我组织型的团队、能够很好适应需求变化的代码编写和团队组织方法,更注重软件开发中人的作用。

 

16、瀑布模型适用于需求明确或很少变更的项目,比如二次开发或升级项目。瀑布模型的特点:

(1)从上一项开发活动接受该项活动的工作对象作为输入

(2)利用这一输入,实施该项活动应完成的工作内容

(3)给出该项活动的工作成果,作为输出给下一项的开发活动

(4)对该项活动的实施工作成果进行评审

swift项目生命周期 项目生命周期模式_迭代_06

 

 

17、螺旋模型适用于庞大而复杂的、高风险的系统。特点:

(1)软件开发是一系列的增量发布,在早期的迭代中,发布的增量可能是一个纸上的模型或原型

(2)在以后的迭代中,被开发系统的更加完善的版本逐步产生

swift项目生命周期 项目生命周期模式_生命周期_07

 

 

18、迭代模型在每个阶段都包括不同比例的所有活动,适合大型复杂的项目,特点是:

(1)以水平方向为时间维,从组织管理的角度描述整个软件开发生命周期

(2)核心工作流从技术角度描述迭代模型的静态组成部分

(3)几乎所有的工作流在所有的时间段内都有工作量,只是大小不同

swift项目生命周期 项目生命周期模式_生命周期_08

 

 

19、V模型强调了开发与测试并重,适用于需求明确且变更不频繁的情形,特点是:

(1)主要思想是开发与测试同等重要,左侧代表开发活动,右侧代表测试活动

(2)针对每个开发阶段,都有一个测试级别与之对应

(3)测试依旧是开发生命周期中的阶段,与瀑布模型不同的是有多个测试级别与开发阶段对应

(4)V模型适用于需求明确和需求变更不频繁的情形

swift项目生命周期 项目生命周期模式_软件开发_09

 

 

20、V模型中将测试分为四个级别,其区别是:

(1)单元测试。验证软件单元是否符合规格说明,主要关注最小单元能够正常运行。一般由开发人员执行。

(2)集成测试。检查多个单元是否按照概要设计描述协同工作,主要关注能够成功编译,实现业务功能,各模块数据功能正常。

(3)系统测试。验证整个系统是否满足需求规格说明。

(4)验收测试。从用户的角度检查系统是否满足合同需求定义或用户需求。

 

21、原型化模型适用于初期需求不明确、管理决策方法结构化程度不高的系统开发。原型法的特点包括:

(1)对用户需求是动态响应、逐步纳入的,系统分析、设计、实现都是随着对一个工作模型的不断修改而同时完成的,无明确界限,也无明确分工。

(2)系统开发计划就是一个反复修改的过程。

(3)开发方法更易被用户接受,但如果用户配合不好,就会拖延开发过程。

 

22、原型化模型中,对原型要求和原型分类如下:

(1)原型应当具备的3个特点:

1)实际可行

2)具有最终系统的基本特征

3)构造方便、快速、造价低

(2)可将原型分为2类:

1)抛弃型原型。此类原型在系统真正实现后就放弃不用了。

2)进化型原型。此类原型的构造从目标系统的一个或几个基本需求出发,逐渐丰富,演化成最终系统。

 

23、敏捷开发模型适合小团队开发,特点是:

(1)更强调程序员团队与业务专家之间的密切协作、面对面沟通(认为比书面的文档更有效)

(2)能够很好地适应需求变化

注:Scrum是一种迭代式增量软件开发过程,通常用于敏捷软件开发。主要角色包括Scrum主管(类似项目经理,负责维护过程和任务)、产品负责人(利益所有者)、开发团队(所有开发人员)。

 

信息系统项目的需求、规模等千差万别,只有充分理解生命周期模型,才能更好地运用于实际项目中,而选择一个或几个合适的生命周期模型,显得尤为重要。当一个项目或项目阶段确定了生命周期模型后,就需要综合运用项目管理过程、知识领域等管理方法、工具和技术实施项目管理,下文中将对项目管理5大过程组和10大知识领域进行阐述,敬请期待~