选择合适的项目开发模型,用正确的姿势管理项目

瀑布型

在这里插入图片描述

瀑布模型(Waterfall Model) 是一个项目开发架构,开发过程是通过设计一系列阶段顺序展开的,从系统需求分析开始直到产品发布和维护,每个阶段都会产生循环反馈,因此,如果有信息未被覆盖或者发现了问题,那么最好 “返回”上一个阶段并进行适当的修改,项目开发进程从一个阶段“流动”到下一个阶段,这也是瀑布模型名称的由来。包括软件工程开发、企业项目开发、产品生产以及市场销售等构造瀑布模型。

迭代型在这里插入图片描述

迭代型生命周期适用于需求高度不确定的项目,所以迭代型生命周期的时间较长(需要不断反馈和调整),但是它是为了产品价值优化,而不是为了交付速度优化。

假如这个产品要求6个月交货,我在第一个月就会拿出一个产品来,当然,这个产品会很不完善,会有很多功能还没有添加进去,bug很多,还不稳定,但客户看了以后,会提出更详细的修改意见,这样,你就知道自己距离客户的需求有多远,我回家以后,再花一个月,在上个月所作的需求分析、框架设计、代码、测试等等的基础上,进一步改进,又拿出一个更完善的产品来,给客户看,让他们提意见。就这样,我的产品在功能上、质量上都能够逐渐逼近客户的要求,不会出现我花了大量心血后,直到最后发布之时才发现根本不是客户要的东西的情况。

增量型

在这里插入图片描述

增量型生命周期如同搭积木,先实现系统的一部分,然后再实现一部分,直到最终全部实现,它是一种适应性项目生命周期,它是通过在预定的时间区间内渐进增加产品功能的一系列迭代来产出可交付成果。只有在最后一次迭代之后,可交付成果具有了必
要和足够的能力,才能被视为完整的。

敏捷型

在这里插入图片描述

敏捷的含义是快速的或通用的。“敏捷模型“是指基于迭代开发的软件开发方法。敏捷方法将任务分解为较小的迭代,或者部分不直接涉及长期计划。在开发过程的开始就确定了项目范围和要求。事先明确定义了有关迭代次数,每次迭代的持续时间和范围的计划。
每次迭代都被视为敏捷流程模型中的短时间框架”,通常持续一到四个星期。将整个项目分成较小的部分有助于最大程度地降低项目风险,并减少总体项目交付时间要求。每次迭代都涉及一个团队,在整个软件开发生命周期中进行工作,包括计划,需求分析,设计,编码和测试,然后再向客户展示可运行的产品。

迭代模型和增量模型的区别

在这里插入图片描述

开发过程中选择哪种开发模型

在这里插入图片描述

在1996年,Ralph.D.Stacey提出了著名的STACEY矩阵,这个方法可以帮助项目经理判断所做的项目应该使用哪种(可以为一种或者多种)开发方法。这个矩阵也告诉了我们,并不是一味地只去套用自己最熟悉的开发方法去开发所有的项目,开发方法还是得取决于项目的场景和属性。

在STACEY矩阵横轴代表的是技术的确定性,纵轴代表的是需求的明确性。

矩阵里一共划分了5个区域,每个区域标明了推荐的生命周期(开发方法)。

区域一:需求很明确,技术也很确定。这一类项目相对简单,通常都有好的案例模板(说明书)或者通用的流程可以套用,比如搭建一个乐高模型。这类项目推荐使用瀑布型的开发方法,先做好规划再执行,这样对风险地把控也会比较好。

**区域二:技术相对确定,但是需求不是很明确。**比如说客户找到一个成熟的技术团队搭建一个网站,虽然技术团队知道如何去搭建,但客户却确迟迟定不下来网站应该具备的功能以及板块该如何划分,可使用原型法小成本的做一个模型,让客户确认是不是想要的,一步步迭代。

**区域三:跟二区相反,区域三的项目需求很明确,但技术不是很确定。**这类项目对项目团队来说属于比较棘手的,比如VR自助买菜和无人驾驶飞机这类,技术还不是很成熟。先把技术能搞定的部分完整实现,在慢慢探索后面的技术。

区域四:需求不明确,技术也非常不确定,项目经理对这类项目往往会感到迷茫,且目前给不出来解决方案。所以这个区域又被称为混乱状态,这种项目的失败率很高,能不碰尽量不要碰。

区域五:需求还在进一步明确中,技术也仍需探索研究,这个区域又被称为混沌或者模糊。先探索,可以采用螺旋模型应对项目中的风险,也可使用敏捷开发方法可以更好地拥抱变化,随机应变。

在项目开发过程中,在一个项目中并不是一个开发模型贯穿始终,往往根据具体情况采用不同的开发模型,而再项目管理中,从在很多其他的能够适应不同场景的开发模型,比如V模型,螺旋模型等等。

猜你喜欢

转载自blog.csdn.net/ren365880/article/details/127679128