|
在過去的一篇文章里,我曾經提到過“破窗理論”。對于下面這個實用主義程序員的觀點,你或許很熟悉:
不要放任“破窗”(不良的設計、錯誤的決定或者糟糕的代碼)不管,一旦發現就要盡快修復。如果時間不夠,那就先把它隔離起來。你可以把這些令人不快的代碼注釋掉,或者顯示“尚未實現”的消息,或者用虛假的數據來代替。你應該采取一些措施,以防止進一步的破壞,并且表現出一切盡在掌握之中的樣子。
我們看到過,一些曾經運轉良好的系統在發生了一些錯誤之后便迅速惡化。導致軟件腐爛的因素有很多(我們會在別處再講到這些因素),但相比之下,忽視問題會使軟件腐爛得更加迅速。
對于程序員來說,這是一個非常好的建議。下面,我將試圖把這個故事講完整。
破窗理論出自于1982年的《大西洋月刊》上的一篇文章。這篇文章非常值得一讀,因為你可以通過它深刻了解到這個理論背后“人”的因素:
從社會層面上看,無序和犯罪在發展順序上通常是緊密相連的。社會心理學家和警察傾向于認為:如果一棟樓的一個窗戶破了,并且留在那里不去修復,這棟樓的其余窗戶都會很快被破壞。這種事情的發生與鄰里關系無關。但它也并不會大規模爆發,因為一些地方住著有破壞窗戶傾向的人,而另一些地方住著愛護窗戶的人。然而,一個長久沒修復的破窗戶釋放出來的信號是“沒人管”,這會讓人覺得,即使再毀壞更多的窗戶也不會付出什么代價。(砸窗戶一向是很好玩的?。?/p>
Philip Zimbardo是斯坦福大學的一位心理學家,他在1969年的報告中向我們展示了他所做過的有關破窗理論的實驗。他將沒有車牌號的汽車分別停在Bronx和Palo Alto的街頭來進行對比。在Bronx,因為這輛汽車看似被丟棄了,在10分鐘之內就開始有人來破壞了。第一批破壞者是一個家庭,包括爸爸、媽媽、還有他們年輕的兒子。他們拿走了散熱器和電池。在24小時之內,這輛車上幾乎所有值錢的東西都被拿走了。在此之后,各種肆意的破壞還在繼續——窗戶被打碎,車飾被撕破,孩子們開始用這輛車來當作自己的游樂場。
這些眾多的成人破壞者中,絕大多數都是穿著體面的白人。然而在Palo Alto,汽車在超過一周的時間里都沒有遭到破壞。于是,Zimbardo自己去用錘子砸了一下。沒過多久,路過的人也加入了破壞大軍。在幾小時之內,車子被翻了個底朝天,并且被徹底毀壞了。同樣,這些破壞者中絕大多數是白人。
Bronx(布朗克斯)是美國紐約市的五個市區之一,是紐約市有名的貧民區,犯罪率在全國數一數二。20世紀70 ~ 80年代,該區住宅區時常發生縱火案,直到90年代初紐約市政府大力打擊后才有所改善。——譯者注
Palo Alto(帕羅奧多)是美國加州的一個城市,很多人將它稱作為硅谷的中心,因為那里有很多高科技公司,斯坦福大學也在那里。——譯者注
對于那些出來找樂子或者搶奪的人,甚至那些從未想過自己會做出這樣的事情、并且覺得自己遵紀守法的人來說,無人照看的財產成為了一個公平的游戲。這得歸咎于Bronx地區的生活狀況,以及當地的人口流動,汽車被丟棄以及東西被損壞和偷盜的頻率,加上過去“沒人管”的生活體會,這些都使得破壞行為發生得更加迅速;而與之相比,Palo Alto就要好得多,那里的人們覺得私有財產是需要保護的,并且惡作劇是要付出代價的。但當公眾的相互尊重和道德底線被“沒人管”降低時,破壞行為將有可能發生在任何地方。
關于這點,甚至有一本書做了專門的描述。至于這本書,我覺得有趣的是它關于混亂的看法:即使是那些看起來完全不相干的、瑣碎的不良行為,比如在墻上亂涂亂畫或者輕微的破壞,都會導致進入一個最終走向混亂的惡性循環:
我們認為,那些被忽略的行為也會導致社區秩序的淪落。在幾年甚至幾個月的時間里,再穩固的鄰里關系——關愛家庭,相互關心對方的孩子,抵制不受歡迎的入侵者——也會發生變化,最后社區會變成一個令人恐懼而不宜居住的地方。一些東西被丟棄,野草長了起來,一扇窗戶被弄壞;大人們對吵鬧的小孩置若罔聞,小孩們開始變得更加吵鬧;一些家庭開始搬出去,陌生的人搬了進來;小年輕們聚在小店門口嬉戲,老板要他們走開,他們拒絕,于是發生了爭斗;垃圾開始堆積,人們開始在雜貨店門口喝酒;最后,一個醉漢倒在人行道上,睡著了,但無人過問;行人們開始碰到乞丐……
到這個時候,嚴重的犯罪行為將會發生,對陌生人的暴力襲擊也變得不可避免。很多居民都會認為犯罪(特別是暴力犯罪)正在呈上升態勢,他們會據此改變自己的行為。他們會盡量少地在街上走動;在街上的時候,他們會和路人保持距離,避免眼神接觸,盡量不說話,并且走得很快,生怕被卷進什么事。對于一些居民來說,這樣的情形對他們影響不大,因為鄰里關系并不是他們的生活,而只是他們的寄生環境。
他們的興趣在別的地方。他們可以四海為家。但對于其他人來說,影響卻是重大的。除了生活的柴米油鹽,他們更需要在當地生活的一種存在感和滿足感。對于他們來說,如果沒有幾個可以信賴的朋友交流交流,這種鄰里關系名存實亡。
編程是非常注重細節的!如果你不能夠掌控這些細節,你就會有一種失控的感覺,而你的項目失控也只是一個時間問題。或許,我們就應該謹小慎微。
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。