《大教堂與集市》:軟件工程的另一種選擇

說起軟件工程這檔事,我總有種不知從何說起的感覺。作為計算機專業的學生,早年都學過一門叫做軟件工程的課,背下來一些流水線式的項目開發階段,首先是在項目定義階段要做可行性分析、需求分析這些事,再來進入到開發階段要做概要設計、詳細設計、設計實現等步驟,最后是維護階段的運行與維護。仿佛軟件開發就像《摩登時代》里的工廠流水線,分工明確。井然有序。目的是讓程序員成為流水線上的工人,使他們成為生產機器中的一個螺絲釘,無需創意,無需個性,只要夠熟練就行。很多大型企業的開發項目也確實是按照這個路數走的,很多程序員被戲稱【碼農】也正是這個原因。

但是,等我工作了若干年之后再來看這套工程管理模型,感覺這基本上就是個【計劃經濟】。首先,絕大部分軟件在開發初期根本不會有那么多人參與,通常是兩三個人要做所有的事情。分那么多階段,那么多工序是沒有意義的。再來,就算是有了一定規模的公司,他們會讓很多人參與一個項目,往往都是為了維護已有的軟件,程序員的主要任務是維護該軟件的版本,并在此基礎上開發新的版本,在這種情況下,他們其實已經有了現成的開發框架,這些人只需要根據特定的需求將該框架填充成具體的專用軟件即可。對于原框架來說,這更像是增加了一個特性分支。例如說,jetbrain是一個通用的IDE框架,而android studio是專用于android開發的IDE,它就是基于jetbrain開發出來的。我們可以將它視為jetbrain的一個分支。這更像是某種意義上的維護工作,它的可行性,需求是一目了然的,也不需要概要設計,只需要按照其原有的插件體系把功能實現即可。然后,bug修復是這個項目的主要工作。所以,如何讓那么多人一塊有效地,有序地發現bug,報告bug,解決bug成為了主要問題。

上世紀的七十年代和八十年代爆發了兩次所謂的軟件危機。那時候的許多軟件項目都出現了預算超支、發布時間嚴重拖延、質量管理缺失等問題。大量的項目因此而失敗,問題很嚴重,以致于北約這樣的組織都要開會來討論這個問題。但這些高高在上的人物討論出來的東西就是我們上面所說的軟件工程理論。按照《人月神話》作者布魯克斯的說法,這需要大量的銀彈,人員來支撐。這只有大型企業,科研機構才能做到。當然對于這些機構來說,這套理論確實能解決一些問題。尤其在互聯網時代來臨之前,這似乎也是我們唯一的選擇。

但大型機構都存在官僚主義的問題,效率低下,隨著時間的推移它們往往都會離人們的實際需求越來越遠,就像是基督教的大教堂,高高在上,定期發布信息,內容龐雜而臃腫。對于以創意為主導的中小軟件開發是毫無幫助。于是Linux之父林納斯在獨自開發Linux內核的過程中走出了一條新的道路:開源社區。簡單來說,就是由軟件項目的創始人開發出一個不成熟的初始版本,然后將其丟到一個開發者社區中,讓其在開發者自發性的修改和分享中自然生長。最后,項目創始人會根據其生長情況將自己認可的部分納入到項目的主分支中。這種亂中有序的組織形式讓Linux項目獲得了巨大的成功。給軟件開發的工程實踐提供了另一種選擇。

上世紀九十年代末期,網景公司在與微軟公司的瀏覽器大戰中敗下陣來,面臨著公司的生存危機。他們決定試試開源的方式。《大教堂與集市》這本書就是在這樣的時空環境下寫就的。它的作者埃里克雷蒙就是網景公司踐行開源運動時所聘請的顧問。這本書為開源運動奠定了理論基礎。他系統闡述了互聯網條件下的協作模式,同行審評的優勢,回答了《人月神話》中提出的銀彈問題,人員管理成本問題。如今,微軟、蘋果這些曾經的大教堂都紛紛進入了開源領域。開源軟件作為軟件工程的另一種組織形式已經毋庸置疑。

最后需要提醒的是,開源運動和理查德斯托曼領導的自由軟件運動不是一回事。開源運動更多的是一種軟件的開發方式,雖然也強調開放源碼、免費分享的黑客精神。但并不排斥世俗、商業。而自由軟件運動則更像是一種意識形態的運動,非常的理想主義。非常激烈地反對商業化,有點烏托邦化。這客觀上其實給源代碼的分享帶來了不少的阻力。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,002評論 6 542
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,400評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,136評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,714評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,452評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,818評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,812評論 3 446
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,997評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,552評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,292評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,510評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,035評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,721評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,121評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,429評論 1 294
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,235評論 3 398
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,480評論 2 379

推薦閱讀更多精彩內容