知乎专栏 |
盘点一下职业生涯几次做软件质量失败的经历,供大家参考,吸取经验和教训。
瀑布模型 2000年之前就存在,西方从 70年带开始摸索软件开发模型,80/90年代逐渐成熟,当时有一本书叫《软件工程》。2003年国内出现XP极限编程,2005年敏捷横行。印度阿三在 2000年就搞出了 CMMI 我们是在2005年通过CMMI5,如今我已经全部忘记。
最近15年为什么没有出现新的概念?
西方为什么不再主导制定软件质量管理体系?
你会发现他们的关注点从 SQA 转向了 OKR,最近几年最火的概念是 OKR,几乎硅谷企业齐刷刷的上 OKR。Google 今年5月又从 OKR 转向更先进的 GRAD,谷歌启用新系统GRAD(Googler Reviews and Development)这件事情,又在硅谷掀起风浪,一大波硅谷企业会参考谷歌的 GRAD 制定出适合自身企业的各种 RAD。
为什么会这样?抓软件质量不如抓绩效出产的价值高。下面我会分析出现这种现象的原因。
从很多同事那里得到数据,很多企业或团队实施敏捷都有失败的经历,为什么会失败?失败原因总结如下:
多年职业生涯,ISO,GB国标,XP,敏捷,CMMI5 我全部参与或主导过,不能说全失败,不经过裁剪的实施几乎都会面临水土不服。最终流于形式,填表格走流程。
很多流程的设计采用的加法思维,认为只要考虑到每个节点,并作出响应,就能解决所有问题,这使得流程变长,没有提升效率,反而增加了管理内耗。
很多时候,只要让团队整体工作经验增加1年,软件质量会带来质的改变。
工作中发现大量BUG是因为开发人员对业务不熟,对语言不熟,对SDK不熟,对第三方应用不熟。
企业诉求:找到一种可重复执行,减少犯错,提高效率的方式和方法。但是,往往会走偏,不断画蛇添足,增加内耗。
员工诉求:别妨碍我做事,我想尽早完成工作,下班走人。结果,员工会想出各种对策来规避流程和规范。
几乎所有的技术企业都会重视技术规范,为此制定各种规范,并要求员工严格执行。同时员工会想出各种对策,就这样形成了潜规则。
流程设计走入误区是管理层擅长制定乌托邦式的流程与规范,认为控制了流程的每个节点,就能产生一个好的结果。随便拿出一条流程都堪称完美,无懈可击,但没有考虑到执行结果,流程规范在执行过程中每个环节都会出现问题,都不可能100%执行,只有机器人才能100%执行流程,任何由人执行的流程规范都不可能做到100%执行,即使是命令化管理的军队,都不能做到100%执行每条命令,严格训练过的士兵也常常犯错,甚至很多命令传达到一线会走样。
流程设计的任何一个环节出现问题就如同多米诺骨牌,造成连锁反应,最终无法控制。
人们的思维习惯是,在流程的执行过程中,发现问题,就增加一个检查点,甚至为此新增一个流程。而不是去优化流程减掉某个节点。
流程与规范的制定需要需要满足几个条件:简单,易掌握,易执行,可重复执行
员工考虑的是尽快完成工作,规范不应成为完成工作的负担。
很多管理者将其归咎为 “执行力” 弱,我并不这么认为。有些犯错并不是执行力问题,也不是敬业度问题,可能需要从心理学角度解释,这是人性的问题。
我们不应该通过管理手段约束员工,而是应该从技术手段避免很多没有意义规范,让开发自动化,让测试自动化,让运维自动化,机器是不会犯错的,这是趋势也是我的努力的目标。
先写到这里,后面有时间继续补充