一扇破窗户,只要有那么一段时间不修理,就会渐渐给建筑的居民带来一种废弃感----一种职权部门不关心这座建筑的感觉. 于是又扇窗户破了. 人们开始乱扔垃圾,出现乱涂乱画. 严重的结构损坏开始了,在相对较短的一段时间里,建筑就被损毁得超出了业主愿意修理的程度,而废弃感变成了现实.
这是犯罪和城市衰退领域的研究者们发现的一种迷人的触发机制----破窗户理论.纽约和其它一些大城市的警察部门受此理论启发,对一些轻微的案件严加处理, 达到了减少严重罪案发生的数量.
同样, 破窗户理论也适用于我们的软件设计与编码. 在软件腐烂(当软件中的"无序"增长时, 我们可称之为"软件腐烂")的诸多因素中,其中最重要的一个似乎是开发项目时的心理(或文化). 如果我们抱着一些"无所谓或这样也可以"的心理, 留着"破窗户"(低劣的设计,错误决策,糟糕的代码,影响不大的bug),即使生产出来的系统看上去很整洁,运行良好, 但一旦窗户开始破裂,就会相当迅速地恶化,最终导致彻底腐烂.与其他任何因素相比, 置之不理都会更快地加速腐烂的进程.
因此,我们不要留着这些破窗户不修,发现一个就及时修一个. 即使没有足够的时间进行适当的修理,就用木板把它钉起来. 我们可以把出问题的代码放入注释, 或是显示"未实现"信息, 或是用虚设的数据加以代替, 采取某种行动防止进一步的损坏, 让情势处在我们的控制之下.
----读《程序员修炼之道》--软件的熵