回來香港,近來寄了好幾封求職信,信中少不了包括自己的履歷表。履歷表中又少不了要列出自己讀過什麼書、做過什麼的工作、又有什麼的才能。回來香港,也跟不少的朋友見面,大家分享這幾年發生在大家身上的大小故事,又重提當年的種種舊事。
上面描述兩種認識人的進路,一個就是用一些普遍的指標,如學歷等,來認識一個人、另一個就是以由故事當中,去認識某君的為人。
認識自由軟體,也可以其實可以有這兩種進路。如果我們想了解這兩種進路的不同特質,先要分析自由軟體的內容包括什麼?跟著討論用這兩種進路會得到哪方面的知識。我曾建議一個自由軟體社群可以由4C來代表,就是溝通工具(Communication)、貢獻(Contribution)、協調(Co-ordination)和文化(Culture)(1)。溝通工具的層面是網路社群的互動的基礎,如通信論壇、版本控制和待辦事項等。貢獻的層面就是參與者透過溝通工具為社群出力,包括修改源碼、測試報告和提供意見等。協調的層面就是把來自不同參與者的貢獻加以篩選和組合。文化就是協調之中,規矩背後的精神。
很多時認識自由軟體是由軟體入手,就是Linux、Firefox和OpenOffice等有什麼的功能。這就是由貢獻組合而成的產品入手。有時大家又會談自由軟體用什麼工具來開發,如何在網上公開,Subversion和CVS有什麼特點,有什麼分別。這就是談用什麼工具來溝通和協調。認識自由軟體又可能是由授權條款入手,就是自由軟體有四種自由,或是Open Source Initiative的界說(2)。這也是由協調入手,因為授權條款界定了什麼協調方式是不合法的。認識自由軟體,好像就是少了文化進路。文化其實能影響協調,因為協調包括取捨,而取捨的標準就是來自約定俗成的文化。文化能影響溝通工具的發展(3),如例Subversion的前身為CVS,而CVS的前身為RCS(Revision Control System)(4)。開發者放棄了RCS而自行開發了CVS,是因為RCS在支援開放式的協同開發有問題。而CVS的名字(Concurrent Versions System),也表現了它的特點。以開放的協同模式為標準,就是指向一個開放的文化。文化既然重要,為何它是比較少討論的題目?
我們可以回到求職的例子中,去找一些提示。我為了預備面試,找了個前輩來問了一下,看看他如何挑選求職者。他坦承地說有時在半個小時多的面試中很難去認識一個人。上年有一個在面試中表現出色的求職者,上班後發覺有問題,給他試了一年結果還是要辭退他。另一個情況是前輩以前的學生來求職,其實已經知道這學生很有才能,不過面試是他的弱項,而聘請事宜也不是前輩一個人可以決定,所以無法聘用他。
要討論文化,很多時也要由故事入手。但是由故事入手,就會減少系統性,也減低了吸收資訊的效率。就如用求職信、履歷表和面試去了解一個人,是有效率的。而且要明白自由軟體的故事,就先要對電腦技術和自由軟體的溝通工具、貢獻和協調等層面有一定的認識,這又要投資好一些的時間。不過如果可以對文化層面有多一點下一點功夫,就能更深認識自由軟體的背景和多元性,有如透過故事去深入地認識一個人。而且,如果把眼光擴闊一點,故事長遠來說比系統性的理論有潛力。大家可以看到古老的西遊記和三國演義到這個世代還歷久不衰,早幾天才在捷運看到旁人拿著電玩在扮演趙雲四出殺敵。人,是喜歡聽故事的。
我希望能夠寫一系列的書評,是有關自由軟體的故事的。下一篇寫的是Levy的Hackers: Heroes of The Computer Revolution(5)。
如果大家對我的文章有什麼的意見,都可以到以下網址討論一番:https://littleblackrabit.mysinablog.com/
(1) So, H., Thomas, N. & Zadeh, H. 2002, The Keys to Succeed in Building a Free/Open Source Community for Software Development:a study on China, Hong Kong and Taiwan, International Conference on Open Source, Taipei, 2-4 Aug.
(2) Open Source Definition
(3) So, H. 2005, Software Configuration System and Source Code Repository, In Construction of an Evaluation Model for Free/Open Source Project Hosting Sites, Appendix F, Royal Melbourne Institute of Technology, Ph.D Dissertation.
(4) Tichy, W. 1991, RCS - A System for Version Control.
(5) Levy, S 1994, Hackers: Heroes of The Computer Revolution, Penguin, New York.