〔摘 要〕本文對開源社區的開發流程中存在的信息流動現象進行了研究。通過對開源社區開發流程的詳細介紹,在這基礎之上歸納出社區中信息互動的主體,剝離出存在于其中的信息流,并在此基礎上歸納出了四種信息流動的模式,即不定向主動、定向主動、不定向被動和定向被動。
〔關鍵詞〕開放源代碼(開源)社區;開發流程;開發主體;信息流動
〔中圖分類號〕G209 〔文獻標識碼〕A 〔文章編號〕1008-0821(2012)10-0163-03
近年來,隨著信息技術和互聯網的迅猛發展,關于開放源代碼的各種活動不斷地蓬勃繁榮起來。作為軟件領域最值得爭議的一種現象,開放源代碼軟件(OSS)目前吸引了越來越多來自計算機領域和學術領域,甚至是政治領域的關注目光[1],與云計算和物聯網一起成為公認未來的研究趨勢。有學者甚至預言未來只有開源才能推動云計算與物聯網的發展。
開放源代碼指的是對計算機程序編碼不設任何限制,任何人都可以利用、修改編碼并可對修改后的編碼進行傳播而不需要付費。這使得各種源代碼為人所用變得簡單,隨著互聯網的普及與深入,開源社區也隨之出現并逐漸成為主流的開發方法。傳統的開發模式中主要遵循“金字塔”組織設計理論,由各個項目經理負責各個方面的產品開發,最后再由更上一級的管理者統籌規劃。這種傳統的開發模式已經不能適應當今時代變化的速度,甚至連微軟這個當初極力反對開源模式的公司都建立了自己的開源生態社區。開源社區以其獨特的開發流程吸引著無數開發人員,而開發流程中存在的信息流動現象也同樣值得探究。
1 開源社區的開發流程
互聯網上充斥著各種各樣的開源社區,社區開發的模式已經被商業化、混合化,但無論是太陽微電子系統創建的OpenOffice.org,還是非營利組織Apache Foundation創建的apache.org都有其通性,那就是其開發流程都具有基本相同的規則。
1.1 原始開發者發布源代碼及項目
發布項目時要與社區管理者聯系獲得許可,按照標準化的項目文件描述格式在社區指定的位置發布。在原始開發者公布源代碼的同時,還要必須針對不同的計算機硬件平臺編譯成為可執行程序[2]。因而版本發布者任務就是編譯源代碼以進行再次發布,同時要選擇合適的許可證。在這版本的發布者可以是源代碼提供者也可以是項目的維護者,這取決于第一部分所說的開發主體。
1.2 協作開發者進行開發
開發者進行開發前需要簽署一個貢獻者協議,表明社區和開發者共有代碼的權利[5]。開發者隨后可以選擇自行開發或者根據自己的興趣愛好自愿組成小組進行開發。在這一階段內,會通過BBS、論壇、郵件列表、即時通訊軟件進行小組內部討論項目的可行性、人員分工、結構、編程環境的選擇、項目調試等等,針對源代碼中存在bugs或者優化的算法,以標準化的文檔、手冊、說明、通告、調試報告、bug報告+使用感想等形式[2],通過社區論壇或郵件列表等將其反饋給項目維護者,并注明那部分代碼是補充修改的。這一過程是開源開發中的核心步驟,能占到開發周期的80%甚至到90%。
1.3 項目維護者進行審核
維護者需要審核上傳的代碼,選擇優秀的代碼加入到源代碼中。維護者的責任包括決定接受或拒絕開發者提交的修改;代碼的讀取、修改和新增;應用補丁;分別公布無修改的原始代碼和修改補丁,并將它們組合運用到新的軟件功能中。
1.4 進行項目測試與維護
這是開發流程中極其關鍵的一步,維護者要從整體上監控缺陷、改進漏洞以及與其他項目進行交流。在這個過程中,委員會成員及項目維護者還會在社區論壇或其他即時通訊工具中進行公開討論、會議,決定這個項目的何去何從(許可證的選擇),是商業化還是繼續開源或者進行雙許可證發布。
1.5 公開軟件的發布版
由于這些軟件遵循早發布的原則普遍會存在一些功能上的欠缺,發布者更多考慮的是如何更快更早的發布,從而可以更好地傾聽其他開發者的想法,而不是照顧到項目的各個方面。所以版本的循環發布非常頻繁,以上的流程會重復多次,直到穩定版發布[4],每一次發布都會伴隨著新的版本號。請參看下圖Linux內核的開發樹:
圖1 Linux內核開發樹
2 開源社區中的信息交流主體
從上文的介紹中可以看出,開源社區開發流程中主要有以下幾個角色:源代碼提供者,項目維護者,協作開發者,底層開發者,用戶。其中項目維護者就是項目的發起人或者被上一任的維護者指定的人,可以是自發的個人或者專門為該項目組建的委員會也可能是公司任命的一個人,視社區管理主體而定。大部分項目都是由維護者執行、管理和維護的。在其中一些大型的“民主型”開發項目中,項目維護者一般會在論壇上面公布軟件的各個大模塊,每個模塊會設立一個討論區。如果參與者有興趣,就可以加入到討論區中,發布自己的程序或評論其他人的成果。協作開發者往往會以小組的形式來集中完成某一部分的代碼,小組的形式也不固定,人員變動比較頻繁。但由于開發人員加入某個小組要么是出于對項目內容感興趣,要么就是對于項目領導者的追隨,很少有開發人員會擅自撤離當前參與項目的開發。
本文將社區中的信息交流中涉及的主體按照信息交流的環節要素分為信息發送者、信息代理者、信息接收者、信息渠道者、信息管理者。
2.1 信息發布者
是信息產生的初始來源,是在信息流動過程中的初始環節。信息發送者可以是源代碼提供者、項目核心維護者,也可以普通開發者,也可以是其他所有的角色。信息發送者是信息流動中的重要角色,信息的內容、屬性、目的、價值都在這體現出來。
2.2 信息代理者
相當于信息中介,又稱“信息棧”,既可以替信息生產者代理也可為信息接收者代理。例如版本開發者就承擔著代理商的角色,負責在不同平臺的開發者之間做信息的轉述和簡化,為其提供信息增值服務。還有像一些與社區鏈接的其他公司門戶網站等等。
2.3 信息接收者
又稱信息需求者或稱受信者,他是信息的最后利用者,是信息流動的最終意義。像信息發布者一樣,受信者也可以是信息交流要素中的任一角色,同一用戶在社區內往往會扮演多重角色。
2.4 信息渠道者
是指信息達到受信者所經過的渠道,是一種抽象的含義,并不是具體的人或某種實體。其中包括網絡論壇、搜索引擎、論壇、郵件列表和實時交互系統等交流工具,也可以是社區中有威信的開發者或者組織。信息在信息渠道者這里實現了信息內在價值的表現、傳播與增值,優秀的開發者往往會通過信息渠道者將自己推銷出去。
2.5 信息管理者
是儲存、分析、加工信息的專有人員,一般附屬于社區網站的管理層,像社區論壇的站長、項目維護者、委員會都可以算作是信息管理者。
3 信息流動的模式
開放源代碼軟件在比較完善的許可證制度框架下,通過虛擬的網絡創新平臺,將有著不同動機和各自需求的軟件用戶緊密高效地聯系起來,形成一個虛擬社區,共同推進開放源代碼軟件的推陳出新[7]。在社區中,開發項目往往以興趣來聚攏人才,通過吸引用戶的加入使之轉化為開發人員,進而激勵開發人員努力的開發而成為項目的管理者甚至是核心維護者。而且,通過社區建立的方便快捷的信息通訊工具,組織內部的人員之間的交流、評價、知識互動非常頻繁,他們的一舉一動也很快能夠被其他的成員注意到。根據正式交流模式,信息傳遞者和信息用戶之間的關系,文獻傳遞有4種類型:多向主動傳遞、單向主動傳統、多向被動傳遞、單向被動傳遞[8]。在開源社區中,這種劃分仍大體可行,只不過略微有些變化。
3.1 不定向主動
這種模式是開源社區中應用最廣泛的信息交流方式,是指信息生產者或信息代理者針對廣大未知的信息需求者,類似廣播似的信息發布方式將信息發布在固定顯眼的位置。在開源社區中,不定向主動主要形式有社區公告、網絡論壇和留言板、論壇主題演講、新發布的項目動態、社區官方微博、業內新聞要覽和開發項目資訊、行業行情熱點等。如圖2所示:
3.2 定向主動
這種模式是信息生產者針對特定的信息需求者進行信息發送。一種是根據不同的開發者建立專題數據庫(如代碼內容管理系統、項目信息管理系統),來專門統計開發者上傳的源代碼,以便項目維護者可以審核、應用代碼。還有就是根據不同的信息需求者進行個性化信息服務,例如信息管理者會建立用戶文檔,定期往用戶的E-mail發送訂閱的新聞、項目概況、開發技術指南。如圖3所示:
3.3 不定向被動
信息發布者事先沒有確定具體的受信者,而是將一次信息加工成二次信息或者三次信息如索引、摘要、目錄、導航、排行榜搜索引擎等,等待未知的用戶主動來尋求信息服務。這種模式下,信息發布者會提前完成信息的采集、存儲、加工整理、知識挖掘、建設檢索系統,并提供瀏覽和下載服務。如圖4所示:
3.4 定向被動
主要是信息發送者設立的單向信息咨詢服務,是針對特定的未知用戶的需求。比如版主往往會在社區醒目地方說明自己的通訊方式,當你申請注冊社區時就需要說明自己加入社區的意愿、目的,學歷及研究領域,有意向的模塊等,方便版主決定是否準許你進入社區中;代碼維護者也會在項目信息中說明自己的郵箱、通訊方式等,方便開發者有問題時與之聯系等。如圖5所示:
4 結束語
在這4種主要的信息流動模式中,前兩種模式具有典型的信號發送的經濟學特征,即信息發送者一般是處于掌握信息較多的一方,處于某種目的將信息發送給信息較少的信息需求者。根據斯彭斯的《勞動力市場信號發送》所述,在競爭性的勞動力市場中,具有較高才能的勞動者可以通過采用某些有成本的行為進行信號發送。這樣,就大大減少了開發流程中的不信任程度。后兩種模式一般是指信息服務,代表著開源社區的軟實力。
可以看出,開源社區管理的成功之處就在于較好的利用了前兩種信息交流模式,最大化的消除開發者之間的“信息孤島”現狀,把開發人員的積極性和協作性調動起來,使好的想法和思想與開發技術有機的結合起來。
參考文獻
[1]王飛絨,陳勁.網絡環境下新興的創新組織形式:開放源代碼社區[J].研究與發展管理,2006,18(6):37-40.
[2]畢雨,王延清.虛擬組織中信息資源管理初探[J].商業現代化,2007,(33):21-22.
[3]Raymond E S.The cathedral the bazaar[M].Reilly,Sebastopol,CA,1999.
[4]Martin Fink.Linux及開放源代碼在商業經濟中的應用[M].北京:清華大學出版社,2005:16-86.
[5]逆流的魚.如何參與OpenSolaris開源社區的開發[EB].http:∥hi.baidu.com/hidehai/blog/item/6dce284550375221cffca3d5.html,2011-07-15.
[6]王利.開放源代碼軟件開發[J].計算機教育,2004,(1):77-78.
[7]柯偉,陳衍泰,司春林.開放源代碼社群中的激勵機制研究[J].科技進步與對策,2006,23(7):13-16.
[8]張琳.網絡環境下的信息交流模式[J].圖書館學研究,2002,(1):7-8.
[9]郭宇飚.開放源代碼軟件現象研究評介[J].外國經濟與管理,2005,27(1):59-64.
(本文責任編輯:孫國雷)