“熵”是一个物理学的定义,指的是某个系统中的”无序”的总量.热力学定律保证了宇宙中的熵倾向于最大化.当软件中的无序增长时,程序员们称之为”软件腐烂”

有许多因素可以促生软件腐烂。其中最重要的一个似乎是开发项目时的心理(或文化)。即使你的团队只有你一个人,你开发项目时的心理也可能是非常微妙的事情。尽管制定了最好的计划,拥有最好的开发者,项目在其生命期中仍可能遭遇毁灭和衰败。而另外有一些项目,尽管遇到巨大的困难和接连而来的挫折,却成功地击败自然的无序倾向,设法取得了相当好的结果。

是什么造成了这样的差异?

破窗理论

在市区,有些建筑漂亮而整洁,而另一些却是破败不堪的 “废弃船只”。为什么?犯罪和城市度退领域的研究者发现了一种迷人的触发机制,一种能够很快將整洁,完整和有人居住的建筑变为破败的废弃物的机制。

一扇破窗户,只要有那么一段时间不修理,就会渐渐给建筑的居民带来一种废弃感.一种职权部门不关心这座建筑的感觉。于是又一扇窗户破了。 人们开始乱扔垃圾。出现了乱涂乱画。严重的结构损坏开始了。在相对较短的–段时间里,建筑就被损毁得超出了业主愿意修理的程度,而废弃感变成了现实。

“破窗户理论”启发了纽约和其他大城市的警察部门,他们对一些轻微的案件严加处理,以防止大案的发生。这起了作用 : 管束破窗户、乱涂乱画和其他轻微违法事件减少了严重罪案的发生。

不要容忍破窗户

不要留着“破窗户”(低劣的设计、错误决策、或是糟糕的代码)不修。发现一个就修一个。如果没有足够的时间进行适当的修理,就用木板把它钉起来。或许你可以把出问题的代码放入注释(comment out), 或是显示“未实现”消息,或是用虚设的数据( dummy data)加以替代。采取某种行动防止进一步的损坏,并说明情势处在你的控制之下。

我们看到过整洁、运行良好的系统,一旦窗户开始破裂,就相当迅速地恶化。还有其他一些因素能够促生软件腐烂,我们将在别处探讨它们,但与其他任何因素相比,置之不理都会更快地加速腐烂的进程。

你也许在想,没有人有时间到处清理项目的所有碎玻璃。如果你继续这么想,你就最好计划找一个大型垃圾罐, 或是搬到别处去。不要让熵赢得胜利。

摘自 <<程序员修炼之道>>