话说3级的PM已经非常厉害了,但仍然处于定性阶段。如何才能不动声色的跟BOSS过招?PM 4级就是让数字变成你的嘴巴,开启项目管理的量化大门。因此,4级PM的工作重心(详见上一篇文章中的表格),也会逐渐转变。对应的四类工作,总结起来变化如下:

开发类:

保持3级,适当深化

项目管理类:

在量化的项目质量与绩效目标的要求下,识别关键过程,借助统计学的基线与模型,策划与监控关键项目过程

支撑与协作类:

  • 基于企业的目标体系,制定支撑业务目标实现的项目质量与绩效目标

  • 掌握统计学技术,对项目进行量化管理:

-  使用基线对项目进行监控,及时发现异常并分析解决

-  使用模型,预测项目的质量与绩效目标的达成情况,在项目早期就可以识别风险并加以管控

-  当发现有影响目标实现的问题存在时,进行根源分析,策划解决方案,并使用统计学技术,进行预测与差异性分析,以评估新的解决方案的可实施性

  • 数据驱动的向上管理:

-  就项目的质量、绩效目标,对业务目标的支撑性作用,与管理层达成一致

-  定期与管理层沟通项目的量化管理状态,并就下一步工作的开展达成一致

改进类:

当改进计划被评估分析并批准后,认真落实,并对改进结果进行评审验证

接下来,我们展开来说说软件项目的量化管理。在详细展开软件量化管理的实践之前,有必要先澄清三个问题。

一、没有准确的度量定义,收集的数据跟垃圾没有两样。

在软件开发过程中,具有潜在价值的度量指标繁多。怎么办?

很多PM问过我,“要想提高开发的效率,应该度量那些数据”?这问题不难啊,比如用代码行和工作量一除就有了。

可很多PM这么做了,却得不到想要的结果。为什么?

因为缺乏度量标准。

就拿代码行来说,有人度量新增的,有人度量更改的,有人包含提示行,有人不包含……工作量的度量呢,也是面临同样的问题,算不算测试啊,算不算写文档啊……结果N种代码行的度量,结合了N种工作量的度量。这样的量化结果,你说怎么拿来用?

所以,当PM要“用数据说话”的时候,最先要做的是定义。前面的基础打好了,后面的应用才不会浪费。

图片来自网络,版权归作者所有

二、数据确实可以一定程度上反应团队的绩效,但这是个雷区,非高手不要碰。

很多公司都有KPI考核,尤其那些文化中比较强调竞争性的公司,喜欢横向比较,甚至搞末位淘汰。我只能说,作为咨询师我愿意尊重公司的不同文化,但用量化的项目数据做个人绩效的评定,我并不赞同。IBM的研究,也证明了在两个不同的软件项目之间,很难找到可比的度量:

  • 不同类型的产品导致的任务复杂程度差别可能达到五倍

  • 小修改中每行代码的成本,常常高出新编程序的2-3倍

  • 需求更改的程度可以说千变万化

  • 相应项目设计变更的程度有过之而无不及

Flaherty,M.J. “Programming process measurement system for System/370,” IBM System Journal

图片来自网络,版权归作者所有

比绩效考核更为重要的是,使用项目数据真正的目的,是帮助企业看清项目的进展情况,为过程改进提供有价值的依据。

首先,数据采集的过程,无论是否使用自动化工具,都不可避免要人为参与。其次,产生不良数据的原因很多,直接使用往往会产生错误的评价。例如一个平均工龄大于5年的项目组,和一个平均工龄不到1年项目组,比较效率就没有意义。如果非得进行绩效评价,我们需要更多的维度和更多的数据。

三、量化管理 ≠ 数据管理

量化管理是建立在大量数据的基础之上,使用统计学技术,进行预测与监控,以数据驱动决策。

某公司开发阶段的人员成本偏高,主要原因在于人员的工作效率低下,因此希望通过控制开发阶段编码效率来减低人员成本。经过与项目团队的深入沟通,我们锁定了团队规模、开发语言难度和团队人员的能力三个可能的影响因素,并进行定义与赋值:

然后将以上三个可能的影响因素,统一为一个影响因素“团队能力权值”。

团队能力权值=团队成员能力*团队规模*开发语言难度

接下来,我们收集了50个产品类项目的代码行、工作量等信息。考虑到数据完整性等因素,最后选定30个有效产品类项目。使用统计学工具Minitab进行回归,建立了效率模型:

【编码效率模型】:Y=aX^b

Y - 编码效率,单位“KLOC/人月”

X - 团队能力权值,单位“个”

a、b - 系数(考虑数据保密性,以字母代替)

有了上述模型,PM可以在项目建立的初期,进行效率的预测估算,例如:

【场景】某个软件开发产品中,团队规模为小规模团队,采用C#作为开发语言,平均人员能力是三年以下工作经验,熟练掌握一种或两种开发语言,没有管理经验;

【分析】按照“团队能力权值的计算公式得出:X=0.32

【结果】Y=a0.32^b (KLOC/人月)

在项目开展的过程中,PM还可以根据基线(下图),对项目的进展状态进行监控,效率控制在3.12304~4.422919内,出现异常点时及时分析和处理:

下周我们会分享5级PM的过程管理能力。然后,详细阐述胜任四大类工作的具体做法。更多实践、更多干货分享,持续关注我们哦~

PM过程能力成熟度4级的更多相关文章

  1. PM过程能力成熟度2级

    当PM意识到自己不再是程序员后,就会在项目管理方面,逐渐达到过程能力成熟度1级.尽管这种亲身经历会带给PM管理的信心,但从项目的层面来说,整体还是混沌的,PM在经历过1级的阶段性胜利后,将面临更多的问 ...

  2. PM过程能力成熟度3级

    2级PM已经可以把项目管理起来了.如果这时候,企业只有一个PM,那这种程度的管理,只要逐渐深化,就可以一直维持下去. 然鹅,现实总是复杂很多... 公司会在PM建立2级的过程管理后,提高所有项目的可视 ...

  3. 突破瓶颈,再出发 - PM过程能力成熟度5级

    尽管程度不同,但PM的每个级别都在践行过程改进,并在4级借助数据,达到了“登峰造极”的程度.随着量化与统计分析的深入,项目会被优化到极其稳定的状态,组织的过程改进也就此进入了平台期. 平台期可以被视为 ...

  4. PM领导能力成熟度2级

    人生如戏,大幕拉开,他走上舞台,饰演PM一角. 从技术岗位迈向管理岗位的第一步,对大多数像他一样的新晋PM来说,并不轻松.技术知识与经验是他曾经的主要才能与成功基础,而从成熟度一级开始,身为管理者的他 ...

  5. PM过程管理成熟度1级

    之前,我已经从项目实现的角度.企业管理诉求两方面,分析了PM的核心能力架构,以及其在过程管理方面的能力等级.接下来,Fancier凡奉信息会站在PM能力成长的角度,横向与纵向阐述每一成熟度等级PM的过 ...

  6. CMMI能力成熟度模型集成的过程域

    什么是CMMI CMMI全称是Capability Maturity Model Integration, 即能力成熟度模型集成,是由美国国防部(Office of the Secretary of ...

  7. 能力成熟度模型CMM

    能力成熟度模型(Capability Maturity Model,英文缩写为CMM)[1]是 一种开发模型.Carnegie Mellon大学的研究人员从美国国防部合同承包方那里收集数据并加以研究, ...

  8. CMMI将能力成熟度分为5个级别

    CMMI将能力成熟度分为5个级别(初始级,已管理级,已定义级,量化管理级,优化级) . 初始级 此时软件过程是无序的,有时甚至是混乱的,对过程几乎没有定义,成功取决于个人努力.管理是反应式的. .可管 ...

  9. CMMI 能力成熟度模型集成

    关于CMMI的过程域,请参考 CMMI能力成熟度模型集成的过程区域 1.CMMI/SPCA概述 CMM是“能力成熟度模型(Capability Maturity Model)”的英文简写,该模型由美国 ...

随机推荐

  1. Spring Cloud Alibaba基础教程:Nacos的集群部署

    继续说说生产环境的Nacos搭建,通过上一篇<Spring Cloud Alibaba基础教程:Nacos的数据持久化>的介绍,我们已经知道Nacos对配置信息的存储原理,在集群搭建的时候 ...

  2. .net double类型转string类型的坑

    之前项目当中的接入的高德逆地理编码功能偶尔会出现参数错误的bug,经过排查服务端异常log,发现请求的url中的location参数中的小数点变成了逗号. 代码如下 public async Task ...

  3. 使用Ninject的一般步骤

    以下为DI控制反转个人理解烦请各位大牛指教~ 编写程序时我们应当遵循抵耦合高内聚的原则(各个功能模块互不依赖). 我们可以利用面向对象里面接口的特性来进行DI控制反转,让功能模块全部依赖接口,而不依赖 ...

  4. Appium的入门使用

    ps:有没有人和我一样觉得Appium官方文档写的很烂的, 这官方文档,还不如很多人写的博客详细,而且对于初学的入门者实在是不够友好, 官网:https://github.com/appium/jav ...

  5. SQL Server2008进程堵塞处理方法

    进程堵塞处理方法: select * from sys.sysprocesses where blocked <>0 and DB_NAME(dbid)='GSHCPDB'   ##查询堵 ...

  6. MIP开发教程(三) 使用MIP-CLI工具调试组件

    一 . 在 mip-extensions 仓库中创建新的组件 二 . 预览调试组件 三 . 在 MIP 页中引用自己编写的 MIP 组件 四 . 组件提交到 GitHub 仓库时需要进行校验 站长开发 ...

  7. 吴恩达机器学习笔记58-协同过滤算法(Collaborative Filtering Algorithm)

    在之前的基于内容的推荐系统中,对于每一部电影,我们都掌握了可用的特征,使用这些特征训练出了每一个用户的参数.相反地,如果我们拥有用户的参数,我们可以学习得出电影的特征. 但是如果我们既没有用户的参数, ...

  8. webpack4升级指南

    webpack4升级指南 鉴于图书项目编译速度极慢的情况(项目里面module太多了,编译慢很正常)且最近需求不多(很少出现的空挡期).所以我觉得搞一波webpack升级,看看有没有帮助.webpac ...

  9. Postman Mock Server

    为了不影响前端开发的进度,一般后端都是先定数据结构,然后写个假接口让前端调用,这样前端就不必等着后端接口开发完成以后再开始了.届时,前后端以及UI和测试就可以并行,待双方都把各自的逻辑写好了,便可以联 ...

  10. 从零开始学习PYTHON3讲义(十四)写一个mp3播放器

    <从零开始PYTHON3>第十四讲 通常来说,Python解释执行,运行速度慢,并不适合完整的开发游戏.随着电脑速度的快速提高,这种情况有所好转,但开发游戏仍然不是Python的重点工作. ...