李彦宏的无人车,统万城的城墙,刘志军的高铁
这两天看了关于百度李彦宏让程序员用人命去测试无人车的安全性的新闻,怒了!
先表明一下态度: 李彦宏这种做法没有人性,不是个东西, 百度这个公司也不是什么好鸟。
首先说说几个外行容易混淆的关于软件开发的概念: 写程序、软件工程, Process。
具体的定义可以放狗搜或是查教科书,作为离开学校多年的码农,只说说自己的体会。
在国内,早期,不论业内业外,对软件开发的认识和实践都停留在“写程序”这个层次。 一切全在程序员的脑子里,需求分析、架构设计、概要设计、实现、测试等等,一锅粥样的分得不是很清楚,软件质量也比较严重地依赖程序员脑子里能够容纳多少能够理清多少。 个人认为,这一时期,是程序作坊式的软件开发,单打独斗,或者少数几个人的合作。 产品较小, 产品质量严重依赖个人。
后来,更高级一点的, 有了早期软件工程的概念,需求分析、架构设计、概要设计、实现、测试等等,已经有意识地分开了, 比较典型的是瀑布式的开发过程,不管怎么说,已经有了向更大规模软件开发发展的基础。 团队协作也已经开始了。
再后来,CMM在国内开始火起来, Process开始受到重视。 当年的摩托罗拉软件中心,好像是第一个CMM level 5 的机构, 有很多来学习取经的部门和公司(包括华为)。SCMC的老余当年也是相当风光相当NB的人物。
记得当年在SCMC培训时,印象最深的一句话:人,是不可能不犯错误的,只有神才从不犯错。正是基于人一定会犯错的事实,整个Process的目的,就是为了尽可能减少最终产品出厂时的错误,同时尽可能早一点发现错误,因为越早发现错误,改正的成本越低。
注意,在正规的软件开发 Process中, 最基本的出发点就是“人一定会犯错”,整个软件开发的各个阶段一定会犯错,并且前一个阶段的错误,在下一阶段或测试环节,并不能保证100%被发现。
对这个问题的认识,是区分内行和外行的一个标准,是区分是否实事求是的一个典型。这是软件开发的最基本的认识。
对一个软件产品,为了提高质量,需要的不是出来bug就扣工资或者解雇程序员,而是作为领导者,要在人一定会犯错的认识基础上,依靠Process, 通俗地说, 就是依靠制度,依靠高度组织起来的系统、设计、实现、测试、集成、客户服务及反馈等各个岗位各个环节各个不同职责的人员的通力合作,依靠设计上的容错冗余机制,依靠制度来减少最终产品的错误,而不是搞噱头,让其中某一个环节的人拿人命去做最终的产品测试。
回到百度的无人车,如果出了错,普通吃瓜群众当然可以认为是程序员的错,程序员应该负责,这没有什么问题,因为吃瓜群众不懂,不懂的人自然会胡说八道。
问题是李彦宏你作为一个大型软件机构的领导者,你说你不懂软件工程,不懂Process。 那么你的客户你的合作伙伴,谁还敢相信你?
如果明知道整个无人车开发这样一个大型工程项目,有很多环节很多子系统,每一个出问题都可能影响整体的最终产品,在这种情况下,不自问自己是否在内部组织制度建设上做到位了没有 ,不自问自己在Process设计和执行上做到位了没有,不自问自己内部容错机制和工程裕度是否足够、合理, 仍然要让程序员以命试车,我认为,这种做法,是不道德的。 作为一个个人,这么做没有人性;作为一个团队的领导者,这么做没有领导者的道德、没有担当;作为一个大公司的领导者,视手下为草芥,什么东西?
———————————-
即便要采取极端手段来推进质量控制, 我们也不妨看看李彦宏学的是那条路子。
历史上,统万城的修筑以残暴著称, 工程验收时让人用锥子扎城墙,能扎入一寸的,杀筑城者, 扎不进一寸,杀验收者。
另一个例子,是前几年,铁道部的刘志军部长,为了推进高铁的各个环节各个子系统的质量建设,要求在高铁试车时,由他带队,所有分部门子系统的负责人,跟他一起上高铁车头,他就坐在司机边上, 万一出事,司机第一他第二,其他人也别想能活着回来。
咱不谈软件开发的知识,那比较有些专业, 咱就纯从人性、从做事方法的角度,看看这两个实例, 能看出区别了吧。
自己上,还是让别人去死。
弟兄们给我上,还是同志们跟我冲。
刘部长的方法,看起来也是逼迫部下,但是,真出了事去死的时候,他排别人前面啊,作为高铁项目的总负责人,他必须尽最大努力推进各个部门各个环节建立起良好的制度、科学的工作方法和认真负责的工作态度。 对每一个子系统来说,每一个工作人员每一个环节都可能犯错,科学地讲,读是不能完全信赖的, 但是,最终产品的质量和可靠性必须保证,能够依靠的,只能是制度,是科学的流程控制,还有足够的容错裕度。 作为一个大系统的负责人,每一个子系统的负责人哪怕拍胸脯打保证都是不可信赖的, 必须依靠全系统的质量控制流程和容错裕度,才能保得住试车车头里所有人的命。
李彦宏让别人拿命去试车这事,忒不道德,忒不地道了, 哪里像一个领导者的样子,估计连黑帮老大都知道不能这样干。人家刘部长是自己上,跟司机并排坐, 你李彦宏是让别人上, 典型的又想装B,又没有担当.