01、背景
不知道作为项目经理的我们,是否或曾经有过这样的困惑:
项目已经立项了,一切论证都准备就绪,即将进入到实施阶段,但不知道从何处入手?
初始接到领导安排的一个项目,但感觉项目很复杂,不确定性因素很高,该如何循序渐进地推进项目?
项目即将进入开发阶段,该以怎样的一种开发模式进行是最有效的:预测?迭代?增量?适应?敏捷?混合?总是分不清。
困惑,纠结,以及项目本身的特点——不确定性和未知性,使得做好项目管理并不是一件容易的事。作为项目经理,在这种困惑和不确定性的背景下,压力也会倍增。
那怎么避免或减轻项目初始的这些压力,让项目可以更好地切入呢?关于方面的思路或引导, 其实在PMBOK指南介绍完什么是项目,什么是项目管理时,就开始介绍了,这部分内容就是项目和开发生命周期。
但不难发现,我们很多项目经理同学,学完这一小节之后并没有真正地掌握这一节内容告诉我们的目的是什么,也不明白项目和开发生命周期的真正效用。
今天这篇文章,就来谈一谈我的理解,以及我当下的认知,作为项目经理如何掌握和理解项目和开发生命周期的效用。
我们先用一张视图来全景的了解下什么是项目和开发生命周期,而后我们一一来介绍项目和开发生命周期。
02 、项目命周期
在介绍项目生命周期及效用之前,我们需要先了解下项目的类别。
一、项目的类别
我们实际或经历、或参与、或负责的项目类别中,大多分为两类,分别是:合同驱动型和市场驱动型。
合同驱动型项目,通常是指传统型项目,这类项目是事先签好合同,在合同中约定好交付的范围、交付的时间以及交付的质量,然后按照合同要求,在预期时间内进行交付。这类项目通常采用的是瀑布型的开发模式。
市场驱动型项目,则更多的是以市场为导向,而市场是多变的。对这类项目,我们往往是没办法预知市场需要怎样的产品。在这个过程中,我们需要更加适应市场的变化,通过快速迭代,或者增量的方式进行交付,在市场上进行逐步的验证。对于这类项目通常采用的就是适应型(也就是我们常说的敏捷)的开发模式。
二、项目生命周期
来自《PMBOK指南》第6版本P19页有介绍:项目生命周期指项目从启动到完成所经历的一系列阶段。它为项目管理提供了一个基本框架。不论项目涉及的具体工作是什么,这个基本框架都适用。这些阶段之间的关系可以顺序、迭代或交叠进行。所有项目都呈现下图所示的通用的生命周期。
项目生命周期分为预测型和适应型。合同驱动型对应的是预测型的项目生命周期,而市场驱动型对应的是适应型的项目生命周期。
三、项目开发阶段
再来熟悉一遍项目生命周期的概念:项目生命周期指项目从启动到完成所经历的一系列阶段。如果仅仅从概念上来理解,似乎并没有什么实质性的有效信息。但其实有一个关键信息——一系列阶段。因此,这句话告诉我们项目经理的是,做项目是需要按阶段来进行管理的。而且成功的项目,也需要按阶段来进行管理。
项目的特点之一是不确定性,在整个过程中,是一个逐渐明晰的过程,无论是哪种类型的项目,把项目分成若干个阶段来进行管理,一方面是可以清楚每个阶段的重难点或侧重点,更好地推进事情(目标)本身的达成;另一方面是可以降低项目的不确定性,并且增强项目成功的信心。
以互联网或游戏项目为例,项目大都可以分为:demo、核心功能、周边功能、打磨调优、测试调优、正式上线这几个阶段。
近两年来我自己负责的一款中大型游戏项目,我是按如下图所示的阶段进行划分和管理。一共分为7个阶段:概念设计、核心切片(demo或MVP)、垂直切片、内容铺量、打磨调优、测试调优、正式上线。
四、项目生命周期对做项目的实际指导
《PMBOK指南》里面介绍的项目生命周期,本质上和PRINCE2介绍的按阶段管理原则,本质上是一致的。其根本的用意都是在于让我们项目经理负责项目时,需要进行充分的规划,而不是漫无目的地就开干。具体来说,项目生命周期对项目的开展有以下实际的指导(以上图为例)
1)项目按阶段划分之后,可以清楚地知道每个阶段需要完成的工作,以及重要的交付物。这是非常有利于项目有序地开展,并且有利于管控每个阶段的风险点。
2)项目按阶段划分之后,可以清楚地定义每个重要的里程碑时间节点,并且确定交付和验收的时间节点。时间节点的定义,对项目计划的制定是具有指导性的。通常可以借助第一个阶段完成的情况,来界定团队的交付能力,项目的节奏,以及推算后续各阶段的关键里程碑。
3)项目按阶段划分之后,可以界定每个阶段的人员分工、权责,并且可以根据阶段目标的情况进行调整。这点对于市场驱动型项目尤为重要,很多时候项目一开始并没有足够的人员参与到项目中来,往往都是从最小可投入人员开始,然后在每个阶段过程中,逐步根据市场的需要,项目的变化而不断调整人员的加入,这也从侧面对成本是一种有效的控制。
4)项目按阶段划分之后,每个阶段实质性的交付,一个个阶段里程碑目标的达成(从一个“胜利”走向下一个“胜利”),对团队来说,是一种最好的团建,因为这个过程中团队成员可以体验项目各阶段峰值所带来的愉悦。尤其是对于一个中大型项目,周期2-3年,阶段性里程碑目标达成,对于一个团队的信心、凝聚力、战斗力的提升和维持,太重要了。
03 、开发命周期
掌握了项目生命周期的效用之后,继续来了解和掌握开发生命周期。
一、开发生命周期
项目生命周期内通常有一个或多个阶段与产品、服务或成果的开发相关,这些阶段称为开发生命周期。也就是说,要达成每个阶段的目标,采用哪种开发模式:预测型(瀑布型)、敏捷型(迭代型、增量型、适应型)、混合型的模式。用一张示意图表示如下:
1)预测型生命周期,也称为瀑布型生命周期。项目从启动之后,需求准备,设计,开发,测试,到最后发布,或交付给客户都是将所有的事情做完之后才到下一步。这样一来,会大大增加最后交付产品的风险。
2)迭代型生命周期,属于敏捷的一种方式,是通过一系列重复的循环活动来开发产品。迭代的本质是一个由模糊逐步变清晰的过程。参考如下图:
(图片来源:《双赢》)
做过游戏项目的同学对迭代型的场景应该都有了解。比如一些3A大作,会有涉及到3D模型,那么在制作3D模型的时候,就是采用的迭代方式。从原画设计开始,先绘制线稿,然后上色,再制作模型,是一个逐步实现的过程。
3)增量型生命周期,也是敏捷的一种方式,是通过在预定的时间区间内渐进增加产品功能的一系列迭代来产出可交付成果。只有在最后一次迭代之后,可交付成果具有了必要和足够的能力,才能被视为完整的。
(图片来源:《双赢》)
对于互联网很多产品,以及游戏项目,都是一个增量的过程,先有核心玩法,然后逐步补充次核心玩法,再补充周边玩法。每次的交付都是在逐步增加产品的功能。因此,增量的本质是渐进地增加产品的功能。
4)适应型生命周期属于敏捷型、迭代型或增量型。适应型生命周期也称为敏捷或变更驱动型生命周期。如下图示例,使用敏捷开发模式:
5)混合型生命周期是预测型生命周期和适应型生命周期的组合。充分了解或有确定需求的项目要 素遵循预测型开发生命周期,而仍在发展中的要素遵循适应型开发生命周期。
二、开发生命周期对做项目的实际指导
在项目阶段确定之后,接下来要确定的就是项目每个阶段的开发模式。在我们真正学习和掌握开发生命周期时,会发现项目的开发模式为三大类:
1)预测型(瀑布开发模式)
2)敏捷(迭代、增量、适应)
3)混合型(瀑布+敏捷)
至于怎么去选择最适合自己项目的开发模式,可以和项目管理团队一起确定。下图是从需求和技术,以及确定和不确定组合而成的5个区域,分别代表不同类别的项目。在进行开发模式选择时,可供参考。
当然,不管如何选择开发模式,作为项目经理,始终要有一种认知——开发模式的选择,没有绝对的好与不好之分,只有合适与否,而且在选择时,要足够灵活,要能够应对项目中的各种因素,要切实有利于项目各阶段各项目工作的开展。
04 、适合的才是最好的
郭致星老师在《双赢》一书说:项目管理是一套系统的管理方法和思维方式。良好的项目管理不仅需要开阔的思路和视野,更需要系统化的思维方式。
这些年,随着敏捷的越来越流行,似乎有一种趋势——项目中如果没有使用敏捷就做不好项目一样。然而事实是,很多企业或项目经理生搬硬套敏捷的各种方法论,不仅没有取得预期的效果,反而使得项目推进问题层出不穷,甚至阻碍了项目的推进。
因此,互联网行业有一种说法,叫做“敏捷已死”。究其根本原因,并不是敏捷已死,而是很多企业或项目经理用着用着就偏离了敏捷的思想和原则,甚至走入了误区,不仅没有发挥敏捷本身的效用,更是给组织,给项目带来了很大的困扰。从我个人现在的认知来看,我认为这是需要警惕的。
再回到我们学PMBOK,学PRINCE2,学ACP,也都是需要我们真正地去理解,然后根据公司的环境,实际项目的背景,包括团队成员的具体情况而进行裁剪。无论选择哪种模式,都是要遵循适合自己项目的原则,这才是上上策。
本文来自公众号:项目管理跃迁(ID:xmglyueqian),作者:徐州
授权发布于管理圈,如需转载请联系原作者。