第一部分 f-laws 定律
A1 最佳学习方法 A2 PPT 投影 A3 改进个别部分不能改进总体 A4 把成功经验归零 A5 知识分显性和隐性 A6 服从度与创新 A7 应对未来变化,假设比预测好 A8 引导学生自己找答案 A9 如不能容错,大家都尽力少做 A10 难教老人新把戏 A11 乐队指挥更懂管理 A12 行政 / 管理 / 领导 A13 问消费者想要什么没有意义 A14 扁平化管理 A15 智慧= 16x理解 A16 计算机不会比程序员聪明 A17 管理者只追求可衡量的东西 A18 要收集多少变量 A19 对被收购公司的增值比给收购公司的增值重要得多 A20 从外面评价公司比内部更容易 A21 幸福的大家族更需要的是忠诚,而伟大企业更需要的是能力 A22 无论企业多成功,如果不能适应变化,就会像恐龙一样灭绝 A23 下属与经理(上) A24 下属与经理 (下) A25 好奇心 A26 对下属期望越低,得到的就会越少 A27 高层认为他人是非理性的,但其实自己也一样 A28 官僚只有权利说“不可以” A29 是否听取建议取决于与提出者的关系 A30 职位越高越觉得不需要继续学习 A31 专注于组织的“核心竞争力” A32 能用现有的资源做些什么 A33 领袖的必要条件是才华 A34 要跳出盒子思考 A35 已经到了不可能变得更糟的情况 A36 电话会议 A37 电话第二部分 应用场景
B1 敏捷开发如何改善 B2 与高层交流 B3 现场培训 B4 从A3报告到量化持续改进第一部分 f-laws 定律
A1 最佳学习方法 A2 PPT 投影 A3 改进个别部分不能改进总体 A4 把成功经验归零 A5 知识分显性和隐性 A6 服从度与创新 A7 应对未来变化,假设比预测好 A8 引导学生自己找答案 A9 如不能容错,大家都尽力少做 A10 难教老人新把戏 A11 乐队指挥更懂管理 A12 行政 / 管理 / 领导 A13 问消费者想要什么没有意义 A14 扁平化管理 A15 智慧= 16x理解 A16 计算机不会比程序员聪明 A17 管理者只追求可衡量的东西 A18 要收集多少变量 A19 对被收购公司的增值比给收购公司的增值重要得多 A20 从外面评价公司比内部更容易 A21 幸福的大家族更需要的是忠诚,而伟大企业更需要的是能力 A22 无论企业多成功,如果不能适应变化,就会像恐龙一样灭绝 A23 下属与经理(上) A24 下属与经理 (下) A25 好奇心 A26 对下属期望越低,得到的就会越少 A27 高层认为他人是非理性的,但其实自己也一样 A28 官僚只有权利说“不可以” A29 是否听取建议取决于与提出者的关系 A30 职位越高越觉得不需要继续学习 A31 专注于组织的“核心竞争力” A32 能用现有的资源做些什么 A33 领袖的必要条件是才华 A34 要跳出盒子思考 A35 已经到了不可能变得更糟的情况 A36 电话会议 A37 电话第二部分 应用场景
B1 敏捷开发如何改善 B2 与高层交流 B3 现场培训 B4 从A3报告到量化持续改进两年多前,A公司在某政府软件开发项目前期过程与测试中没做好,导致客户在验收时拒收,虽然团队尽力补救,但也于事无补。管理层为了避免项目烂尾影响声誉,虽然预计会导致巨额亏损,但还是与甲方协商承诺重做这个项目。从这个经验教训中,公司高层意识到软件开发项目的风险难以把控,要完善软件项目的质量,于是决定借用CMMI模型来做改进。
因为很多项目都是按敏捷迭代方式, 每两周一轮做开发,我们建议他们每次迭代回顾时,所有团队成员一起分析迭代的缺陷曲线与返工工作量,头脑风暴,找出根本原因,制定纠正措施,在下一轮迭代做改进措施,最后汇总成A3总结报告,加快改进速度,尽早看出效果。
总监从一开始就努力推动,但下面的部门经理对它的看法和支持存在很大的差异,有些明显只希望以最低的投入满足,有些希望借用这个模型和体系过程,加强部门的管理,获得提升。
两年过去,如今到了最终正式评估阶段。
我:跟高层访谈的目的是希望听听管理层的诉求,这样才能在后面的差距分析报告里反馈你们团队现在的情况。 所以,想先听听你们的最主要关注点。
“减少返工工作量。”
“控制进度偏差,减少延误。”
“提高团队的生产率。”
我在白板上写上他们的诉求后说:因为软件开发项目跟办公楼建设项目不一样,每天只看到开发人员在电脑屏幕前默默工作,但进展如何,很多时候是个谜。如果你问他们,他们都会说不用担心,能按期交付。
总监:软件开发项目与我们其他工程项目不同,如果到后期交付时才发现问题,就很难修正,会导致大量返工工作量,所以希望借用CMMI这个模型帮管理层更好地监控项目的情况。不要等到项目后期接近交付的时候,才发现有很多问题需要补救。
我:我看你们年初制定的长期改进目标是降低返工工作量,请问在过去的6个月里,你们每个部门实际从多少降到多少?没有数据就无法管理,好比准备参加马拉松半马比赛,你需要有半年、一年的锻炼计划,最通常的指标就是跑一公里要多少分钟。可能本来要八九分钟,后面就会降到六分半钟,这样才知道自己在进步。下图是你们4个部门过去一年里试点项目做根因分析的A3报告历史(每种颜色代表一个部门):

图B4-1
虽然有些部门连续半年每月都做A3报告,但有些只做了一次或两次,A3报告只是某一轮冲刺的衡量。而且有些A3报告体现不出做了改进措施以后,有什么实际效果。例如:某报告只是说需求引起的返工量有显著降低,但不知道总体返工量是否有降低;某些报告说后面的缺陷总数有显著降低,因还未交付,这些都是组内评审和自测的缺陷,每轮冲刺缺陷少不代表质量好,而且可能恰恰相反,应尽量多发现缺陷才能避免验收时暴露大量缺陷,所以也看不出来每一段冲刺的实际效果如何。虽然每个部门每个月都要汇报给高层,但差异也很大,有些部门只是整理一些描述性的文本,一个数据都没有。有些部门会做PPT,里面有当月项目的进度偏差总结报告。但进度只是一个维度,如果质量不好、返工多也会影响项目,所以如果要持续改进的话,就必须收集相关数据并保留这些数据,分析指数趋势,是上升还是下降。
所以要想过程改进持续, 部门必须成立一个虚拟的内部改进组,并制定3个月、半年的改进计划,有具体量化可衡量的改进目标。
虽然你们对上次半年前的差距分析有开会跟进,但是我发现有不少差距还是没有具体改善、行动。例如上次提到改进计划,要按项目来监督,但有些部门还是按月定期监控,没有把计划分成具体的任务来监控,很容易产生延迟。因为人一般不到截止日期也不会采取行动,所以经常会延误。其实不需要用什么项目管理工具也可以加强,你们可以在大白纸上用蓝色水笔记录这些任务的每次冲刺,比如在项目启动时,写上每个任务的开始日期、计划结束日期,然后用红色笔标注实际开始与完成日期,也可以简单拍照记录。
虽然高层对改进有决心,持续了两年,但是从效果看,还是有不少可改善的地方。例如,建议加强QA岗位的培训,让其能指出团队的不足并提出改进方法。如果公司缺乏内部QA资源,短期难以安排,也可以考虑外部QA,还可以同时帮公司培养内部QA。
我:你们公司都已经接近50年历史了,但这段时间总共累积了多少经验教训、公司级的知识库?
某部门主管:好像不多。
我:如果在改进的同时,鼓励每位员工把做到的、做错的都记录在公司的平台,像历史书一样提供经验教训,那么能起到很好的参考作用。现在越来越多的企业,尤其是IT企业,觉得要开始累积公司的知识,这需要有一个公开的平台,让员工可以随时随地做记录。
另一位部门主管:我们其实也有类似的平台,但想不到有什么好的方式可以鼓励员工写分享和经验教训,因为他们都忙于项目。
我:可以尝试定期举办一些内部分享会,比如每周借用某个午饭的时间。自己当老师,其实是最佳的学习方式,不仅能让学员学到新的知识,更可以让自己理清思路,更好地理解背后的原理。在这个过程中,分享者就会知道需要把实际工作中遇到的情况记录下来,才能累积成为有吸引力的分享故事,所以能激励大家把日常遇到的成功或失败经验记录下来。分享不仅是针对软件开发人员,对其他员工也有启发作用。
部门主管:赞同。
我:以前跟你们的开发人员提过这个建议,他们都很感兴趣,但是碍于项目实在太忙,没有空,所以必须得到管理层的理解,让团队空出一些时间来分析、回顾、分享。
总监:我也很希望我们公司开始有这种经验教训的积累。其实我们也遇到过类似的问题,公司有很多经验丰富的员工,但是他们都快退休了,想不到一个好方法,把自己的宝贵经验保留在公司,尝试过录视频,但发现这种方式还是比较零散,不容易作为日后参考。
我:是的,有些人可能喜欢录视频,面对面交流,让他写东西很困难,但有些人相反,不喜欢说话,让他写出来更方便。我建议,不局限于形式,但是要把那些宝贵的经验,无论成功或者失败的,都记录下来,像历史书一样,供后人参考,这很重要。
总监:是的,我们公司现在也非常关注成本,好像比较难跟董事会申请给员工腾出时间来做这个分享会,尤其你说这会占15—20%的工作量。
我:赞同,你这一点提醒了我,虽然你们部门都定了改进目标,但是只有百分之十几,太低了。记得第一次培训时跟你们说,目标要减一个位,要×10 。如果这些改进,包括经验教训的积累,能给公司带来巨大的价值,这个投入绝对比现在把这个成本放银行定期收利息好,而且能激发员工的创新。与当初我们建议你们每轮迭代回顾,所有团队成员花半天时间分析数据,找根因,制定纠正措施一样,让团队成员利用自己的智慧,减少返工,提高团队的质量与生产率,为公司增值。
从以上对话,可以感觉到公司要推行量化管理并持续,会遇到很多困难,顾问需要不断指出和纠正一些误解。虽然可以收集各种度量,但针对质量缺陷和返工比较容易,以迭代做开发交付,并每次迭代、定期做回顾,应该能更快速看到成效。
各种客观条件都具备了,过程改进才有可能持续。 例如,管理层是否关注和有要求是很重要的。A公司某一组因为部门经理希望改善,有要求,团队开始持续改进,其他部门都是为了应付高层的要求,做了一两次A3报告就停止了。
正因为各团队不同,所以都应先试点,按效果做调整。例如,在迭代回顾时收集数据,分析根因,采取纠正措施,各团队可能会有自己的最佳做法,所以试点后大家应一起分析,找到最合适的方法,然后扩大范围推广。因为持续改进过程漫长,高层需要不时地在员工大会上分享成功案例,表示公司对持续改进的重视与支持,公司才有可能逐渐形成以数据说话的量化管理企业文化。