首页 » 技术资讯 » 项目经理必须懂的3种项目管理模型(模型开发增量需求迭代)「项目 模型」

项目经理必须懂的3种项目管理模型(模型开发增量需求迭代)「项目 模型」

萌界大人物 2024-07-24 03:05:57 技术资讯 0

扫一扫用手机浏览

文章目录 [+]

瀑布模型、增量模型、迭代模型是项目管理常见的三种模型。
每种模型都有其优缺点和适用的项目类型。
作为项目经理必须对这几种模型有深入的了解,然后针对不同的项目采用相对应的模型,才能起到事半功倍的作用。

1瀑布模型

将软件生命周期分为收集需求、需求分析、软件设计、程序编写、软件测试和运行维护等六个基本活动。
规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。
这就是瀑布模型, 如图1-1所示。

简单的说就是先定好需求和相关文档,然后构建框架,然后写代码,然后测试,最后发布产品。
一旦文档需求确定,开发人员就按文档开发,直到产品开发完后,才会拿出来给客户。
其特征是文档驱动,上一个阶段的所有工作完成且必须有输出产物,结果需要通过审核,才能“流动”到下一个阶段;否则返回前一阶段,甚至更前的阶段活动。

项目经理必须懂的3种项目管理模型(模型开发增量需求迭代) 项目经理必须懂的3种项目管理模型(模型开发增量需求迭代) 技术资讯
(图片来自网络侵删)

图1-1 瀑布模型流程示意图

瀑布模型的优点:

项目经理必须懂的3种项目管理模型(模型开发增量需求迭代) 项目经理必须懂的3种项目管理模型(模型开发增量需求迭代) 技术资讯
(图片来自网络侵删)

1)阶段划分明确,每个阶段完成后设置有检查点。
前一阶段完成后就只需关注下一阶段。

2)在编码前设置有系统分析和设计的阶段,这个阶段主要考虑系统的逻辑实现,进行系统架构、方案、技术路线等的详细分析和设计,并进行严格的评审后才能进行编码工作,减少了后续编码返工的可能性,且因为前期详尽逻辑分析和设计,后续编码按要求进行即可,经验不是很丰富的工程师也能胜任工作。

3)迫使开发人员采用规范的方法,严格规定了每个阶段需提交的文档,提交的文档必须经过评审审核,降低了沟通成本,有利于早发现问题。
每个阶段的开发质量有保障,减少了返工。

瀑布模型的缺点:

1)完全依赖于各阶段产生的文档,没有文档软件几乎不可维护。
也很可能导致最终开发出来的产品不是用户所需要的。

2)各阶段完全固定且产生大量的文档,极大的增加了工作量。

3)由于开发模型是线性的,单一流程,不可逆,用户只有等到整个过程的末期才能见到开发成果,从而增加了开发风险。

4)测试是其中一个单独的阶段,编码全部完成后才能进行测试,使开发早期的错误可能要等到测试阶段才能发现,发现问题越晚造成代价越高。

5)要等需求完全确认后才能进行开发,后期一旦需求变更代价较高。
不适应需求频繁变化。

6)需要更多的时间进行前期的详细计划。

瀑布模型适用的项目范围:

1)需求很明确且不能隐含不可克服的风险。

2)开发阶段需求不会变化或很少变化。

3)客户除了提出需求以外很少参与开发工作。

4)开发人员对业务领域很熟悉。

5)要求项目预算充足,人员齐备。

瀑布模型开发过程:

图1-2 瀑布模型的开发过程


2增量模型

一般是指具有底层框架和平台的项目,在该稳定的框架和平台上,来开发和增加具体的业务功能。
首先对系统最核心或最清晰的需求进行开发并集成到系统中,再按优先级逐步开发后续的需求,逐步建设成一个完整系统。
每个增量之间相对独立,各个增量可以并行开发,增量内部是瀑布模型。
增量模型的第一个增量往往是实现基本需求的核心产品。
增量模型本质上是迭代的,强调每一个增量都能发布一个可用的产品。

图2-1 增量模型流程示意图

增量模型的优点:

1)能在较短时间内向用户提交可完成部分工作的可适用的产品。

2)有利于进度控制,也能够有计划地管理技术风险,风险分布到几个更小的增量中。

3)整个项目的资金不会被提前消耗,因为首先开发和交付了主要功能和高风险功能。
每个增量交付一个可操作的产品,在达到初始需求之前可降低成本。

4)灵活性优于瀑布模型,适用需求的变化。

5)逐步增加产品功能可以使用户有较充裕的时间学习和适应新产品,因为客户可以不断地看到所开发的软件,更加理解后续增量的需求,有利于增加客户对系统的信心,客户也可及时体验并提出问题,从而降低了开发风险,每次增量交付过程中获取的经验,有利于后面的改进,客户也有机会对建立好的模型作出反应,从而提高系统可靠性、稳定性和可维护性。

增量模型的缺点:

1)由于各个构件是逐渐并入已有的软件体系结构中的,所以加入构件必须不破坏已构造好的系统部分,这需要软件具备开放式的体系结构。

2)增量模型的灵活性强,很容易退化为边做边改模型。

3)增量粒度难以选择。

4)确定所有的基本业务需求比较困难。

增量模型适用的项目范围:

1)一般适用于具有底层框架和平台的项目,且用户核心需求或初始需求非常清晰。

2)产品可以分割成不同的阶段分别完成。

3)若软件可拆卸度不高,开发人员全局把握水平不高,用户不同意分阶段提交产品,或者开发人员过剩,都不适宜。

3迭代模型能

是以架构为核心,用例为驱动的,每次只设计和实现这个产品的一部分,每次设计和实现一个阶段叫做一个迭代,每一次迭代都完整地经过所有工作流程的过程(需求分析、设计、测试、实施),再通过客户的反馈来细化需求,并开始新一轮的迭代。
真正的迭代必须把每一个迭代周期的成果交给用户,而且每次的成果都是完整可用的。
每一次迭代必须以产品的发布结束!

图3-1 迭代模型流程示意图

迭代模型的优点:

1)开发工作可以在需求被完整地确定之前启动,降低了风险,在大规模的投资之前就解决了关键的风险分析。

2)得到早期用户反馈和及时的用户反馈,这样可以快速的调整产品的方向,避免在无用的功能浪费时间和精力,减少风险。

3)持续的测试和集成。

4)拥抱变更。
由于用户的需求并不能在一开始就作出完全的界定,它们通常是在后续阶段中不断细化的。
因此,更容易适应需求的变更。

5)提高复用性。

6)由风险驱动,强调可选方案和约束条件从而支持软件的重用,有助于将软件质量作为特殊目标融入产品开发之中。

7)对过程的测量是通过对实现的评定(而不仅仅是文档)来进行的。

迭代模型的缺点:

1)风险管理成本较高,在风险分析,进度管理方面,对项目组成员的要求也非常高。
需有一个高素质的项目管理者和一个高技术水平的开发团队。
对产品人员的节奏把控能力(定每周目标,需求优先级剖析,以及临时需求的处理)有较高要求,不然容易陷入每周发版日加班加死的节奏。

2)容易跑偏方向,进入无尽的改良却见效甚微。
如果产品出发点、方向,迭代的性质和定位不够清晰,那么会陷入无休止的方向调整和补漏当中。

3)盲目快速堆砌功能而忽视框架搭建,导致后续改动往往牵一发而动全身,可能就是小小的动一处而牵动无数功能出现不可预知的BUG。

迭代模型适用的项目范围:

1)高风险项目,且需求不确定,用户能在整个开发过程中不同程度地参与。

2)一个需求大而全的产品,创新型的产品,特别是对产品最终形态还缺乏概念的时候。

迭代模型的项目计划制定方法:

1)以迭代周期的时间线进行计划制定

图3-2 迭代模型的时间轴线计划制定方法

2)以软件工程流程进行计划制定

图3-3 迭代模型的软件工程轴线计划制定方法

4增量模型与迭代模型的关系和区别

共同点:每阶段完成之后,都有一个新版本发布。
有利于鼓舞团队的士气,降低项目的风险。
不同点:主要是阶段的划分上不太一样。
增量模型从功能量上来划分,每阶段完成一定的功能。
迭代模型是从功能的深度或细化的程度来划分,每阶段不断去完善增强功能。

适用性:增量模型适用于需求比较明确,架构比较稳定的软件开发,每次增量不影响已有的架构,在已有的架构下增加新的功能。
迭代模型适用于需求不明确、难度比较大的软件开发。
在实际应用中,增量、迭代经常一起使用,如迭代时加入新的功能进行开发。
我们在开发自己的软件时,需要根据软件项目的实际情况,进行不同的增量、迭代组合,以充分利用资源,降低项目风险。

5敏捷开发与迭代开发的区别

敏捷开发是以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。
迭代开发是软件开发的一种生命周期模型,是一种开发过程;敏捷开发是多种软件开发项目管理方法的集合,是一种开发方法。
这是两者最根本的区别。

敏捷开发是一个总体概念,而迭代式开发只是几乎所有敏捷开发所采用的一个主要的基础实践。
敏捷开发除迭代式开发外,还包含了其他许多管理与工程技术实践,如演进式架构设计、敏捷建模、重构、自动回归测试等等。
总而言之,就是敏捷开发与迭代开发是整体与局部的关系,前者就像大家庭,而后者是大家庭中的一员。

敏捷开发是一个庞大的体系,后面我花时间整理好了给大家详细介绍,先放一个图给大家简单介绍一下敏捷开发的过程。

图5-1 敏捷开发过程示意图

① PO和开发团队对产品业务目标形成共识。

② PO建立和维护产品需求列表并进行优先级排序。

③ PO每轮迭代前,Review需求列表,并筛选高优先级需求进入本轮迭代开发。

④ 开发团队细化本轮迭代需求,并按照需求的优先级,依次在本轮迭代完成。

⑤ 开发团队每日站立会议、特性开发、持续集成,使开发进度真正透明。

⑥ PO对每轮迭代交付的可工作软件进行现场验收和反馈。

⑦ 回到第3步,开始下一轮迭代。

总之,PM在实际的项目工作中,针对不同的项目类型,应该根据不同项目模型的特点选择合适的项目开发模型,这样才能事半功倍,助力项目成功!

标签:

相关文章