带你读《软件项目管理案例教程(第4版)》之三:生存期模型

丰富的线上&线下活动,深入探索云世界

做任务,得社区积分和周边

最真实的开发者用云体验

让每位学生受益于普惠算力

让创作激发创新

资深技术专家手把手带教

遇见技术追梦人

技术交流,直击现场

海量开发者使用工具、手册,免费下载

极速、全面、稳定、安全的开源镜像

开发手册、白皮书、案例集等实战精华

为开发者定制的Chrome浏览器插件

为了提交一个满意的项目,需要选择项目实施策略,选择生存期模型的过程就是选择策略的过程。下面进入路线图的“生存期模型”,如图3-1所示。

软件项目生存期模型的基本特征如下。1)描述开发的主要阶段。2)定义每一个阶段要完成的主要过程和活动。3)规范每一个阶段的输入和输出。在生存期模型中定义软件过程非常重要,人和过程是保证项目成功的两个关键因素。由合适的人按好的过程进行项目开发,才能最大限度地保证项目的成功。通过过程可以实现一种规范化、流水线化、工业化的软件开发。软件的生产过程不存在绝对正确的过程形式,不同的软件开发项目应当采用不同的或者有针对性的软件开发过程,而真正合适的软件开发过程是在软件项目开发完成后才能明了的。因此,项目开发之初只能根据项目的特点和开发经验进行选择,并在开发过程中不断地调整。软件生存期模型的选择对项目成功的影响非常重要。恰当的生存期模型可以使软件项目流程化,并帮助项目人员一步一步地接近目标。如果选择了适宜的生存期模型,就可以提高开发速度,提升质量,加强项目跟踪和控制,减少成本,降低风险,改善用户关系。

软件开发模型总体上经历了从传统到敏捷的变迁,从最初的作坊式的单打独斗,到诸如CMM等过程改进式的过程控制,再到敏捷模型,如图3-2所示。敏捷模型也发展出更多模型,如时下流行的DevOps。

项目有多种形式,也有多种实施方式。项目团队根据项目特征选择最可能使项目成功的生存期模型和方法。总体上,项目生存期模型可以是预测型或适应型。适应型模型可以是迭代型、增量型、敏捷型等,如图3-3所示从两个维度展示了这4类模型的关系。从项目变化角度看,预测型低,迭代型高;从提交的频繁度看,预测型低,增量型高。敏捷模型既有迭代型,也有增量型,便于完善工作,可以频繁交付。充分了解或有确定需求的项目要素遵循预测型开发模型,而仍在发展中的要素遵循适应型开发模型。

其中:

不同生存期模型的特征如表3-1所示。表3-1从项目需求、开发活动、产品交付及目标等角度展示了四大模型的项目特征。从项目需求上看:预测型的需求最稳定;其他3个类型需求有变化。从开发活动上看:预测型是每个开发活动只执行一次,瀑布模型就是这样;迭代型是不断重复一些活动,直到正确为止;增量型是每个增量活动只执行一次;敏捷型也是不断重复一些活动,直到正确为止。从产品交付上看:预测型、迭代型只提交一次;增量型、敏捷型多次提交小版本。从目标上看:预测型的目标是管理成本;迭代型的目标是获得正确的解决方案;增量型的目标是加快速度;敏捷型通过不断提交和反馈获得用户肯定。这些特征可以作为选择模型的参考。

需要注意的是,所有的项目都具有这些特征,没有一个项目能够完全不考虑需求、交付、变更和目标这些因素。项目的固有特征决定了其适合采用哪种生存期模型。另一种理解不同项目生存期的方法是使用一个连续区间,从图3-3一端的预测型模型到另一端的敏捷型模型,连续区间中间还有更多的迭代型周期或增量型周期。没有哪个生存期模型能够完美地适用于所有的项目。相反,每个项目都能在连续区间中找到一个点,根据其背景特征实现最佳平衡。实践中还有混合型生存期模型,这种模型是预测型和适应型的组合。

预测型生存期模型充分利用已知和已经证明的事物,不确定性和复杂性减少,允许项目团队将工作分解为一系列可预测的小组,是一种传统的模型,如瀑布模型。预测型生存期模型预计会从高确定性的明确需求、稳定的团队和低风险中获益。因此,项目活动通常以顺序方式执行,如图3-4所示。

为了实现这种方法,团队需要详细的计划,了解要交付什么及怎样交付。当其他潜在的变更受到限制时,这些项目就会成功。团队领导的目标是尽可能减少预测型项目的变更。团队在项目初始创建详细的需求和计划时,可以阐明各种制约因素,然后利用这些制约因素管理风险和成本。进而,在实施详细计划时,团队会监督并控制可能影响范围、进度计划或预算的变更。如果遇到变更或需求分歧,或者技术解决方案变得不再简单明了,则预测型项目将产生意想不到的成本。瀑布模型和V模型是最典型的预测型生存期模型。

(waterfallmodel)是一个经典的模型,也称为传统模型(conventionalmodel),它是一个理想化的生存期模型,如图3-5所示。它要求项目所有的活动都严格按照顺序自上而下执行,一个阶段的输出是下一阶段的输入,如同瀑布流水,逐级下落。瀑布模型没有反馈,一个阶段完成后,一般不返回——尽管实际的项目中要经常返回上一阶段。瀑布模型是一个比较“老”的模型,甚至有些过时,但在一些小的项目中还是经常用到的。

V模型是由PaulRook在1980年提出的,是瀑布模型的一种变种,同样需要一步一步进行,前一阶段任务完成之后才可以进行下一阶段的任务,如图3-6所示。

增量型生存期模型的策略是不同时开发项目需求,而是将需求分段,使其成为一系列增量产品,每一增量可以分别实施,每个增量都包括分析、设计、实施、测试、提交等过程。每个增量是一个交付成果。第一个增量往往是实现基本需求的核心产品。核心产品交付用户使用后,经过评价形成下一个增量的开发计划,不断重复这个过程,直到产生最终的完善产品。增量型生存期模型如图3-9所示。

敏捷生存期模型是符合《敏捷宣言》原则的模型,客户满意度将随着有价值产品的早期交付和持续交付不断提升。此外,功能性的、提供价值的增量可交付成果是衡量进展的主要尺度。为了适应更频繁的变更,更频繁地交付项目价值,敏捷生存期模型结合了迭代和增量方法。在敏捷环境中,团队预料需求会发生变更。迭代和增量方法能够提供反馈,以便改善项目下一部分的计划。不过,在敏捷项目中,增量交付会发现隐藏或误解的需求。图3-11显示了实现增量交付的两种可能的方法(基于迭代和基于流程),这样便于项目与客户需求保持一致,并根据需要进行调整。

OpenUP方法最早源自IBM内部对RUP(RationalUnifiedProcess)的敏捷化改造,通过裁剪掉RUP中复杂和可选的部分,IBM于2005年推出了BUP(BasicUnifiedProcess)和EPF(EclipseProcessFramework)。此后为了进一步推动UP族方法的发展,IBM将BUP方法捐献给Eclipse开源社区,于2006年初将BUP改名为OpenUP。OpenUP虽然受到Scrum、XP、EclipseWay、DSDM、AMDD等各种敏捷方法的影响,但是主体仍然是RUP,即在一组被验证的结构化生命周期过程中应用增量迭代研发模式。OpenUP基于用例和场景、风险管理和以架构为中心的模式来驱动开发。图3-15显示了OpenUP的总体组织架构。OpenUP方法包含3个层次/领域的实践活动,分别针对利益干系人领域、项目团队领域和个人领域。

看板一词来自日本,源于精益生产实践,大野耐一开发了看板,并在1953年将其应用于丰田的主要制造厂。敏捷开发将其背后的可视化管理理念借鉴过来。看板使得项目管理实现最大的可视化,并且可以对研发的过程进行管理,记录下用户故事研发过程中的细节和历程。看板可以让研发过程最大限度地可视化,同时是解决团队沟通障碍(实践中发现也可以作为和上级沟通项目进展的重要信息)的主要方法之一。通过看板,项目团队可以清楚了解已经完成的情况,正在做的及后续将有可能需要做的用户故事,如图3-16所示。

Scrumban最初设计为Scrum到看板之间的过渡方法。它是通过其自身衍生演变而成的一种混合敏捷框架和方法。团队将Scrum作为框架,而将看板作为过程改进方法。在Scrumban中,工作被分解到许多小的“冲刺”,并利用看板面板来可视化和监督工作。将故事列在看板面板上,团队通过使用在制品限制(WIPlimit)来管理其工作;团队通过召开每日例会来维持团队之间的协作并消除阻碍;通过设置规划触发因素来了解何时规划下一步工作,通常发生于在制品级别低于预设限制时。

精益软件开发模式从一开始便侧重于提高过程的效率。它最初来自丰田公司的制造工业,其主要思想是分析所有的流程,以查明和消除浪费,不断提高效率。为了达到这个目的,精益模式提出了一些概念和实用的工具。大部分的工具在制造业使用而不能直接应用于软件开发。精益软件开发经常提及两个概念。一个是拉式系统(pullsystem)。在拉式系统中,一个流水线上的任何一个环节的任务完成后,都会从前一个环节自动提取下一个任务。该模式以客户的需求而不是市场预测来推动工作进程。另外,通过精益模式可以最小化未完成工作及半成品的数量,它们通常被认为是开发过程中的浪费。除了拉式系统,价值流图(valuestreammapping)也经常被应用于软件开发过程中。价值流图能够有效地识别过程中的浪费。对于软件开发而言,在开发者或者最终用户的视角上观察软件开发过程,并发现和消除无益于快速交付的行为,即为精益的软件开发。

DevOps(Development和Operations的组合)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QualityAssurance,QA)部门之间的沟通、协作与整合,如图3-17所示。它的出现是由于软件行业日益清晰地认识到:为了按时交付软件产品和服务,开发和运营工作必须紧密合作,由持续交付演变出了DevOps,即开发端和运维端的全程敏捷思维。传统运维人员和开发者之间的目标是有差异的,开发和运营原本有着不同的目标,开发人员希望快速提交产品,运营人员希望产品的更合理化、高性能、高可靠等,减少维护成本,开发者和运维人员之间目的上的差异就叫作“混乱之墙”。

可以把DevOps看作开发、技术运营和质量保障(QA)三者的交集,传统的软件组织将开发、技术运营和质量保障设为各自分离的部门。在这种环境下如何采用新的开发方法(如敏捷软件开发),这是一个重要的课题:按照从前的工作方式,开发和部署不需要技术支持或者QA深入的、跨部门的支持,而需要极其紧密的多部门协作。然而DevOps考虑的不仅是软件部署,还包括一套针对这几个部门间沟通与协作问题的流程和方法。DevOps的引入能对产品交付、测试、功能开发和维护起到意义深远的影响。在缺乏DevOps能力的组织中,开发与运营之间存在着信息“鸿沟”——例如,运营人员要求更好的可靠性和安全性,开发人员则希望基础设施响应更快,而业务用户的需求则是更快地将更多的特性发布给最终用户使用。这种信息鸿沟就是最常出问题的地方。DevOps融合一系列基本原则和实践的方法论,将开发和运维端融合在一起,从而可以更有效地解决这类问题。

对于整个项目,没有必要使用单一的方法。为达到特定的目标,项目经常要结合不同的生命周期要素。预测、迭代、增量和敏捷方法的组合就是一种混合方法。1.先敏捷后预测型综合方法图3-18描述了先敏捷后预测型综合方法,它们结合起来就形成一种混合模型。早期过程采用一个敏捷开发生命周期,之后往往是一个预测型的发布阶段。当项目可以从敏捷方法中受益并且项目的开发部分中存在不确定性、复杂性和风险时,可以使用这种方法,然后是一个明确的、可重复的发布阶段,该阶段适合采用预测方法进行,可能由不同的团队实施。例如,开发某种新的高科技产品,然后面向成千上万的用户推出,并对他们进行培训。2.敏捷和预测综合方法敏捷和预测综合方法是指同一项目在整个生命周期中结合使用敏捷方法和预测法,如图3-19所示。也许团队正在逐渐地向敏捷过渡,并使用一些方法,如短迭代、每日站会和回顾,但在项目的其他方面,如前期评估、工作分配和进度跟踪等,仍然遵循了预测法。

同时使用预测法和敏捷方法是一个常见的情况。将这种方法称为敏捷方法是一种误导,因为它显然没有充分体现敏捷思维模式、价值观和原则。不过,由于这是一种混合方法,所以称其为预测法也是不准确的。3.以预测法为主、敏捷方法为辅的方法如图3-20所示,在一个以预测法为主的项目中增加敏捷要素,在这种情况下,以敏捷方法处理具有不确定性、复杂性或范围蔓延机会项目的一部分,而使用预测法管理项目的其余部分。4.以敏捷方法为主、预测法为辅的方法图3-21描述了一个以敏捷方法为主、预测法为辅的方法。当某个特定要素不可协商,或者使用敏捷方法不可执行时,可能会使用这种方法。例如,集成由不同供应商开发的外部组件,这些外部组件不能或不会以协作或增量方式合作。在组件交付之后,需要单独集成。

本项目采用Scrum敏捷生存期模型,产品目录及优先级如表3-2所示,整个项目分4个迭代,即4个Sprint(冲刺迭代),表3-2也说明了每个Sprint包括的需求内容,第一个Sprint包括产品目录中前4优先级内容。每个冲刺订单(迭代)的周期大概是4周,每个冲刺订单完成之后提交一个可以运行的版本。因此,本项目的Scrum敏捷模式可以通过图3-22展示。具体生存期定义如图3-23所示。

本章介绍了软件项目生存期模型的类型和特点,总体分预测型模型和适应型模型,适应型可以是迭代型、增量型、敏捷型,混合型生存期模型是预测型和适应模型的组合。瀑布模型、V模型属于预测型模型,快速原型模型属于迭代型模型,渐进式阶段模型属于增量型模型,特别展开介绍Scrum、XP、看板方法、精益模型、持续交付、DevOps等各敏捷模型。

一、填空题

1.生存期模型要求项目所有的活动都严格按照顺序执行,一个阶段的输出是下一个阶段的输入。

2.总体上,项目生存期模型可以是预测型或。

二、判断题

1.瀑布模型不适合短期项目。()

2.增量型生存期模型可以避免一次性投资太多带来的风险。()

3.V模型适合的项目类型是需求很明确、解决方案很明确,而且对系统的性能要求比较严格的项目。()

4.瀑布模型和V模型都属于预测型生存期模型。()

5.瀑布模型要求项目所有的活动都严格按照顺序执行,一个阶段的输出是下一个阶段的输入。()

6.极限编程(eXtremeProgramming,XP)从3个层面提供了13个敏捷实践。()

7.敏捷包括《敏捷宣言》的价值观、12个原则,以及一些通用实践等。()

三、选择题

1.对于某项目,甲方提供了详细、准确的需求文档,我们的解决方案也很明确,且安全性要求非常严格,此项目采用()比较合适。A.瀑布模型B.增量型生存期模型C.V模型D.XP模型

2.下面属于预测型生存期模型的是()。A.瀑布模型B.增量型生存期模型C.Scrum模型D.原型模型

3.下面关于敏捷模型描述不正确是()。A.与传统模型相比,敏捷模型属于自适应过程B.可以应对需求的不断变化C.Scrum模型、XP模型、DevOps模型等都属于敏捷模型D.敏捷模型是预测型和迭代型的混合模型。

4.XP模型的实践原则不包括()。A.快速反馈B.假设简单C.包容变化D.详细设计

5.在项目初期,一个项目需求不明确的情况下,应避免采用以下哪种生存期模型?()A.快速原型模型B.增量型生存期模型C.V模型D.Scrum模型

6.关于迭代模型,下列说法不正确的是()。A.不断反馈原型B.可以加快开发速度C.项目需求变化大D.不多次提交

四、问答题

1.写出3种你熟悉的生存期模型,并说明这些模型适用什么情况下的项目。

THE END
1.PMP笔记项目干系人管理要点总结pmp干系人评估项目干系人管理包括用于开展下列工作的各个过程:识别能够影响项目或者受项目影响的全部人员、群体或组织,分析干系人对项目的期望和影响,制定合适的管理策略来有效调动干系人参与与项目决策和执行。干系人管理还关注与干系人的持续沟通,以便于了解干系人的需要和期望,解决实际发生的问题,管理利益冲突,促进干系人合理参https://blog.csdn.net/seagal890/article/details/78705123
2.项目干系人管理计划.pptx123在新项目启动阶段,将以往项目的经验教训作为重要参考,对新的项目干系人管理计划进行改进和优化。在项目启动阶段引入经验教训根据以往项目的经验教训,分析新项目中可能出现的干系人管理问题,并制定相应的预防措施和应对策略。制定针对性的干系人管理策略在新项目执行过程中,持续监控项目干系人的需求和期望变化,并及时https://max.book118.com/html/2024/0115/8011026030006026.shtm
3.13项目干系人管理干系人参与评估矩阵 image.png 干系人管理计划 除了干系人登记册中的资料,干系人管理计划还包括: 关键干系人的所需参与程度和当前参与程度 干系人变更的范围和影响 干系人之间的相互关系和潜在交叉 项目现阶段的干系人沟通需求 需要分发给干系人的信息,包括语言、格式、内容和详细程度 https://www.jianshu.com/p/7c84df46db4c
4.如何做好项目干系人(相关方)管理?内部除了团队成员以外,最重要的还是决策层的沟通,也就是所谓的“向上管理”,易趋里程碑计划针对管理层对项目状况进行重点把控,保障决策层对项目把控的颗粒度“拿捏到位”但又能了解到需要知道的项目进展情况,以便于项目经理申请支持。 2.外部干系人管理 https://blog.itpub.net/31546492/viewspace-2871037/
5.干系人管理计划干系人管理计划 干系人管理计划 项目名称: 批准日期 1干系人参与程度评估 干系人 不知晓 抵制 中立 支持 主导 C为当前参与水平 D为期望参与水平 2干系人沟通需求评估 干系人 沟通需求/需要信息 方法或媒介 时间或频率 3干系人关系评估 干系人可能发生的变更: 干系人内部关系: 4 干系人参与途径管理计划 https://wenku.baidu.com/view/d4410fa65a0216fc700abb68a98271fe900eaf0c.html
6.项目管理知识体系1、沟通计划编制 2、信息发布 3、绩效报告 收集并分发有关项目绩效的信息,包括状态报告、进展报告和预测。 4、项目干系人管理 八、项目风险管理 1、风险管理计划编制 描述如何为项目处理和执行风险管理活动。 2、风险识别 识别和确认出项目究竟有哪些风险,这些项目风险究竟有哪些基本的特性,这些项目风险可能会影响项https://m.oh100.com/peixun/xiangmuguanli/319446.html
7.项目管理如何做好干系人明确干系人角色、有效沟通、建立信任和共识、制定清晰的干系人管理计划。明确干系人角色是项目成功的关键之一。在项目初期,项目经理需要识别所有相关干系人,了解他们的需求和期望。通过与干系人进行深入交流,可以明确他们对项目的影响力和对项目结果的期望。这不仅有助于项目经理制定更加精准的项目计划,也能确保各方利https://www.informat.cn/qa/196095
8.活动管理全攻略——Chapter5活动管理的基本流程Getz(1997)、Goldblatt(1997)、Watt(1998)、O’toole和Mikolaitis(2002)、Allen(2002)以及Shone和Parry(2004)等学者或业内从业人员先后提出了理想的节事活动管理流程或模型,尽管所用的术语不尽相同,但基本思想没有太大区别。其基本过程都包括:调查研究;明确目标及其可行性;策划和制定初步计划;组织和协调;项目实施;https://www.31huiyi.com/newslist_article/article/1414414867
9.软件项目策划书(5篇)项目描述,项目目标、主要项目阶段、里程碑、可交付成果。所计划的职责分配(包括用户的); 沟通管理计划,确定项目干系人对信息和沟通的需要:即什么人何时需要什么信息以及通过什么方式将信息提供给他们。质量管理计划,确定适合于项目的质量标准和如何满足其要求。如果有必要,可以包括上述每一个计划,详细程度根据每个具体项https://www.ruiwen.com/xiangmucehuashu/6266632.html
10.项目管理的五个过程和九大知识领域项目管理的五个过程组:启动、计划、执行、控制与收尾,贯穿于项目的整个生命周期,对于项目的启动过程,特别要注意组织环境及项目干系人的分析;而在 后面的过程中,项目经理要抓好项目的控制,控制的理想结果就是在要求的时间、成本及质量限度内完成双方都满意的项目范围。 http://hbdrc.hebei.gov.cn/zxy/xmqgczx/xmgl/202306/t20230612_71555.html
11.CMMI5项目经理角色访谈学习笔记CMMI认证按项目实施计划模版,制定人力资源计划,对人员进行分工(项目经理、开发人员、QA、CM)。 ⑷、什么地方记录了项目干系人,如何确保干系人参与有效? 在项目实施计划中干系人管理计划中,干系人沟通记录; 在与干系人沟通时,事前通知,事中控制、确认,事后分析。 https://www.cmmirz.com/cmmi5-project-manager-interview-note/
12.项目计划进度与控制(豆瓣)项目管理入门(下)--项目执行、控制和收尾 原文发表于知乎专栏:项目管理入门(下)--项目执行、控制和收尾 4.项目执行和控制 执行过程组包含完成项目管理计划中确定的工作,以满足项目规范要求的一组过程。本过程组需要按照项目管理计划来协调人员和资源,管理干系人期望,以及整合并实施项目活动。 项目执行的结果 (https://book.douban.com/subject/1101762/
13.高新课堂第一百三十六期项目管理计划输出:一份计划文件,合并与整合了其他各规划过程所产生的所有子管理计划和基础(范围基准、进度基准、成本基准)。 3、 指导管理项目工作 为实现项目目标而领导和执行项目管理计划中所确定的工作,并实施已批准变更的过程。通常以“开题会议”为开始标志。由项目的主要干系人联合召开的会议。 https://static.nfapp.southcn.com/content/202011/25/c4344878.html
14.项目管理工作计划怎么写(精选10篇)今年是物业公司运行的第一年,实行二块牌子(1.物业管理公司 2.管理中心)一套人马,在保留原中心的功能基础上,通过物业的运作,最终走向市场。定编定岗从厂里的统一管理安排,计划全公司定编 37人,其中管理人员7人,按照厂里的培训安排参加培训。 二、 代租、代收计划 按照厂里的物业管理委托要求,对x大楼及将要成的其https://www.liuxue86.com/a/4802389.html