实践与理解CMM体系
我的项目管理之路--5、实践与理解CMM体系
版权声明:本文为博主原创文章,未经博主允许不得转载。
一个现代企业我们可以把它比作为自然界的生命体,而项目则是企业的基础细胞。于是,项目管理的成熟程度标志着组织是高级的 还是低级的。如果一个企业的项目管理多是分立的,项目之间没有参照、借鉴的,我们可以认为这个企业是一个单细胞动物或低级动物。我们很清楚,单细胞动物抵 抗自然界干扰的能力是很低的,应该说它始终处在生存的边缘。如果项目是组织级别,企业内有体系的项目管理制度,包括WBS分解经验库、项目开发效率和质量 数据库、最佳实践库、项目通用激励制度等等,相信这个组织的机体是有活力的。
因此,项目管理不是分立的,在企业内部是需要通过管理逐步成熟。当然,对这个的理解,也是后来慢慢体会的。这得益于公司开展的一些培训,个人参加业内的一些交流活动和自身的认证。
在公司项目运作了一段时期后,领导认识到分立的项目管理在资源共享、风险控制方面的不足,恰逢那个阶段CMM认证刚刚风行。于是,公司便拿出一笔钱,要通过CMM2认证。个人很幸运参与到这个认证过程中,并被指派为EPG组长。
起初,我个人对这样的认证比较反感(相信很多公司的技术人员都有同感),认为更多是要求大家多写一大堆文档,项目的效率和质量不一定能提升(很不幸,后来 认识到老板也是这种态度,导致项目认证的终止)。在做完项目管理流程制定和后期较长时间的实践后,自己对它深邃的内涵有了深入理解。
关于CMM体系,相信大家现在已经很有认识了,它将组织成熟度定义为5个等级--初始级、可重复级、已定义级、已管理级和优化级。对于CMM2,简单的说 可以认为它是项目级的,即建立了项目管理体系;CMM3 是组织级,强调软件工程过程和管理过程已经被定义和集成。从上面的定义,我们可以看出CMM2主要是建立体系的项目管理制度,是有意义的。
在开展CMM2认证的过程中,涉及费用问题,我们选择了一家不是很知名的认证公司帮助咨询(当时CMM认证公司还很少,费用也很高的30-50万)。公司 先从各行政部门抽调1-2名工程师作为CMM2认证组成员,然后咨询老师便开始了枯燥、单调的CMM培训。在大家基本了解什么是CMM2之后,开始依据公 司现状建立项目管理制度。这个过程是最痛苦的过程。因为本身技术人员在文档撰写工作方面不是很有心得,特别是制定一个从无到有的项目管理制度本身就很有挑 战(改变一个人的行为方式是很艰难的,制度的制定势必会激起很多所谓的冲突)。若干个KPA的程序、规程、指导书、模板、checklist等都经历了2 -3遍的撰写、评审和修改,CMM项目组很是疲惫,大家占用了大量的业余时间。
最后,终于将体系文档建立起来,进入实际项目参照执行阶段。问题恰恰就在这个阶段爆发了。前面提到,老板有改进的初衷并投了资,同时却对CMM2认证有一 定个人成见。在项目参照执行阶段,原计划选定的2个项目组,由于涉及项目产品上线的压力和部门经理的阻力,老板大手一挥--暂不执行认证!于是,认证很遗 憾的停止了。但是,整个EPG组整理的项目管理制度和体系后来在大家的努力推动下被落实下来,对项目成功运作打下了坚实基础。特别是,这个过程培养了一批 在项目管理有深入理解的人才。
这批人深入理解了项目管理中需求管理的重要性、项目计划制订的严谨性(项目计划包括进度计划、配置计划、质量保证计划等)、变更的严格控制和项目总结(日常、milestone和项目收尾的总结)。这些是项目成功的基础,也是cmm2中的精髓。
进一步说,项目管理的成熟可以参照CMM/CMMI 5层等级的思想来描述,1-5级的项目成功的关键可以用下面这个QA作用图来描述:
我们可以看出,低成熟度的项目管理的成功更多工作是通过在过程中的指导和监督来保障,而高成熟度的则是通过在组织内部的度量和过程改进,用数据、制度来保证项目的成功。
也就是说,在低成熟度等级下,需要抽取各项目最佳实践来定义过程,并指导过程的试施, QA 在这方面的工作最多。随着过程的完善、制度化和实施, QA 的工作重点逐渐转向了过程评审和产品审计。当企业的过程成熟度达到 4 级或 5 级以后,对过程的遵守已经成为员工的一种习惯,过程和产品的审查需求减少,而度量和过程能力的优化又成为 QA 的工作重点。
现在,我们国家的项目管理多处于l2-l3的地位,如何整理最佳实践定义过程指导项目开发是项目总监的重要工作。最佳实践有哪些?需求撰写、需求评审等等,从实践来到实践中去。
回过头来看,一个组织如果提升其项目管理能力,来自内因的动力是最关键的。在这种动力下,人们制定的流程、规范是切合实际的,落实也是扎实的,也能理解、 把握 CMM等管理模型的深邃。如果改进的动力来自外因,通常是所谓的“不通过某某认证公司无法接什么什么项目”,那么它的学习是形式化的,势必被开发人员、项 目经理最终抛弃,走入形式化。
正是通过CMM2这个项目的锻炼,培养了我系统思维、步步为营推进的工作习惯,也使得自己在项目管理方面获得了升华。拓展了视野,打开了与行业同仁交流的窗口!
实践与理解CMM体系的更多相关文章
- 从理论到实践 全面理解HTTP/2
前言 为了降低加载时间,相信大多数人都做过如下尝试 Keep-alive: TCP持久连接,增加了TCP连接的复用性,但只有当上一个请求/响应完全完成后,client才能发送下一个请求 Pipelin ...
- socket心跳包机制实践与理解
实现Socket心跳包主要分为两大类,第一采用tcp自带的KeepAlive,第二是自定义心跳包,恰巧我在产品VICA中都使用过,下面就这两种心跳包机制谈谈个人的理解与感受. 首先第一种KeepAli ...
- MDM-Object.fn 一些实践与理解
Object.assign() 用于将所有可枚举属性的值从一个或多个源对象复制到目标对象.它将返回目标对象.如果目标对象中的属性具有相同的键,则属性将被源中的属性覆盖.后来的源的属性将类似地覆盖早先的 ...
- 能力成熟度模型CMM
能力成熟度模型(Capability Maturity Model,英文缩写为CMM)[1]是 一种开发模型.Carnegie Mellon大学的研究人员从美国国防部合同承包方那里收集数据并加以研究, ...
- 杂项:CMM
ylbtech-杂项:CMM CMM是指“能力成熟度模型”,其英文全称为Capability Maturity Model for Software,英文缩写为SW-CMM,简称CMM.它是对于软件组 ...
- 关于Android App开发知识体系的一个小总结
前言 本文从热更新.异步并发.性能优化.网络请求等多个方面对Android App开发的知识体系进行了一个分类总结.欢迎大家沟通交流. 热更新 [原]热更新开源项目Tinker源码解析之Dex热更新 ...
- Web 前端从入门菜鸟到实践老司机所需要的资料与指南合集
http://web.jobbole.com/89188/ 2016 – 对于未来五年内Web发展的7个预测 2015 – 我的前端之路:从命令式到响应式,以及组件化与工程化的变革 怎么成为一名优秀的 ...
- 全球IT管理最佳实践之DevOps Master 认证
原文:http://soft.chinabyte.com/30/13940030.shtml 作者:国际最佳实践管理联盟 孙振鹏 关键字: DevOps.DevOps认证.DevOpsDays.Dev ...
- 选择企业架构实践公开课的指导?TOGAF+ArchiMate+BangEA,EA工作者必学一门公开课
我发现身边越来越多人谈数字化.谈企业架构,但是感觉谈的总是IT?知道好像不对,但是又好像也无法告诉别人这和传统的IT架构有什么不一样?网上找资料,看了很多也摸不到门路,也不知道别人讲的对不对.对了还好 ...
随机推荐
- HDU - 4811 - Ball (思维)
题意: 给出一定数量的三种颜色的球,计算如何摆放得到值最大(有一定顺序) 有三种摆放方法 1.如果放的是第一个(桌子上原来没有),数值不变 2.如果在末尾追加一个,那么增加前面不同颜色的个数的值 3. ...
- centos7下添加开机启动
在/etc/systemd/system下创建weblogic .Service touch weblogic.Service 添加启动权限 chmod +x weblogic.Service 编辑w ...
- CentOS6.5卸载openJDK和安装Sun JDK
CentOS6.5卸载openJDK和安装Sun JDK 最近业务需要,新安装了CentOS6.5系统,在配置tomcat的时候,总是报错找不到jdk中的java.研究了半天,发现应该是openJDK ...
- 日志平台-ELK6.4
一.环境 linux-node1 192.168.127.201 linux-node2 192.168.127.202 centos7.3 elasticsearch6.4 logstash6.4 ...
- python--MySQL权限管理 数据备份还原
一 权限管理 mysql最高管理者是root用户, 这个一般掌握在公司DBA手里, 当你想去对数据库进行一些操作的时候,需要DBA授权给你. 1. 对新用户增删改 1. 创建用户 # 要先use my ...
- web开发框架Flask学习一
flask框架 用Python做Web开发的三大框架特点 Django 主要特点是大而全,集成了很多的组件,例如:Admin Form Model等,不管你用不用的到,他都会为 你提供,通常用于大型W ...
- 【实验吧】Once More&&【笔记】 PHP 函数漏洞总结
<?php if (isset ($_GET['password'])) { if (ereg ("^[a-zA-Z0-9]+$", $_GET['password']) = ...
- LeetCode(102) Binary Tree Level Order Traversal
题目 Given a binary tree, return the level order traversal of its nodes' values. (ie, from left to rig ...
- TSOJ--2018 江苏省省赛
[2018 江苏省大学生程序设计大赛] K. 2018 (测试数据范围有扩大) Problem Given a, b, c, d, find out the number of pairs of int ...
- Python开发:网络编程
Python 提供了两个级别访问的网络服务.: 低级别的网络服务支持基本的 Socket,它提供了标准的 BSD Sockets API,可以访问底层操作系统Socket接口的全部方法. 高级别的网络 ...