软件研发中的《破窗理论》
美国心理学家詹巴斗曾进行过一项有趣的试验:把两辆一模一样的汽车分别停放在两个不同 的街区。其中一辆原封不动地停放在帕罗阿尔托的中产阶级社区;而另一辆则摘掉车牌、打 开顶棚,停放在相对杂乱的布朗克斯街区。结果,停放在中产街区的那一辆,过了一个星期 还完好无损;而打开顶棚的那一辆,不到一天就被偷走了。于是,詹巴斗又把完好无损的那 辆汽车敲碎一块玻璃,结果刚过了几小时,这辆汽车就不见了。
以这项试验为基础,美国政治学家威尔逊和犯罪学家凯林提出了破窗理论。他们认为: 如果有人打坏了一个建筑物的窗户玻璃,而这扇窗户又得不到及时的维修,别人就可能受到 某些暗示性的纵容,去打烂更多的窗户玻璃。久而久之,这些破窗户就给人造成一种无序的 感觉。结果在这种公众麻木不仁的氛围中,犯罪就会滋生、繁荣。
软件系统,从大到跨国公司,小到国内公司,不存在完美的系统,而可以被认为“破窗”的系统居多。
作为一个研发管理者,如果不采取正确的措施,“破窗”的系统,会像毒药一样,吞噬开发人员的斗志,让系统散发着臭味,人人讨厌。
从理论上分析,“破窗”系统使开发人员产生:
颓丧心理。Bug没人修,代码不规范没人管,大家对系统的信任度就会随之而降 低。
弃旧心理。既然已到处是Bug,既然没人管,那就随它去吧。
从众心理。代码是公司的,别人能够这么写,我就可以;别人能够不管Bug,我就 可以不管。
投机心理。 投机 是人的劣根性之一,尤其是看到有机可乘或者投机者占到 便宜 的时候。
对于运营的系统,或者软件产品,如何解决“破窗”系统,是研发管理者的责任所在。
首先是加强代码规范。相信所有的公司都有代码规范,但是真正能够落到实处的,恐怕不是很多。
其一,代码规范,是不是经过公司仔细评估,而不是从网上简单拷贝而来;
其二,是不是足够简洁,明确,让所有开发人员都清楚其中的重要性;
其三,是不是可以实现自动化检查?
最后,对于违法代码规范的是不是有足够的惩罚措施。
其次,是代码审查制度,如何建立高效的代码审查制度,也是关键。
最后,对于“破窗”系统,是不是既往不咎,还是有重构计划。如果原则是既往不咎,相信不可能真正解决问题。因此,要制定相应的重构计划,逐步解决“破窗”问题。
--写在最后,这是我们公司总监发给我的文章,分析的很透彻,放在网上共大家分享