1.
Eric Raymond有一篇著名文章《大教堂和集市》(The Cathedral and the Bazaar)。
他說,世界上的建筑可以分兩種:一種是集市,天天開放在那里,從無到有,從小到大;還有一種是大教堂,幾代人嘔心瀝血,幾十年才能建成,投入使用。
當你新建一座建筑時,你可以采用集市的模式,也可以采用大教堂的模式。一般來說,集市的特點是開放式建設、成本低、周期短、品質平庸;大教堂的特點是封閉式建設、成本高、周期長、品質優異。
Eric Raymond就問了一個問題,有沒有可能用修建集市的方式,造出一所大教堂?
2.
我多年前讀過這篇文章,上個星期與朋友在Email里討論問題時,突然想到了它。
我們的問題是,有一個項目,方案A是精心準備后再投入使用,方案B是將半成品先公開,然后再逐步完善。這讓我情不自禁地就想到了"大教堂和集市"這個比喻。
我們想造出一個大教堂,可是眼下只有一個集市,怎么辦?
3.
我找出Eric Raymond的這篇文章,重讀了一遍,很多模糊的印象一下子清晰起來。到底是經典文章啊,雖然寫在10年前,但是很多問題他都考慮到了。
他說,集市要變成大教堂,有幾個前提條件:
1)你不能從零開始建設集市,你必須先有一個原始項目。(It's fairly clear that one cannot code from the ground up in bazaar style.)
2)你的原始項目可以有缺陷,但是它必須能運行。(It can be crude, buggy, incomplete, and poorly documented. What it must not fail to do is run.)
3)你必須向用戶展示一個可行的前景,且讓潛在的合作者相信在可預見的將來它會變成一個真正漂亮的東西。(When you start community-building, what you need to be able to present is a plausible promise, and convince potential co-developers that it can be evolved into something really neat in the foreseeable future.)
4)項目的主持者本身不一定是天才,但他一定要能夠慧眼識別出他人的優秀想法。(it is not critical that the coordinator be able to originate designs of exceptional brilliance, but it is absolutely critical that the coordinator be able to recognize good design ideas from others.)
5)項目的主持者必須要有良好的人際關系、交流技能和人格魅力。這樣才能吸引他人,使別人對你所做的事感興趣,愿意幫助你。(A bazaar project coordinator or leader must have good people and communications skills.)
4.
以上是一些必要條件,Eric Raymond也總結了一些成功的充分條件。
1)項目首先必須是你自己感興趣的,但是最終能對其他人有用。
2)將用戶當作合作者。
3)盡快地和經常地做出改進,多聽取用戶的意見。
4)健壯的結構遠比精巧的設計來得重要。換句話說,結構是第一位的,功能是第二位的。
5)保持項目的簡單性。設計達到完美的時候,不是無法再增加東西了,而是無法再減少東西了。
5.
Eric Raymond這篇文章,原始目的是要分析Linux的成功之道。為什么一個本科生的業余作品,最后竟變成了全世界最流行的操作系統之一?一個簡陋的集市究竟是怎樣變成壯麗的大教堂的?這個過程是否是可復制和推廣的?
他認為,這就是開放的威力。一個開放式的項目,如果加以良好的管理和運作,能取得比同等的封閉式項目大得多的成功。
他這樣看待大教堂和集市之間的競爭:
我認為,未來會更多地屬于那些告別大教堂、擁抱集市的人們。
這不是說個人的遠見和才華不再重要;而是在我看來,未來的成功者只是從自己的遠見和才華開始工作,然后通過有效的社區合作,將其不斷地放大。
開放式的文化會最終勝利,這或許不是因為"開放"在道德上正確,或者"封閉"在道德上錯誤,而只是因為開放式合作可以在一個問題上投入多幾個數量級的技術工時,封閉的世界無法贏得這樣的競爭。
(完)