開源項(xiàng)目治理需要回答的6個(gè)問題
要說開源代碼項(xiàng)目該發(fā)揮什么作用,很多朋友首先想到的就是開源許可。一方面,不少人認(rèn)為不符合開源代碼倡議(OSI)許可的項(xiàng)目根本就不能算真正的開源。另外,選擇使用GNU通用公共許可證(GPL)、MIT許可證等公共版權(quán)許可,則有可能給項(xiàng)目的使用方式與社區(qū)發(fā)展帶來深遠(yuǎn)影響。
但Linux基金會(huì)開發(fā)者關(guān)系副總裁Chris Aniszczyk看來,許可本身并不會(huì)真正提示我們該如何管理項(xiàng)目。因此,如何對項(xiàng)目進(jìn)行開放式管理才是問題的核心。他還補(bǔ)充道,在糾紛出現(xiàn)之前回答這些問題,并對一切參與者提供開放、公平的見解表達(dá)渠道,正是項(xiàng)目在規(guī)模擴(kuò)大的過程中取得長期成功的前提。
開源項(xiàng)目需要解決以下6大治理難題: 誰來做出決策? 如何添加維護(hù)者?誰擁有域內(nèi)權(quán)利?誰擁有商標(biāo)權(quán)?具體事件如何治理?誰負(fù)責(zé)確定構(gòu)建系統(tǒng)的運(yùn)作方式?
面對上述難題,可以看見并不存在那種百試百靈的正確答案。無論是出于社區(qū)的特定需求、還是某些歷史原因的影響,不同項(xiàng)目以及托管項(xiàng)目的基金會(huì)往往采用自己的方法。
也正因?yàn)槿绱,不少?xiàng)目決定選擇“傳遞的獨(dú)裁者”(BDFL)模式。在這種模式當(dāng)中,將由一個(gè)人(通常是項(xiàng)目的創(chuàng)始者)對重大項(xiàng)目決策擁有最終裁定權(quán)。默認(rèn)情況下,不少項(xiàng)目止步于此,Linux內(nèi)核項(xiàng)目本身就是這樣的例子。但是,Red Hat公司的Joe Brockmeier卻在觀察中發(fā)現(xiàn),BDFL已經(jīng)成為一種典型的“反模式”。“雖然確實(shí)有一部分項(xiàng)目在BDFL的推動(dòng)下取得了成功,但更多項(xiàng)目也由此徹底迷失了前進(jìn)方向。”
Aniszczyk發(fā)現(xiàn),“不同的基金會(huì)往往擁有不同的章程、條款及其組織方式,而且具體組織層面存在大量差異因素。例如,Apache Way就頗具盛名,這也是Apache指導(dǎo)自身運(yùn)作的方式。這是一種孵化器過程,各個(gè)項(xiàng)目需要憑借自己的努力一步步走向畢業(yè)。從項(xiàng)目管理角度來看,這基本屬于「廣撒網(wǎng)」的競爭篩選方式。”
Aniszczyk就項(xiàng)目管理提出了一些最低要求。他強(qiáng)調(diào),“在眾多Linux基金會(huì)與云原生計(jì)算基金會(huì)(CNCF)項(xiàng)目當(dāng)中,我們采取的是Governance.md文件模式,其中描述了如何制定決策、如何管理事物、如何添加/撤銷維護(hù)者、如何進(jìn)行子項(xiàng)目添加/刪除、如何發(fā)布開發(fā)成果等等。這些僅僅只是第一步。”
其次,他認(rèn)為“如果不以中立方式設(shè)定資產(chǎn)所有權(quán),就根本不可能實(shí)現(xiàn)開放式治理。畢竟最終,域、商標(biāo)權(quán)及某些其他版權(quán)必然歸屬于某個(gè)人或某些人。不少運(yùn)營出色的組織在這方面就采取極輕量化機(jī)制,例如Apache基金會(huì)、Software in the Public Interest以及Software Freedom Conservancy等,都做出了自己的嘗試。”
Aniszczyk還提到,目前相當(dāng)一部分常用方法都在某種程度上屬于反模式。以貢獻(xiàn)者許可協(xié)議(CLA)為例,其中定義了代碼等知識產(chǎn)權(quán)進(jìn)行項(xiàng)目貢獻(xiàn)時(shí)應(yīng)當(dāng)依據(jù)的條款。在他看來,如果企業(yè)希望“制造產(chǎn)品或使用雙重許可類模型,那么CLA無疑值得考慮。但對于其他需求,我認(rèn)為CLA反而會(huì)給開發(fā)人員帶來巨大的困擾。”
相反,Aniszczyk鼓勵(lì)人們“使用所謂「開發(fā)者原研證書」(Developer Certificate of Origin)。作為Linux內(nèi)核項(xiàng)目選擇的解決方案,它吸納了CLA中的大部分主體內(nèi)容,例如「這段代碼是我親手所寫嗎?我是否承諾從未將其復(fù)制到其他項(xiàng)目?我是否有權(quán)將這些成果移交給您,并由您認(rèn)可及處置?」這是一套非常成功的模型,已經(jīng)在Linux內(nèi)核及多種其他生態(tài)系統(tǒng)中發(fā)揮了作用。除非有著嚴(yán)格的業(yè)務(wù)需求,否則我個(gè)人真的不太建議使用CLA。”
他還發(fā)現(xiàn)了很多命名錯(cuò)誤情況。“項(xiàng)目品牌非常重要。人們往往會(huì)先在企業(yè)內(nèi)部或者以個(gè)人方式啟動(dòng)一個(gè)項(xiàng)目,比如說「Docker」,之后據(jù)此建立生態(tài)系統(tǒng),接著是創(chuàng)建起Docker公司,最終是Docker產(chǎn)品或企業(yè)級方案。所有這一切,都將服務(wù)于不同的受眾,也因此引起不少誤解。所以我個(gè)人有一種固有信念,即某一事物的名稱天然具有附加的價(jià)值主張。因此,大家最好能把企業(yè)名稱、項(xiàng)目名稱與產(chǎn)品名稱區(qū)分開來。”
最后,Aniszczyk還提到了開放式治理在建立信任與項(xiàng)目信心方面的作用。通過這種方式,企業(yè)會(huì)強(qiáng)調(diào)自己不會(huì)只在項(xiàng)目中單方面強(qiáng)調(diào)自己的需求與規(guī)劃。他總結(jié)道,“要想建立起強(qiáng)大的社區(qū),信任是一種必要的前提。如果開源項(xiàng)目缺少開放治理機(jī)構(gòu)的支持,貢獻(xiàn)者很難說服自己為項(xiàng)目貢獻(xiàn)寶貴的時(shí)間與精力。”