
文/胡泳
傳統的軟體構築方法如建造教堂般,需要嚴密的管理體系,和封閉的集中結構。它的一個弊端是容易高度膨脹──想想視窗作業系統就知道了。
開源軟體運動先驅雷蒙(Eric S.Raymond)認為,要避免軟體專案不會因為規模和複雜性失控有個方法,他稱之為「市集模式」(Bazaar Model)。它是並行、點對點、動態的多人協同開發模式,結構扁平,參與者多是網路志願者,來去自由。
市集模式成功的要點,首先要弄清是使用者的需要還是開發人員的需要。開發人員的需求是好的軟體作品的源頭。Google的開發規則是一個很好的例證。大部分好用的Google軟體,都是程式師在二口口的「創新時間」裡開發出來的──Gmail就是如此。
第二,弄清是重建還是改寫。雷蒙說:「優秀的程式師知道寫什麼,卓越的程式師知道改寫什麼。」也就是說改寫或者顛覆的能力很重要。Linux的發起人並沒有另起爐灶,而是在Unix系統內改寫,並把原始系統的優勢發揮到最大。
第三,讓更多用戶成為合作者,並儘早發布。這是發現程式臭蟲的最好方法。大教堂模式(Cathedral Model)中,除錯的成本很高,耗費大量人力和時間,而且版本更新速度也不會很快。在市集模式中,使用者愈多,愈能對抗系統的複雜性,從而使得臭蟲愈容易被發現。
第四,Beta測試者是最寶貴的資源。這些Beta測試者往往也是駭客,可以在原始程式碼處發現臭蟲,並進行標記。若有一天,這些Beta測試者主動要求退出,也在預示著這個軟體專案的生命周期快要來臨了。
當下很多中國大陸的傳統企業僅知道讓粉絲參與,卻不懂得Beta測試為何物。最大的誤解是,在產品測試階段邀請的是對產品原理並不熱中的普通用戶,而非駭客級用戶。
測試也是產品開發的內容,駭客級使用者和開發人員擁有共用的交流模式。普通使用者僅僅就產品症狀進行描述,對於開發人員並沒有太實際的意義。對原始程式碼提出意見,才是開發人員樂見的。
第五, 需要具有編輯意識的產品領導者。好編輯不一定是好作者,但好編輯可以做出一本優秀讀物。在雷蒙眼裡,產品領導者的一大功能是「識別」創意,而非「生產」創意。他在總結自己的Ftchmail程式時承認:「是我限制了表現自己聰明的傾向。這至少反駁了設計原創是市集模式專案成功關鍵的論點。」(更多報導,請見1467期新新聞,以及新新聞官網)