挣值管理不是搞数字游戏(4)——让挣值管理实用!

2024-05-23 02:58

本文主要是介绍挣值管理不是搞数字游戏(4)——让挣值管理实用!,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

摘要:
要考PMP(Project Management Professional ),挣值管理是必考的知识。软件项目有很大的特殊性,不少人认为挣值管理不太适用于软件项目。挣值管理相关资料也比较超多,但一般都难以读懂,本文将会以轻松、易懂、实用的角度为你讲解。

大纲:
1.挣值管理无用论
2.从搬石头的故事说起
3.三大基本要素:PV,AC,EV
4.成本偏差(CV),进度偏差(SV)
5.成本指标(CPI),进度指标(SPI)
6.成本预测(EAC)

7.挣值管理不是搞数字游戏,要让挣值管理实用!
我将会通过4篇文章为你分享!



挣值管理不是搞数字游戏,要让挣值管理实用!

挣值管理将项目管理工作数字化、可视化,很多第一次学习挣值管理的项目经理会兴奋不已,想马上在实际项目管理中用上,但往往实际效果不甚理想。下面我列举一下常见的情况:

项目计划与项目计划跟踪工作没有做好,就没有做挣值管理的基础,这可能是最常见的情况了。很多软件项目,没有文档化的计划,没有详细的进度计划,很多工作通过开会、口头布置等方式落实。这样无法得到PV、AC、EV这三个基础数值,挣值管理自然就无从落实。

如果计划与计划跟踪的工作能落实,这已经是前进了一大步,但如果没有有效的、简单的实际数据收集方式,挣值管理也难以完全落实。一般我们会使用Project来做进度计划,如果我们能将任务细化做好,就能得到PV,如果我们能将任务的完成情况及时更新,这样就能得到EV,但实际工时(AC)就不容易统计了。有些公司每周或者每月收集一次实际工时,有些公司还专门安排项目助理来负责数据收集的工作。但这些做法一开始会让项目组各成员很不适应,能坚持下来的项目就很少了。

就算以上两个问题你们都能解决,但你无法解决软件项目“两不确定两大限死”的特点。这个特点让你无法在项目初期计划好项目的全部工作,而且计划还经常与实际不符,你需要经常调整。也就是说你无法定下全部的PV,而且PV会经常调整。PV无法全部确定而且会经常调整,这意味着项目计划的基准经常在变化,你会发现不止是PV,AC、EV的数值变化会非常频繁,CV、SV、CPI、SPI这些指标变化幅度会很大。你会觉得花了这么多的心思和工作来做挣值管理,收益却不是很大。

项目计划包括开发计划、测试计划、采购计划、培训计划、配置管理计划等等的各种计划,一般会由不同的人员负责这些计划,这些计划一般是各自编写的,不在同一份文档里面,而且它们的表现形式也不太一样。要系统地跟踪这些计划的PV、AC、EV,就需要解决这些计划的统一性问题,而且不能因为要度量PV、AC、EV,而让这些计划的负责人承担很多额外的工作。

回到最根本的问题,我们为什么要用挣值管理?难道就是为了追求量化吗?

如果某项目的CPI、SPI数值很理想,一直在100%附近,你会觉得这个项目情况很理想吗?
数字不能说明全部问题,数字往往还会欺骗我们呢!CPI、SPI 数值为100%,项目仍然有可能有严重问题。如果项目计划本身有问题,漏掉了关键工作没有安排,这样PV其实是有问题,执行这样的计划,得到的AC和EV,计算出来CPI、SPI,其实没有什么意义。挣值管理说到底其实还是计划与计划执行情况的比较,需保证计划没有问题,这样的比较才有意义。

某项目CPI、SPI都偏低,说明项目超支、进度落后,你会想到怎样改进措施呢?在建筑工程中出现这样的情况,一般就是通过加班来搞定进度落后的问题,而项目超支一般就只能尽量节省一点,没有更好的解决办法。在软件项目中,你会想到怎样的办法呢?
一般我们想到的办法往往是想办法让AC更少,让EV更多,而很少去想办法降低PV!软件项目是人类的高级智力活动,一个很有智慧的想法就能解决很多问题。软件项目需求不确定、设计也不特定,需要我们用更多的智慧去主动迎接这两个挑战,想办法降低工作量!

我们公司采用挣值管理来管理项目,已经有6年以上时间,最开始需要解决的就是落实计划及计划跟踪工作,无论贵公司是否想采用挣值管理,这个工作都应该先做好,否则别的东西都是空谈。在此基础上,我们逐步落实各种度量措施,能让我们方便地得到PV、AC、EV。到后期我们更加是更进一步,将按项目性质和工作类型,细分CPI、SPI,将需求分析软件设计编码、测试四个子过程细化,加强控制力度并提高,使之达到CMMI4级及5级水平。

看上去我们公司似乎挣值管理做到了比较高的层次,其实我自己本人是不太想去计算这些CPI、SPI指标的。2009年我做了几个公司之前没有做过全新的项目,需求与技术不明确的特点充分展示出来,而且我带领的团队成员全部都是新人,大部分还是应届生。项目每天都在打仗,而工作重点是想办法去降低工作量!这几个项目,全部都是预算限死、工期限死的!

对于挣值管理PV、AC、EV,我的看法是:
PV:你要想尽一切办法降低PV,这是让项目成功的最有效办法,是你最需要做的事情!
AC:要让项目组水平不断提高,让大家学会高效的工作办法,让大家用正确的办法做正确的事情,这样才能降低AC。
EV:每个任务的完成标准必须明确,任务要足够细分,不要安排长周期的任务。任务只有两个状态:完成与未完成,任务完成90%之类的说法是不靠谱的,只要未完成,状态就是未完成,该任务EV为零。

我觉得挣值管理最大的精要应该在于你对PV、AC、EV的认识!PV、AC、EV其实不必量化,项目成功的关键在于项目组的整体能力水平和知识水平,在于工作的条理性和严谨性。你觉得项目管理有问题,其实问题可能不是因为没有应用挣值管理,而是项目组的水平不够,工作没有条理。

挣值管理不是玩数字游戏,所有数字的背后必须有大量的客观事实支撑,否则要数字不如无数字。本文介绍了挣值管理基础知识以及在实际应用中的经验体会,希望同学们能在实际工作中体会并灵活应用。





请看下一篇……



作者:张传波

创新工场创业课堂讲师

软件研发管理资深顾问

《火球——UML大战需求分析》作者

www.umlonline.org 创办人

这篇关于挣值管理不是搞数字游戏(4)——让挣值管理实用!的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/996114

相关文章

一文详解Python如何开发游戏

《一文详解Python如何开发游戏》Python是一种非常流行的编程语言,也可以用来开发游戏模组,:本文主要介绍Python如何开发游戏的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录一、python简介二、Python 开发 2D 游戏的优劣势优势缺点三、Python 开发 3D

Linux创建服务使用systemctl管理详解

《Linux创建服务使用systemctl管理详解》文章指导在Linux中创建systemd服务,设置文件权限为所有者读写、其他只读,重新加载配置,启动服务并检查状态,确保服务正常运行,关键步骤包括权... 目录创建服务 /usr/lib/systemd/system/设置服务文件权限:所有者读写js,其他

5 种使用Python自动化处理PDF的实用方法介绍

《5种使用Python自动化处理PDF的实用方法介绍》自动化处理PDF文件已成为减少重复工作、提升工作效率的重要手段,本文将介绍五种实用方法,从内置工具到专业库,帮助你在Python中实现PDF任务... 目录使用内置库(os、subprocess)调用外部工具使用 PyPDF2 进行基本 PDF 操作使用

在Node.js中使用.env文件管理环境变量的全过程

《在Node.js中使用.env文件管理环境变量的全过程》Node.js应用程序通常依赖于环境变量来管理敏感信息或配置设置,.env文件已经成为一种流行的本地管理这些变量的方法,本文将探讨.env文件... 目录引言为什么使php用 .env 文件 ?如何在 Node.js 中使用 .env 文件最佳实践引

MySQL批量替换数据库字符集的实用方法(附详细代码)

《MySQL批量替换数据库字符集的实用方法(附详细代码)》当需要修改数据库编码和字符集时,通常需要对其下属的所有表及表中所有字段进行修改,下面:本文主要介绍MySQL批量替换数据库字符集的实用方法... 目录前言为什么要批量修改字符集?整体脚本脚本逻辑解析1. 设置目标参数2. 生成修改表默认字符集的语句3

python库pydantic数据验证和设置管理库的用途

《python库pydantic数据验证和设置管理库的用途》pydantic是一个用于数据验证和设置管理的Python库,它主要利用Python类型注解来定义数据模型的结构和验证规则,本文给大家介绍p... 目录主要特点和用途:Field数值验证参数总结pydantic 是一个让你能够 confidentl

SpringBoot 多环境开发实战(从配置、管理与控制)

《SpringBoot多环境开发实战(从配置、管理与控制)》本文详解SpringBoot多环境配置,涵盖单文件YAML、多文件模式、MavenProfile分组及激活策略,通过优先级控制灵活切换环境... 目录一、多环境开发基础(单文件 YAML 版)(一)配置原理与优势(二)实操示例二、多环境开发多文件版

Redis实现高效内存管理的示例代码

《Redis实现高效内存管理的示例代码》Redis内存管理是其核心功能之一,为了高效地利用内存,Redis采用了多种技术和策略,如优化的数据结构、内存分配策略、内存回收、数据压缩等,下面就来详细的介绍... 目录1. 内存分配策略jemalloc 的使用2. 数据压缩和编码ziplist示例代码3. 优化的

SpringBoot集成XXL-JOB实现任务管理全流程

《SpringBoot集成XXL-JOB实现任务管理全流程》XXL-JOB是一款轻量级分布式任务调度平台,功能丰富、界面简洁、易于扩展,本文介绍如何通过SpringBoot项目,使用RestTempl... 目录一、前言二、项目结构简述三、Maven 依赖四、Controller 代码详解五、Service

深入解析C++ 中std::map内存管理

《深入解析C++中std::map内存管理》文章详解C++std::map内存管理,指出clear()仅删除元素可能不释放底层内存,建议用swap()与空map交换以彻底释放,针对指针类型需手动de... 目录1️、基本清空std::map2️、使用 swap 彻底释放内存3️、map 中存储指针类型的对象