1. 程式人生 > >軟體研發中的《破窗理論》

軟體研發中的《破窗理論》

美國心理學家詹巴斗曾進行過一項有趣的試驗:把兩輛一模一樣的汽車分別停放在兩個不同 的街區。其中一輛原封不動地停放在帕羅阿爾託的中產階級社群;而另一輛則摘掉車牌、打 開頂棚,停放在相對雜亂的布朗克斯街區。結果,停放在中產街區的那一輛,過了一個星期 還完好無損;而開啟頂棚的那一輛,不到一天就被偷走了。於是,詹巴斗又把完好無損的那 輛汽車敲碎一塊玻璃,結果剛過了幾小時,這輛汽車就不見了。

以這項試驗為基礎,美國政治學家威爾遜和犯罪學家凱林提出了破窗理論。他們認為: 如果有人打壞了一個建築物的窗戶玻璃,而這扇窗戶又得不到及時的維修,別人就可能受到 某些暗示性的縱容,去打爛更多的窗戶玻璃。久而久之,這些破窗戶就給人造成一種無序的 感覺。結果在這種公眾麻木不仁的氛圍中,犯罪就會滋生、繁榮。

軟體系統,從大到跨國公司,小到國內公司,不存在完美的系統,而可以被認為“破窗”的系統居多。

作為一個研發管理者,如果不採取正確的措施,“破窗”的系統,會像毒藥一樣,吞噬開發人員的鬥志,讓系統散發著臭味,人人討厭。

從理論上分析,“破窗”系統使開發人員產生:

頹喪心理。Bug沒人修,程式碼不規範沒人管,大家對系統的信任度就會隨之而降 低。

棄舊心理。既然已到處是Bug,既然沒人管,那就隨它去吧。

從眾心理。程式碼是公司的,別人能夠這麼寫,我就可以;別人能夠不管Bug,我就 可以不管。

投機心理。 投機 是人的劣根性之一,尤其是看到有機可乘或者投機者佔到 便宜 的時候。

對於運營的系統,或者軟體產品,如何解決“破窗”系統,是研發管理者的責任所在。

首先是加強程式碼規範。相信所有的公司都有程式碼規範,但是真正能夠落到實處的,恐怕不是很多。

其一,程式碼規範,是不是經過公司仔細評估,而不是從網上簡單拷貝而來;

其二,是不是足夠簡潔,明確,讓所有開發人員都清楚其中的重要性;

其三,是不是可以實現自動化檢查?

最後,對於違法程式碼規範的是不是有足夠的懲罰措施。

其次,是程式碼審查制度,如何建立高效的程式碼審查制度,也是關鍵。

最後,對於“破窗”系統,是不是既往不咎,還是有重構計劃。如果原則是既往不咎,相信不可能真正解決問題。因此,要制定相應的重構計劃,逐步解決“破窗”問題。

相關推薦

軟體研發的《理論

美國心理學家詹巴斗曾進行過一項有趣的試驗:把兩輛一模一樣的汽車分別停放在兩個不同 的街區。其中一輛原封不動地停放在帕羅阿爾託的中產階級社群;而另一輛則摘掉車牌、打 開頂棚,停放在相對雜亂的布朗克斯街區。結果,停放在中產街區的那一輛,過了一個星期 還完好無損;而開啟頂棚的那一輛

理論、C++ 函式模板靜態庫

最近在搬磚,本以為僅僅是體力活而已,無奈自己功力不夠,處處碰壁。 這次的需求及其背景: 業務中有一個recommendId的東西,型別是string或者vector< char >。 第一個位元組(即recommendId[0])用來標識資料所

突然想到--理論與溫水青蛙

看到2007年最後幾個月積壓的BUG,突然想到了破窗理論和溫水青蛙,是為記; 多年前,美國斯坦福大學心理學家詹巴斗進行一項試驗,他找了兩輛一模一樣的汽車,把其中的一輛擺在帕羅阿爾託的中產階級社群,而另一輛停在相對雜亂的布朗克斯街區。停在布朗克斯的那一輛,他把車牌摘掉了

理論

  破窗理論:一個房子如果窗戶破了,沒有人去修補,隔不久,其它的窗戶也會莫名其妙地被人打破;一面牆,如果出現一些塗鴉沒有被清洗掉,很快的,牆上就佈滿了亂七八糟、不堪入目的東西;一個很乾淨的地方,人們不好意思丟垃圾,但是一旦地上有垃圾出現之後,人就會毫不猶疑地拋,絲毫不覺羞

管理學定律四:手錶定律與理論

1、手錶定律 1.1 來源     手錶定律是指一個人有一隻表時,可以知道現在是幾點鐘,而當他同時擁有兩隻表時卻無法確定。兩隻表並不能告訴一個人更準確的時間,反而會使看錶的人失去對準確時間的信心。它的提出者是英國心理學家p.薩蓋,因此手錶定律也叫薩蓋定律。     森林裡

有趣的定律7. 理論

美國心理學家詹巴斗進行過一項有趣的試驗:他把兩輛一模一樣的汽車分別停放在帕羅阿爾託的中產階級社群和相對雜亂的布朗克斯街區。停在中產階級社群的那一輛,停了一個星期也完好無損;而另一輛,他摘掉車牌,開啟頂棚,結果不到一天就被

理論---到底是破壞還是創造?

一個熊孩子掄起磚頭,砸碎了街頭面包店的一塊櫥窗。當店主怒氣衝衝的追出來,熊孩子已經逃之夭夭。店主望著碎了一地的玻璃,心疼不已。臨街的櫥窗,壞了就得換,得花2000塊,想到這,店主忍不住站在門口大罵了幾聲。不一會,聚過來一群圍觀的群眾,大家紛紛寬慰店主,責備那個小

理論與火爐法則

        美國斯坦福大學心理學家菲利普·辛巴杜(Philip Zimbardo)曾於1969年進行了一項有趣的實驗:他找來兩輛一模一樣的汽車,把其中的一輛停在加州帕洛阿爾託的中產階級社群,而另一輛停在相對雜亂的紐約布朗克斯區。停在布朗克斯的那輛,他把車牌摘掉,把頂棚開啟,結果當天就被偷走了。而放在帕洛阿

經濟機器動作的原理,馬太效應,刺蝟計劃,理論

    生活中繁複的經濟活動讓我們覺得經濟活動沒有規律可循,但實質上經濟活動是由一個個簡單重複的交易所組成的。交易就像是整個社會經濟活動中執行的一個齒輪,無數個相互關聯的齒輪相互作用就形成了一個龐大的經濟系統。往往一個簡單的東西我們能看得很清楚,如果只有一個齒輪在轉動,我們可以一眼看出它的原理與運動路徑,但是

軟體研發成本構成的間接成本包括哪些?

軟體研發的間接成本為組織級成本,服務於整體研發活動,只要該組織還有軟體研發活動,該成本就會發生,而不會因某個特定專案的結束或中止而不再發生。間接成本又分為間接人力成本和間接非人力成本。 間接人力成本 間接人力成本,是指服務於整體研發活動的非專案組人員的工資、獎金及福利等費用分攤。這些

軟體研發成本估算過程估算人員需要注意這2點

在軟體研發成本估算過程中,估算人員除了採用科學的方法之外還需要注意以下2點: a) 基準資料:在採用方程法、類比法或類推法對工作量、工期和成本進行估算過程中,應充分利用基準資料。 ——對於委託方和第三方,建議使用或參考行業基準資料(由北京軟體造價評估技術創新聯盟每年釋出的年度軟體行業

軟體研發知識點總結(更新

1.乙太網中根據MAC地址區分不同的裝置。 2.static的用途: (1)在函式體內,一個被宣告為靜態的變數在函式被呼叫的過程中維持其值不變。 (2)在模組內(函式體外),一個被宣告為靜態的變數可以被模組內的函式訪問,但不能被模組外其他的 函式訪問,它是一個本地的全域性變

MBTI職業性格在軟體研發組織不同崗位的分佈研究

摘要 本文首先通過在不同地域的多個軟體研發組織中採集MBTI職業性格樣本,然後分基層工程師、技術主管、技術經理三個崗位分別進行計算,統計出三個崗位的典型職業性格和性格分佈包容度。接著了分析不同崗位的工作內容是如何影響到MBTI職業性格的分佈的,為什麼會呈現這樣的分佈情況。最後,本文給出了統計分析的結論,

體彩軟體研發筆試題

1,請寫出Linux系統下的常用操作命令的含義 cp:__,ls:__,rm:__ 這道題目考察的是對linux系統的基本熟悉程度,linux常用的命令如下: 常被考到的有: cp:複製檔案 ls:顯示當前目錄下的檔案 rm:刪除檔案 cd:切換目錄,cd是切換到根目錄,

上周研發出現的問題及解決辦法

temp for 打包 mvn clean chan 人的 找到 ring 沒有 1、用RestTemplate.postForObject方法調用別人提供的POST接口的時候,無法調用。 經過仔細檢查,發現是由於我傳給別人的json格式調用參數中一個成員的數據類型和要求的

SLAM的優化理論

次方 str font ref 線性 rust 介紹 sent 奇異值分解 (一) 線性最小二乘 http://www.cnblogs.com/leexiaoming/p/7224781.html 解線性最小二乘問題,主要包括以下內容: [1]最小二乘問題的定義 [2

IDEA如何像eclipse一個口打開多個項目

idea1.新建一個文件夾,把你要打開的所有項目放到這個文件夾中、2.點擊左上角的file > open彈出一個窗口讓你打開目標文件3.在窗口的目錄中找到剛才新建的文件夾 點OK4.打開後之前新建的那個文件夾下的所有項目都會在同一個窗口顯示IDEA如何像eclipse中一個窗口打開多個項目

C#口和子口之間控件互操作實例

child title 成員 img dddddd idt 函數 通過 plugin 本文實例講述了C#中父窗口和子窗口之間控件互操作的方法。分享給大家供大家參考。具體分析如下: 很多人都苦惱於如何在子窗體中操作主窗體上的控件,或者在主窗體中操作子窗體上的控件。相比較而言

效應的蔓延

行為 是不是 喜歡 很慢 設計 大自然 地球 欲望 一種商品 當政策和制度設定不夠嚴謹時,就會允許“破窗效應”的蔓延。每個人都傾向於從自己的角度思考,別人有的我也要有;既然空氣已經這樣了,我添加一點點害處也不會影響大局,於是每個人都覺得自己的行為不會有多大影響,累加起來就呵

管理學的瓜子理論

管理學中有一個“瓜子理論”,它告訴我們如下規律: 其一,無論人們喜歡與否,很容易拿起第一顆瓜子; 其二,一旦吃了第一顆,就會吃第二顆、第三顆......停不下來; 其三,在吃瓜子的過程中,人們可能會做一些別的事情,如去洗手間等等。但回到座位上後,還會繼續吃瓜子,不需要他人提醒、督促;