演讲实录 | CMM只提出问题,从来没解决过问题

演讲实录丨真正提升软件团队能力的方法,唯有XP极限编程d5c19046a8|Mon Feb 10 2020 18:58:19 GMT+0800 (中国标准时间)
2019年12月16日
LeSS案例 – Sys商店
2020年2月5日

本文内容选自我在「中国DevOps社区2019年会」上分享的《敏捷中国十八年目睹之怪现状》实录。

乔梁老师是一个好人,他讲一些话特别委婉。乔老师说:“你不改变你的工作方式就不能得到10倍的效果。”大家听了这个话以后就觉得,他讲的是一个抽象的“人群”。每个人听到这个话以后都有一个自我暗示:乔老师说的是其他人,我不包含在内。因为他是好人,他不肯把话说得太直白。其实乔老师刚才批评业内敏捷现状的那个话,说直白了就是断水流大师兄的话:“我不是针对你,我是说在座各位……”

当然这个现状不完全是你们造成的。台下的各位大部分还很年轻,这些现状形成的历史因素很可能你们还不了解。我今天分享的就是这些行业历史的故事。

中国IT行业的发展不是自然而然的。有人认为,经济自然发展到一定的程度就自然会推动信息科技的发展。不是这样的。有一个反例就摆在面前,香港现在的IT行业就非常糟糕,经济的发展并没有自然而然地推动香港IT的发展。IT是一个非常高端的行业,它不是自然就会发展起来,它需要政府有相当大的主导意向。

大家可以查一下2000年6月颁布的国务院18号文件《鼓励软件产业和集成电路产业发展的若干政策》,中国的IT行业完全是这个发文推动起来的,其中给了这个行业很多的优惠政策,很多政策直到今天仍然在推动这个行业的发展。

在“18号文”颁布之前,2000年的时候,中国IT行业从业人员大概是十几万人,是一个很小的行业。到10年以后,这个人群发展到了数百万人。这个发展的速度,人的大脑本能理解不了。我们可以做个对比:中国的经济发展也是很快的,每年10%左右;当时政府的预测是IT行业可以有每年百分之十几的增长,超过GDP增速。但是实际上,从2000年以后的10年,IT行业保持了每年50%以上的增长,这是“放火箭”一样的发展,超出所有人的理解能力。在10年的时间从业人数增加了数十倍,这对整个行业来说是一个巨大的考验。

很快,这个行业就遇到了挑战:软件质量差、交付进度难以保障,等等。这种现象大家很熟悉,软件工程的教材上讲过,这个叫软件危机。当时专家的意见是:为什么会出现软件危机,是因为技术环节不过关,社会化大生产没有形成,解决的办法就是要提高软件工程水平。

这是2001年的行业大背景。当时的行业对软件工程有一种非常迫切的需求。于是那个时候,行业就去引进了CMM。

我记得是2001年,我当时在《程序员》杂志社做过一个采访,采访了号称“CMM始祖”的一个印度人。CMM在2001年左右传入中国,非常明确给中国软件行业指出了问题所在。它非常清楚地指出软件开发应该具备哪些基本的能力:需求管理,项目管理,配置管理,质量保障。主要就是这么几样。这些能力就是CMM二级里面定义的,大家回头找CMM二级来看一下就知道了。从这个角度来说,CMM是一个非常有价值的框架。

国家对CMM做了很多的补贴。当时科技部主导,从北京市开始各地都有相应的补贴政策:通过CMM二级认证补贴20万,三级30万,五级50万。

有这么好的政策在这儿,十八年以后,我们行业的基本功补齐了吗?我们行业的基本功扎实了吗?

我觉得这个事情不能用非常抽象的方式来讲,我来讲几个真实的“鬼故事”。

比如说需求管理我可以讲个故事。2009年、2010年的时候,我当时在很著名的某家通信企业指导一个项目,当时跟他们的两个系统工程师去客户那调研需求。去之前这两位工程师说:“你不知道,我们这个客户是妖怪,没事儿就骂我们,动不动就改需求,特别的可怕。”我说我去看一下吧,了解一下这个妖怪的客户都是怎么回事儿。

约到客户上午9点钟开始调研需求,我们几个人走过去,这两位系统工程师上去:“你好,现在你有什么需求,请告诉我们。”后来我看《人民的名义》那个片,我就联想起这两位系统工程师调研需求的场景,他走到那儿把手一伸:“请开始你的表演。”然后客户就开始讲,一上午三个小时,客户大概讲了2小时58分钟,两个系统工程师讲了可能不到10句话,包括“你好”、“请开始你的表演”、“谢谢”。

然后需求调研就完了,中午的时间写会议纪要,写完以后给客户发出去,20分钟以后客户打电话过来开始骂人,整个办公室都听见了:“你们做的是什么需求调研?我一早上给你讲了3个小时,讲了5个要点,你邮件纪要发过来只有3个要点,你浪费我一早上时间逗我玩吗?”

这个就是我们行业里面很领先的企业调研需求的方式。类似的行为我后来看到过很多次,大家去“调研需求”到底是干什么?就是走去:“客户爸爸你好,请问你有什么需求,请你告诉我。”这样调研需求,需要什么技能、需要什么专业能力?什么都不需要。这个就是人类本能好吗?“我想知道一件事,请你告诉我可以吗?”这个6岁小孩也会。从这些现象里,我后来总结出来一个概念叫做“全凭本能工作”。我们这个行业里有很多本来应该是专业人士做的专业工作,实际上是全凭本能在做,看不到专业的能力。

说完需求管理我们再来说项目管理。我们这个行业的项目管理到底是怎么做?你找一个项目经理来问,你的项目管理是怎么做的?他能跟你讲很多大道理。但你到软件开发的现场里面去,到项目组里面待个两星期,你看看项目管理到底怎么发生的。真实的情况经常是这样:

项目经理走过来问:“你这个任务哪天可以完成?”

开发:“下个礼拜一吧。”

项目经理:“下个礼拜一?这个时间太长,礼拜五能不能完成?”

开发:“不行,这工作量太大了。“

项目经理:“就礼拜五,我们礼拜五就上线了。“

开发:“好吧,礼拜五就礼拜五,我加个班,挑战一下!“

是不是我们真正的项目管理就是这样发生的?你说这个项目管理,到底管理什么?真实项目里的工作量评估是怎么估的?

开发说:“做这个要5天。“

项目经理:“凭什么要5天,明明2天就做完了。“

开发:“那3天吧。“

这是项目管理吗?这是卖白菜。

然后我们再来说配置管理。我以前做一个持续集成的咨询项目,我先非常自信地把代码库check out出来,然后我去打一杯咖啡回来再看看。打完咖啡,发现还没有check out完,那我再去开个会。开完会回来看看,还没有check out完,那我再去吃个午饭。吃完饭回来看看,还没有check out完,我就纳闷了。

我:你们这个代码库怎么这么久还没有check out完呢?

客户开发:你自己在check out?,我们都不这么干,我们都是从别人那里拿一个移动硬盘拷过过来。

我:你代码库多大?

客户开发:代码库有5个G……

后来我拿一个移动硬盘把代码拷过来一看,这个代码库有5个G,上面有一千多个分支。这就是CMM五级的企业的配置管理水平。很多故事我都不好意思说,鬼故事讲出来吓死人。

接着我们再说说质量保障。为什么现在行业里面大家搞迭代,周期都是两个礼拜一个版本,成了行业共识?因为都是一帮测试小姑娘跟着屁股后面做人肉测试,你怎么敢继续缩短呢?你缩短到一个礼拜发一个版本,然后小姑娘就得每个礼拜天天加班。这就是我们这个行业里的质量保障水平。

所以,像我这种工作时间长的人就非常好奇。我2001年就看见了当时搞CMM的时候,有很多的培训公司讲课,然后政府又有补贴,通过CMM的公司非常多。那这个事情到底是怎么跑偏的?为什么大家搞了十几年的CMM,到现在行业里面的能力是这样的,各个公司都是全凭本能在工作?前两天有一个群里有人说:“我们公司的研发管理做减法,不写文档了,做完减法之后我们非常敏捷。”我说你们从来就没有研发管理,做的什么减法呢?你们有一堆文档,但是文档跟真正发生的研发根本就是两码事,实际上的研发就是大学实验室的工作方法,大家全凭本能在工作。

(未完待续)

评论关闭了。