前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >1 当我们谈论瀑布和敏捷的时候,究竟在说什么?-人人都是项目经理系列(全13篇)

1 当我们谈论瀑布和敏捷的时候,究竟在说什么?-人人都是项目经理系列(全13篇)

作者头像
放牛的星星
发布2020-07-10 13:31:00
1.1K0
发布2020-07-10 13:31:00
举报
文章被收录于专栏:壹种念头壹种念头

PMI全称Project Management Institute,中文名叫《项目管理协会》。成立于1969年,是全球领先的项目管理行业的倡导者,它创造性地制定了行业标准,由PMI组织编写的《项目管理知识体系指南》(PMBoK)已经成为项目管理领域最权威教科书,被誉为项目管理“圣经”。

1 PMI认证类型

PMI(项目管理协会)提供8种认证:

1、助理项目管理专业人士(Certified Associate in Project Management, CAPM®)

2、项目管理专业人士(Project Management Professional, PMP®)

3、项目集管理专业人士(Program Management Professional, PgMP®)

4、项目组合管理专业人士(Portfolio Management Professional, PfMP®)

5、PMI敏捷管理专业人士(PMI Agile Certified Practitioner, PMI-ACP®)

6、PMI商业分析专业人士(PMI Professional in Business Analysis, PMI-PBA®)

7、PMI风险管理专业人士(PMI Risk Management Professional, PMI-RMP®)

8、PMI进度管理专业人士(PMI Scheduling Professional, PMI-SP®)

虽然认证类型很多,但游戏行业内最常用的只有2个,PMP和ACP(第2条和第5条),前一种是我们常说的瀑布式开发,后一种就是我们说的敏捷开发。二者之间不止是认证的上的区别,而是开发流程和理念上的区别。

PMP强调的是一种规范,一种流程,它要求专业人士必须掌握项目管理的专业基础知识,可以用在非常广泛的领域内。一般用来打阵地战,攻坚战、持久战等“硬仗”。

ACP去掉了PMP这一整套臃肿的流程和规范,以人为本,针对人、需求或者市场做快速反应。以小步快跑的姿态快速做出反应,以适应需求调整,验证技术方案,抢占市场等需要快速应变的情境。

瀑布型和敏捷性都是游戏开发中常用的管理方案,但并不表示二者不可以并存。大部分时候我们使用瀑布型去规划和迭代一个游戏的生命周期、里程碑和重要版本节点,然后在部分技术攻坚里使用敏捷快速验证技术方案,以便能在指定的时间节点内选取最佳的实现。

如果对二者之间的区别还有模糊的地方,可以看看本人之前的一篇知乎回答:

https://www.zhihu.com/question/340916482/answer/795895051

2 敏捷宣言

很多人都曾经是“中华田园敏捷”的受害者。来看下敏捷软件开发宣言的四条核心价值观和12条原则:

四条核心价值观:

四个核心价值观,很多人对敏捷的理解的只有红字前面的半个部分。这里我希望所有能看到这篇文章的从业人员都能记住这个概念: 虽然我们强调前半部分,但是不代表后半部分不重要 !

12条原则:

  1. 我们最重要的目标,是通过持续不断地及早交付有价值的软件使客户满意。
  2. 欣然面对需求变化,即使在开发后期也一样。为了客户的竞争优势,敏捷过程掌控变化。
  3. 经常地交付可工作的软件,相隔几星期或一两个月,倾向于采取较短的周期。
  4. 业务人员和开发人员必须相互合作,项目中的每一天都不例外。
  5. 激发个体的斗志,以他们为核心搭建项目。提供所需的环境和支援,辅以信任,从而达成目标。
  6. 不论团队内外,传递信息效果最好效率也最高的方式是面对面的交谈。
  7. 可工作的软件是进度的首要度量标准。
  8. 敏捷过程倡导可持续开发。责任人、开发人员和用户要能够共同维持其步调稳定延续。
  9. 坚持不懈地追求技术卓越和良好设计,敏捷能力由此增强。
  10. 以简洁为本,它是极力减少不必要工作量的艺术。
  11. 最好的架构、需求和设计出自自组织团队。
  12. 团队定期地反思如何能提高成效,并依此调整自身的举止表现。

敏捷管理仍然需要流程和工具、详尽的文档、针对合同的谈判以及遵循开发计划。并且事实上,一个敏捷的冲刺周期,就是一个小型的瀑布。

要跳出类似于下面的思维误区:

  • 敏捷开发不是极限开发,上下班或者工作量随意
  • 敏捷开发拥抱变化不是随意变化,策划往往看了效果再改一版
  • 敏捷开发不是忽律质量,每个迭代的质量仍然需要保证通过验收
  • 敏捷开发不会缩短开发周期(相反因为频繁修改还会拉长)

3 瀑布概述

游戏开发其实就是一个项目开发。具体的阐述可以参考我之前的知乎文章:

https://zhuanlan.zhihu.com/p/75653494

那么一个项目除了文章里阐述的独特性和临时性之外,它还有几个方面需要了解:

五大过程组:

  • 启动、规划、执行、监控、收尾

十大知识领域:

  • 整合、范围、进度、成本、质量、风险、资源、沟通、采购、相关方。其中范围、进度、成本、质量4个是游戏开发的核心领域。

49个子过程:

  • 太多了这里就不列了,基本就是十大知识领域里的各个子过程,后面在讲解具体领域的时候会提及游戏开发中常用的一些部分。

4 项目和运营

第一次了解项目管理,最容易混淆的两个概念,什么是项目,什么是运营。

比如《魔兽世界怀旧服》是项目还是运营?项目和运营之间怎么衔接和过渡?怎么区分他们之间的责任?

那这里其实我们要比对一下二者的定义:

  • 项目:是为创造独特的产品、服务或成果而进行的临时性工作。
  • 运营:是一种生产重复性结果的持续性工作。

项目和运营会在产品生命周期的不同时点交叉。在每个交叉点,可交付成果及知识在项目与运营之间转移,以完成工作交接。

用图区分:

所以拿刚才的示例分析:

  • 《魔兽世界怀旧服》在开发阶段属于项目,在交付上线之后属于运营。
  • 《魔兽世界怀旧服》正在进行新的阶段和版本开发,可以理解为一个项目在做循环的规划-执行-监督的过程循环,也可以认为是新开了一个项目。
  • 项目和运营不一定要同时存在,比如《魔兽怀旧服》的私服,就只有运营没有项目阶段。运营过程中产生的问题,如果项目团队还在,可以请求项目团队帮助解决和修复,如果项目团队已经解散,那么只能通过运营手段去补偿或者规避了。再比如各种《传奇》私服,都是偷跑的源码,没有项目团队支撑的。

5 生命周期概述

生命周期分为开发生命周期和产品生命周期。

开发生命周期是指项目生命周期内与产品、服务或成果的开发相关的一个或多个阶段。根据实际情况可以分为几种类型:预测型、迭代型、增量型、适应型、混合型。

预测型

又叫 瀑布型或者计划驱动。是游戏开发最常用的开发类型了。如图所示:

在充分了解产品的前提下,有厚实的行业基础和技术支持,按计划执行开发、并一次交付。就很符合游戏开发的 立项-内容规划-开发-上线的步骤。但某些在线游戏可能会经常更新版本和内容,但不管怎么说,这些后续的版本我们都可以认为是一个新的项目,同样经过了 立项(其实是版本启动会)-内容规划-开发-上线的步骤。

迭代型

范围在早期确定,但时间及成本估算将随项目团队对产品理解的不断深入而定期修改(重复的循环)。大部分时候,游戏开发都是一个渐进明细的过程。也就是说开发周期内会提前订好我们需要哪些功能,比如,联盟、任务、背包、商店等等,但是具体的功能还是需要策划给出了策划之后才知道我们要做成什么样。也就是有一个由粗糙到精细,从简单到复杂的情况。描述下来大概会是这样:

增量型

在预定的时间区间内渐进增加产品功能的一系列迭代来产出可交付成果(渐进地增加)。有的时候出于版本时间的规划或者实际上人手不足,那么某些功能系统可能无法一次给出全部设定。那么就可能会进行第一版,第二版、第三版这样的功能增量。这个要区别于迭代的概念,迭代是现有整体了,然后渐进明细。而增量是先有一部分,再有一部分。也就是说,只有最后一部分完成了,这个功能才算完成了。

敏捷型

又叫适应型、变更驱动。总的范围不会提前规划好,而是详细范围在迭代开始之前才得到了定义和批准。这个应该是部分老板最喜欢的模式了,因为可以堂而皇之的在过程中增加、修改功能。但其实前面有说到过,敏捷也要遵守一些既定的规范和认知才可以。

它的重要概念还是,以较小的增量、快速迭代、每次交付最有价值的东西。它是一个不停的迭代,然后回顾总结,再进行下一步的方式。

做个总结的话是这样:

那还有一个类型没有说,混合型,其实就是结合上面的一种或者几种进行混合开发。我觉得游戏主要还是适用瀑布型的开发,但是在某些迭代或者版本或者需要技术验证的时候,需要其他几种进行穿插辅助。

任何流程或者工具都是用来解决问题的,不必拘泥于必须使用哪个。但从最佳实践来说,大型的游戏开发还是适合瀑布型,而小团队或者独立游戏可以考虑其他的周期类型。

产品生命周期是一个产品从概念、交付、成长、成熟到衰退的整个演变过程的一系列阶段,典型的产品生命周期一般可分为四个阶段:投入期、成长期、成熟期和衰退期。和时间的关系图:

简单的举个例子说明一个游戏产品的生命周期:

立项-Demo-研发-封测-内测-收费运营-持续更新版本-玩家离开-维护成本过高-停服。

6 工作绩效

KPI是公司考核员工工作能力或者业绩的一种方式。全称叫关键绩效指标(KPI:Key Performance Indicator)是通过对组织内部流程的输入端、输出端的关键参数进行设置、取样、计算、分析,衡量流程绩效的一种目标式量化管理指标,是把企业的战略目标分解为可操作的工作目标的工具,是企业绩效管理的基础。KPI可以是部门主管明确部门的主要责任,并以此为基础,明确部门人员的业绩衡量指标。建立明确的切实可行的KPI体系,是做好绩效管理的关键。关键绩效指标是用于衡量工作人员工作绩效表现的量化指标,是绩效计划的重要组成部分。

实际项目里,指定和管理KPI也是项目经理的一项重要职责。绩效从产生的过程又分为三个阶段:绩效数据、绩效信息、绩效报告。定义和区别可以参考下面的表格:

简单解释来说就是,绩效数据是收集当前项目的范围、进度、成本中影响较大的核心的基础数据。比如,这个版本一共完成了几个大系统,每个系统分别花费了多少的工时和人力。

得到了基础的第一手数据之后,再进行复盘会议,和版本之初进行比对,得到偏差的结果,然后想办法去纠正偏差。如果是版本计划内容过多了,下个版本要减少一些内容,如果是进度延期了,看看是不是要换经验更好的人来做这个功能系统等等。总之就是拿到实际的绩效数据之后,和原始规划的进行复盘,得到一些整合分析过的数据,就是绩效信息了。

有了绩效信息之后,把各个部分绩效信息汇总,制作成项目内部约定好的格式,形成一份文件进行归档或者给提交给上级,就是绩效报告了。

绩效报告非常重要,它能及时的发现并解决项目问题,让项目人员可以尽早的采取措施,将偏离基准的部分拉回正轨,降低偏差所带来的影响。

7 重要性

本章的最后,我们还是需要强调游戏开发中项目管理的重要性。

项目管理是将知识、技能、工具与技术应用于项目活动,以满足项目的要求。项目管理通过合理运用与整合特定项目所需的各个过程过程,来让可交付成果得以实现。项目管理可以让组织或者团队有效且高效地开展项目。

1、有效的项目管理能够帮助个人、群体以及公共和私人组织:

  • 达成业务目标;
  • 满足相关方的期望;
  • 提高可预测性;
  • 提高成功的概率;
  • 在适当的时间交付正确的产品;
  • 解决问题和争议;
  • 及时应对风险;
  • 优化组织资源的使用;
  • 识别、挽救或终止失败项目;
  • 管理制约因素(例如范围、质量、进度、成本、资源);

2、有效和高效的项目管理应被视为组织的战略能力。它使组织能够:

  • 将项目成果与业务目标联系起来;
  • 更有效地展开市场竞争;
  • 支持组织发展;
  • 通过适当调整项目管理计划,以应对商业环境改变给项目带来的影响
  • 平衡制约因素对项目的影响(例如范围扩大可能会增加成本或延长进度);
  • 以更好的方式管理变更。

3、项目管理不善或缺乏项目管理可能会导致:

  • 超过时限;
  • 成本超支;
  • 质量低劣;
  • 返工;
  • 项目范围扩大失控;
  • 组织声誉受损;
  • 相关方不满意;
  • 正在实施的项目无法达成目标。

项目是组织或者公司创造价值和效益的主要方式。在当今商业环境下,组织领导者需要应对预算紧缩、时间缩短、资源稀缺以及技术快速变化的情况。商业环境动荡不定,变化越来越快。为了在全球经济中保持竞争力,公司需要通过广泛利用项目管理,来持续创造商业价值。

声明:本系列文章的相关引用基本出自官方指导书籍《项目管理知识体系指南(PMBOK6中文版)》,少部分资料出自培训机构,并已经获得讲师JIM的授权。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-05-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 壹种念头 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1 PMI认证类型
  • 2 敏捷宣言
  • 3 瀑布概述
  • 4 项目和运营
  • 5 生命周期概述
  • 6 工作绩效
  • 7 重要性
相关产品与服务
项目管理
CODING 项目管理(CODING Project Management,CODING-PM)工具包含迭代管理、需求管理、任务管理、缺陷管理、文件/wiki 等功能,适用于研发团队进行项目管理或敏捷开发实践。结合敏捷研发理念,帮助您对产品进行迭代规划,让每个迭代中的需求、任务、缺陷无障碍沟通流转, 让项目开发过程风险可控,达到可持续性快速迭代。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档