当你爬山的时候,如果仅仅是一个小山坡,那么随便你怎么爬都能够爬到山顶但是如果你是翻越的一座高山,根本就看不到山顶,这个时候你就必须有一个科学的过程来指引你,包括计划,包括方法工具,包括关键里程碑和检查点等,让你清楚你只要遵循这个步骤走,一定能够达到山顶简单来说就是你做小项目的时候就要严格遵循过程,遵循方法和步骤,这个不是单纯为了你完成小项目,而是让你具备了承接大项目的能力那么什么是过程?过程实际是人+流程+方法工具技术的一个完整结合体在CMMI里面实际没有用流程这个词,而是用了过程这个词,也再次说明CMMI本身并没有否定人,反而是更加强调了一个软件过程改进中人在里面起到的关键作用注意可重复一定不是在你脑子里面只可意会不可言传的东西,可重复一定是可以显性化描述出来的东西,这个显性描述出来就是过程里面包括了做事情的流程和活动,方法和工具有了这些你才有了持续改进的基础度量体系是持续改进的关键在前面我谈DevOps成熟度模型,谈SOA和微服务治理体系框架的时候,都会谈到度量实际你可以看到度量是形成整个持续改进的关键环节度量不是简单地设置几个KPI,而是让我们形成数据驱动的思想,你做任何事情不要简单的靠经验,不要简单的靠自己的记忆力,而是应该有记录的习惯,用数据说话而度量指标核心支撑就是首先要有记录,有数据其次度量的重点是发现偏差或差距,去追溯度量指标和指标之间的勾稽关系发现异常并推动问题的解决,度量是当你执行了一个优化措施后观测该措施是否真正起作用的关键手段,也是推动你持续改进的基础在CMMI实施过程中度量带给我的另外一个关键思维就是,度量的各个指标之间不是孤立的,各个指标之间相互影响形成一个共同制约体因此度量可以提升你系统思维和数据思维能力考验你的是如何做到整体最优化而不是单个指标的最优类似我们在SOA实施中,你单独去分析一个服务并发量没有太多意思,而是需要将并发量和服务运行时长,错误异常量,JVM和内存利用率多个指标一起分析,往往才能够发现问题和具体的优化改进点找到各个指标之间的隐藏勾稽关系,深入发现问题背后的问题,才是数据驱动下度量思维带来的最大价值方法论不是关键,形成自我模式才是关键在多年前实施过程改进的时候,何丹博士讲过一个小故事,如下:爱因斯坦在16岁时很贪玩,有好几门功课都不及格一天他正要和朋友们去钓鱼,父亲拦住了他,问他为什么不用功补习功课?他告诉父亲其他一起去钓鱼的同学也不及格父亲提醒他:你是独一无二的,不要复制别人的平庸爱因斯坦的智慧在那一刻被猛然点醒,我不需要按照别人平庸的生活方式(流程)来生活,我需要创新从此一个全新的爱因斯坦出现了,给世界带来了巨大的精神财富对于CMMI形成了一套完整的方法论和过程工具体系,但是方法论是一个极其抽象的内容,最终仍然是需要你自己去实践证悟方法论本身无价值,你也很难去照搬或复制别人的成功方法论最大的价值是在于你亲自去实践,在实践过程中不断的试错,不断的调整和复盘,最终形成适合自己的最佳实践和经验模式什么意思?简单来说就是当前大部分成功学都没有意义,并不能指导你成功,其核心原因就是这些成功学是在讲他们自己的实践过程,成功过程但是方法论本身可参考,但是最佳实践无法复制,脱离了你所处的环境,你个人的知识技能体系,很难去指导你实践从可控制到可预测如果到CMMI四级,里面两个关键的过程域,一个是量化项目管理,一个是组织过程性能在这里我不准备详细去解释这两个过程域而是谈下里面的一些关键点在这里首先要谈一个概念即过程稳定性简单来说当影响目标的各个因素或过程足够稳定的时候,结果往往才是可预测的这和我前面谈跑步感悟文章经常谈到的,形成稳定的跑步节奏感是一个道理比如你每天只要严格地控制跑3-5km的,那么完成每月100km的跑量是水到渠成的事情这个结果本身是可以预测的而不是说你到了月末看任务没完成突击跑个20km甚至更多当你计划完成一个目标的时候,基于前面讲的内容你会看到这个目标本身可以分解为多个过程,或者多个关键影响因素那么可预测的核心意义就是只要每个影响因素都是可控范围波动的,那么目标一定达成好的过程控制自然会带来好的结果,而且这个结果本身可预测再举个例子比如你要要减肥,制定了具体的目标,那么这个目标就会分解到饮食控制,每日活动量,睡眠和精力管理等几个关键因素你要做的就是每天都将这些关键影响因素控制好,做到位,那么到了一个周期或时间阶段,你的目标自然达成而不是到了最后一天你才来看体重根本没有减下来,前面制定的控制因素都没做好如果抽象为公式描述如下:y = f(x1,x2,x3..... xn)如果要达成y这个目标,那我们实际做的是各个x,同时确保x过程稳定这本身就是量化管理的一个核心思想这个思想不是让你临时抱佛脚,而是让你做好自律和自我控制把每一个步骤,每一个关键点都做好这个思想是让你懂得循序渐进,日积月累的道理,能够坚持长期主义即使你坚持长期做一件事,做好过程稳定性,做好中间检查点,那么自然能够达成一个好的结果而不是去期望不切实际的各种速成或者一夜暴富(图片来源网络,侵删)
首先说下对于CMMI软件过程能力成熟度评估,当时在中兴的时候我基本是从04年开始参加从CMMI二级一直到CMMI四级,二级和三级基本都是用了一年的时间,而四级基本用了2年多的时间实践在整个过程中我也从最早的IT项目管理到大项目经理,基本全程跟踪整个CMMI过程改进过程并在项目管理和产品管理中进行实践今天这篇文章不是对CMMI知识的介绍或科普,而是多年后再来回顾下有哪些当初实践CMMI过程改进中深刻影响自己的一些思想可重复是持续改进的基础在CMMI二级里一个重要的概念就是可重复简单来做你做一件事情,达成一个目标,这个不是一个偶然事件,而是一个可重复执行的过程这里的重点就是先要能够达成目标,如果我们连是否达成目标都没有信心,那么去谈如何优化效率就没有意义当做一件事情可重复后,那么我们做这件事情的操作,步骤基本就是明确的,是可以明确定义或描述出来的这就是我们持续改进的基础即我们可以去观察分解后的操作或步骤,这个分析实际包括三方面:哪些步骤可以优化提升效率哪些步骤可以在特定场景下裁剪哪些操作还可以替换为更好的工具或方法大家注意看下,这个方法和思路不仅仅是在软件项目或过程改进中在个人日常工作,个人学习成长中该方法同样使用所以刚开始你初入职场或切入一个新领域的时候,可重复绝对不是缺点,可重复后真正让你有了分析和诊断问题和效率的基础当你重复后你陷入原地打转,不去思考复盘如何持续改进才是问题过程是你达成目标的必要手段现在CMMI大家谈论的比较少,谈得更多的是敏捷开发方法论,精益管理思想等但是要看到类似Scrum敏捷方法论,本身多过程或纪律的要求更加严格,而且很多会控制到天或者更细化的粒度所以不要以为敏捷了就没有过程,而是减少各种不必要的文档输出或过程浪费我原来举过一个例子,即:
0 评论