夢斷代碼閱讀筆記之二
在本書第一章裏,作者為我們介紹了一些關於開源的歷史和開源的開發方式。同時作者為我們對比了傳統開發模式與開源開發的優劣之處。這兩者的對比能讓我們對於軟件開發模式有一個更深刻的認識。
開源不僅給出了一種生產和分發軟件的替代性經濟基礎方案;它還能徹底改變軟件開發的具體過程——將其從少數隱士手裏拿出來,散播到廣大人群中。程序員瑞蒙德在論文《大教堂與集市》中將兩種開發方式做了一個有趣的比喻:最重要的軟件應該需要像建教堂一般,由獨立的巫師或一隊相互隔離的魔法師精心打造,在面世之前絕對不發布beat版本。而開源開發的風格——早發布、多發布、全委托、盡開放——讓我吃驚。這裏不存在靜穆、虔誠的教堂式開發
瑞蒙德在這些開源工作中看到了超越布魯克斯法則的力量。這種新的開發模式可集眾程序員之長,且免於讓項目深陷泥潭。瑞蒙德之處其中的兩個要訣:其一,低成本、廣泛的接入像互聯網那樣的網絡,讓開發者之間建立起迅速、可信的通訊渠道,儲存可被開放訪問的共享知識和代碼池。其二,圍繞一種領導方式,形成合作團隊的良好風氣,歡迎新成員的加入,鼓勵成員做出貢獻,同時盡可能增加合格成員。一旦具備這些條件,就能徹底改進在程序中尋找和修正缺陷的過程。與其害怕競爭對手竊取代碼而秘不示人,不如將其展示給全世界,邀請同道加入。而且假使你獨具魅力,懂得如何管理一群開發者,或許還能組織起一個自循環的集智體系。瑞蒙德還表達了一個李納斯法則:
開源本身,即讓程序員學習和擴展源代碼的可能性,已經是布魯克斯描述世界的一部分,但是開源方法和基於互聯網的協作集市,仍然待以來者。瑞蒙德的觀點,更多的體現於看到互聯網和開源開發領導方式在讓接觸源代碼更具有價值方面的重要性,而不在於解釋為什麽應該讓程序員接觸到源代碼。
瑞蒙德的這些言論令人信服的闡述了開源方式是一種飛躍,但是並未完全解決布魯克斯所看到的,從頭搭建一套軟件系統的過程中所遇到的困難。瑞蒙德展示了開放集市如何能夠融大群程序員之智慧於一爐、且不觸及布魯克斯法則的鐵律,但他無法說明開源方式是否更易預測開發新程序所需的時間,或者是否能夠加速軟件面世的進程。
夢斷代碼閱讀筆記之二