中文字幕一区二区人妻电影,亚洲av无码一区二区乱子伦as ,亚洲精品无码永久在线观看,亚洲成aⅴ人片久青草影院按摩,亚洲黑人巨大videos

一個(gè)人可以獨(dú)自運(yùn)行一個(gè)開源項(xiàng)目嗎?

發(fā)布于:2020-12-24 16:05:21

0

79

0

治理 開源 項(xiàng)目

當(dāng)您為雇主(無論是公司還是客戶)編寫代碼時(shí),通常都知道由誰負(fù)責(zé)。您有批準(zhǔn)PR的團(tuán)隊(duì)負(fù)責(zé)人,決定下一個(gè)版本功能的董事和產(chǎn)品經(jīng)理,以及做出重大決策的CTO和CEO。

使用開源,這些權(quán)限可能會(huì)變得更加模糊。貢獻(xiàn)者是志愿者,可以隨心所欲地來去。確定決策制定方式和項(xiàng)目進(jìn)展的方式稱為治理。根據(jù)項(xiàng)目的不同,治理方式可能與代碼本身一樣開放,或者全部取決于單個(gè)創(chuàng)始人的領(lǐng)導(dǎo),有時(shí)被稱為終身仁慈的獨(dú)裁者(簡稱BDFL)。一些人通過績效和社區(qū)投票任命董事會(huì),而另一些人則由公司發(fā)起人來挑選他們的人來做出決定。

因?yàn)闊o論在什么時(shí)候項(xiàng)目的好意和隨心所欲都能大規(guī)模地取得成功,都需要做出決定并解決沖突。一個(gè)小型項(xiàng)目可以使用無聲的共享規(guī)則進(jìn)行操作。一旦項(xiàng)目形成一個(gè)更大的社區(qū),則需要寫下并明確地做出決策的過程,以便新的參與者知道如何成功參與。 “這是實(shí)現(xiàn)任何規(guī)模的基本前提,” Drupal首席技術(shù)官Tim Lehnen說。

無論采取何種形式的治理,都可以促進(jìn)開源項(xiàng)目的進(jìn)展并鼓勵(lì)做出貢獻(xiàn)。 Mozilla首席研究工程師,Rust核心團(tuán)隊(duì)成員,編譯器和語言的共同負(fù)責(zé)人Nicholas Matsakis說:“建立既支持貢獻(xiàn)者又幫助確保他們看到他們的貢獻(xiàn)得到認(rèn)可的結(jié)構(gòu)至關(guān)重要?!痹O(shè)計(jì)團(tuán)隊(duì)。畢竟,OSS的主要優(yōu)勢在于它能夠吸引這么多人。當(dāng)人們重視他們的努力時(shí),他們就會(huì)堅(jiān)持下去,并且會(huì)對項(xiàng)目產(chǎn)生影響?!?/span>

Stack Overflow自己的Sara Chipps說:“開源可能具有牛仔文化?!彼?NET Foundation董事會(huì)和OpenJS Cross Project Council的董事會(huì)成員。 “引入護(hù)欄時(shí),您要確保每個(gè)項(xiàng)目都能獲得成功的安全,令人鼓舞和開放的環(huán)境?!?/span>

我與參與OSS項(xiàng)目的幾個(gè)人進(jìn)行了交談,以了解最有效的護(hù)欄是來自BDFL,是一個(gè)擁有最終決定權(quán)的人,還是與幾個(gè)人的委員會(huì)達(dá)成共識(shí)。

BDFL風(fēng)格:戴皇冠的頭部沉重

“一生的仁慈獨(dú)裁者”一詞是為Python的創(chuàng)建者Guido van Rossum創(chuàng)造的,大多是在開玩笑,但這個(gè)名字卻很固定。這個(gè)術(shù)語涵蓋了所有創(chuàng)始人領(lǐng)導(dǎo)的開源項(xiàng)目,包括Linux內(nèi)核,Drupal,Clojure和Ruby。有大量受歡迎的OSS項(xiàng)目都依靠專門的創(chuàng)始人來管理,因此必須有一些好處。

我在開源堆棧交換中向社區(qū)詢問了這一點(diǎn)。 “我一直認(rèn)為BDFL模型介于傳統(tǒng)的開放源代碼項(xiàng)目結(jié)構(gòu)和傳統(tǒng)的公司項(xiàng)目結(jié)構(gòu)之間,”使用bta的用戶回答道。 “您擁有OSS的開放性,透明性和一般文化,但只有一個(gè)強(qiáng)大的項(xiàng)目經(jīng)理來做出高層決策并指導(dǎo)整體工作?!?/span>

BDFL可以表明項(xiàng)目具有很強(qiáng)的遠(yuǎn)見,并將長期保持這一遠(yuǎn)見。 bta繼續(xù)說道:“它使領(lǐng)導(dǎo)者能夠發(fā)展并堅(jiān)持有凝聚力的長期愿景,而不是一系列短命的領(lǐng)導(dǎo)人不斷改變計(jì)劃和方向?!?D. SM的另一位用戶寫道:“如果您在項(xiàng)目愿景方面與BDFL保持一致,那么為BDFL運(yùn)行的項(xiàng)目做出貢獻(xiàn)是有意義的?!?/span>

如今,如此眾多的流行語言都在BDFL模型上運(yùn)行,這絕非偶然。 Perl,Ruby,Rails,Python和Scala都是從創(chuàng)建者主導(dǎo)的項(xiàng)目開始的。甚至C ++都有一個(gè)創(chuàng)建者Bjarne Stroustrup,他一直是標(biāo)準(zhǔn)委員會(huì)的活躍成員,擔(dān)任語言擴(kuò)展小組的主席已有24年。 “在語言的早期階段(“早期”是該語言的前10到20年),至關(guān)重要的一點(diǎn)是,要讓某人對語言有長期的了解,并在其成功上擁有既得的個(gè)人利益,這至關(guān)重要?!?Ryan Cavanaugh,Microsoft的TypeScript語言的首席工程主管。 “我認(rèn)為,當(dāng)今幾乎所有廣泛使用的語言都始于強(qiáng)大的集中式設(shè)計(jì)師,這并不是一個(gè)巧合。”

有了符合貢獻(xiàn)者愿景的BDFL,項(xiàng)目就可以遵循該愿景,并在發(fā)布方面取得實(shí)質(zhì)性進(jìn)展。 “您有一小部分人正在嘗試做某事,” DevOps工程師兼Apache軟件基金會(huì)成員Rob Tomkins說。 “與一大群人,他們必須放慢腳步,他們可以更快地行動(dòng),更快地做出決定。我嘗試盡可能地保持開放的態(tài)度,因?yàn)長inus [Linux的創(chuàng)造者Torvalds]取得了巨大的成功?!?/span>

盡管Linux Foundation確實(shí)托管了許多流行的開源項(xiàng)目,包括jQuery,Kubernetes和具有不同治理形式的Node.js,但Linux內(nèi)核仍然具有寬松的BDFL結(jié)構(gòu)。 Linux基金會(huì)總經(jīng)理兼戰(zhàn)略計(jì)劃高級副總裁Mike Dolan表示:“ Linux內(nèi)核遵循一個(gè)模型,其中Linus負(fù)責(zé)監(jiān)督最終發(fā)布細(xì)節(jié),但幾乎所有決定實(shí)際上都是由各自的子系統(tǒng)維護(hù)者或子系統(tǒng)組維護(hù)者做出的。所有項(xiàng)目都是包容性的,這意味著任何人都可以做出貢獻(xiàn)并參與技術(shù)社區(qū)?!?/span>

但是,隨著項(xiàng)目的發(fā)展,其他貢獻(xiàn)者可能會(huì)發(fā)現(xiàn)自己在某些領(lǐng)域獲得了專業(yè)知識(shí),有時(shí)甚至是非正式的領(lǐng)導(dǎo)。 “在任何大型項(xiàng)目中,圍繞各個(gè)主題至少總會(huì)有一個(gè)非正式的權(quán)力所在地,” Mozilla的研究工程師,Rust Core團(tuán)隊(duì)成員Manish Goregaokar說。 “ BDFL不可能始終無處不在,因此您要做的至少是將他們的角色正規(guī)化并使其易于參與。”

看來,BDFL的長期項(xiàng)目可以使領(lǐng)導(dǎo)者成為最終決策者,而不再是處于爭吵狀態(tài)的雜草叢生的領(lǐng)導(dǎo)者。同樣的情況也適用于Drupal的創(chuàng)始人Dries Buytaert。 Lehnen說:“ Dries在Drupal中擔(dān)任BDFL的角色使他成為涉及Drupal軟件的任何事情的最終決策者?!?“但是,Drupal項(xiàng)目具有比軟件變更管理更廣泛的治理框架。對Drupal項(xiàng)目的日常貢獻(xiàn)已通過同行評審過程進(jìn)行了審查和接受?!?[ed。注意:您可以收聽Dries,在最近的Stack Overflow播客中討論其工作方式的詳細(xì)信息:]

在某些方面,許多BDFL風(fēng)格的項(xiàng)目最終都將作為混合型治理運(yùn)作,而BDFL擁有最終決定權(quán),而以下團(tuán)隊(duì)則負(fù)責(zé)制定細(xì)節(jié)。 Goregaokar說:“如果大多數(shù)權(quán)力都移交給其他人群,那么BDFL模型就可以發(fā)揮作用,而BDFL則可以讓這些人群做出決定。” “這與Rust中發(fā)生的事情沒什么不同?!?/span>

當(dāng)然,沒有人能獨(dú)自成功,也沒有人能完美。卡瓦諾說:“實(shí)際上,我認(rèn)為今天沒有語言設(shè)計(jì)師會(huì)坐在山頂上,每隔幾個(gè)月下來發(fā)表聲明,然后再回到隱居狀態(tài)?!?“他們正在與尊重他們意見的人交談,尋找人們提出棘手的問題,并且可能做出比您在名稱中的'獨(dú)裁者'部分所期望的要妥協(xié)得多的事情?!?/span>

這是您依靠核心人物承擔(dān)的風(fēng)險(xiǎn)之一。該項(xiàng)目的成功或失敗取決于獨(dú)裁者的實(shí)力及其管理復(fù)雜技術(shù)項(xiàng)目的能力。 Matsakis說:“有些人具有超常的能力,既可以引導(dǎo)討論,暫緩所需的投入,也可以做出明智的決定?!?“其他人,沒有那么多。因此,這是您要冒的風(fēng)險(xiǎn)?!?/span>

盡管存在一些幸存者對我們認(rèn)為模型成功的偏見,但我們當(dāng)然不能輕視該模型的好處。 “沒有人談?wù)撨^不成功的語言的BDFL,因此我們已經(jīng)在談?wù)撘粋€(gè)由其職位性質(zhì)證明了自己的專業(yè)知識(shí)和智慧的人們?!?Cavanaugh說。

Lehnen說:“ BDFL模型的潛在弊端很多,并且與項(xiàng)目創(chuàng)建者的個(gè)性不同。”有時(shí)候,創(chuàng)始人的個(gè)性是問題所在。擁有強(qiáng)大見解,獨(dú)到見解以及雄心勃勃地推動(dòng)行業(yè)重大變革的人們并不總是最樂于助人。奇普斯說:“這不是一個(gè)能很好地反映大多數(shù)人的模型?!?“他們認(rèn)為他們是周圍通常很難相處的人-不友善,不友好,不受歡迎。但是他們碰巧創(chuàng)造了一些很棒的東西?!?/span>

實(shí)際上,該模型的大多數(shù)問題都來自于依賴單個(gè)開發(fā)人員,而不管他們的個(gè)性如何。如果由于彩票中獎(jiǎng)或公交車事故而消失,則該項(xiàng)目將陷入困境。憑借天才的技術(shù)能力善于創(chuàng)造新語言的人可能不是一個(gè)偉大的人或項(xiàng)目經(jīng)理,并且不管他們的編程能力或能力如何,他們只是時(shí)間和精力有限的一個(gè)人。 Matsakis說:“試圖獨(dú)自運(yùn)行一個(gè)項(xiàng)目真的很累?!?“我無法想象任何人可以獨(dú)自嘗試運(yùn)行Rust項(xiàng)目?!?/span>

雖然開源項(xiàng)目與企業(yè)不同,但企業(yè)的軟件項(xiàng)目也不依賴一個(gè)人。奇普斯說:“即使是初創(chuàng)公司也不是那樣工作的。” “人們?nèi)菀追稿e(cuò),因此在某些時(shí)候,人們要么精疲力盡,要么厭倦工作,要么被要求下臺(tái)。這是在項(xiàng)目初期的有效模型,因?yàn)樗梢栽跀U(kuò)展時(shí)迅速做出決策,并且會(huì)崩潰;人們?nèi)菀追稿e(cuò),而且會(huì)犯錯(cuò)誤,而且沒有無限的時(shí)間。它確實(shí)可以防止官僚主義,但是在一定規(guī)模上,迅速拉動(dòng)觸發(fā)器是不好的?!?/span>

近年來,我們已經(jīng)看到這種模式在逐漸蔓延:范·羅蘇姆(van Rossum)卸任,托瓦爾茲(Torvalds)在受到粗魯,侵略性行為的指控后休息了一段時(shí)間。他們增加了額外的決策支持和社區(qū)參與。因此,硬幣的另一面是什么樣的。讓我們看一下社區(qū)主導(dǎo)的項(xiàng)目有哪些優(yōu)點(diǎn)和缺點(diǎn),以及如何通過基金會(huì)的參與來改善這一點(diǎn)。

委員會(huì)設(shè)計(jì)

在由BDFL領(lǐng)導(dǎo)的項(xiàng)目可以圍繞中央愿景協(xié)調(diào)貢獻(xiàn)者并快速做出決策的情況下,該項(xiàng)目尋求團(tuán)體的共識(shí),無論是被選出的委員會(huì)還是在其中投票的人,或是通過專職貢獻(xiàn)贏得特權(quán)投票方式的一群人,總是會(huì)減慢速度。有時(shí),這種較慢的,可衡量的決策過程實(shí)際上可能是凈積極的。 Matsakis說:“如果做得好,開放式治理將為您提供巨大的投入,這可以更好地為您的決策提供依據(jù)?!?“人們可能會(huì)貢獻(xiàn)出您尚未想到的想法?!?/span>

進(jìn)行這些開放,較慢的對話可以幫助您實(shí)現(xiàn)想法,甚至您可能不確定的想法。有時(shí),能夠找出錯(cuò)誤答案的確定“原因”與找到新的正確答案一樣有價(jià)值。湯姆金斯(Tomkins)告訴我一個(gè)有關(guān)他何時(shí)對Apache Commons Listserv進(jìn)行更改的故事。 “我討論了我們應(yīng)該保留Apache Maven構(gòu)建基礎(chǔ)架構(gòu)還是遷移到Gradle,這是Spring Framework的用途。為了進(jìn)行健康的對話,我試圖明確表示我只是在推動(dòng)界限,并且我對社區(qū)所說的沒事。每個(gè)人都在想,‘不,我們不要搬到Gradle。那是負(fù)數(shù)。讓我們呆在Maven上。’而我當(dāng)時(shí)想,這很有道理?!?/span>

有了更成熟的技術(shù),這種思想探索絕對是加分的。來自經(jīng)驗(yàn)豐富且親自參與該技術(shù)成功的多個(gè)開發(fā)人員的全新思路可以使它在未來幾年保持相關(guān)性??ㄍ咧Z說:“任何一種已經(jīng)足夠成功的語言,足以保證委員會(huì)能夠決定其方向,首先必須已經(jīng)“足夠好”以證明委員會(huì)的合理性。” “共識(shí)委員會(huì)的慢性不會(huì)成為一個(gè)嚴(yán)重的障礙?!?/span>

Goregaokar表示:“在Rust上,正和思維的趨勢很好?!?“通常在技術(shù)決策中會(huì)涉及重大的權(quán)衡取舍,但是人們努力尋找正和答案,以表明您也可以吃蛋糕。并非總是可能的,但是如果可行,它確實(shí)可以很好地工作?!苯⒎e極,富有成效的對話可能很困難,建立共識(shí)并不意味著每個(gè)人都參與其中。有時(shí),委員會(huì)的決定與總體共識(shí)有所不同。 Matsakis說:“大多數(shù)時(shí)候,我們會(huì)以與RFC線程的'感覺'相一致的方式來決定事情,但并非總是如此?!?/span>

委員會(huì)的問題不僅來自試圖建立共識(shí),還來自誰來參加這些委員會(huì)。對于創(chuàng)始人領(lǐng)導(dǎo)的項(xiàng)目,這個(gè)問題尚無定論。您構(gòu)建了它,然后運(yùn)行了它。但是委員會(huì)通常是由現(xiàn)有成員選舉或選舉產(chǎn)生的。對于那些由公司贊助商選擇董事會(huì)成員的項(xiàng)目,這一決定可能會(huì)顯得格外煩惱,尤其是對于那些更加理想化的貢獻(xiàn)者而言。

委員會(huì)風(fēng)格的治理實(shí)際上與BDFL風(fēng)格存在一個(gè)問題:倦怠。如果您認(rèn)為自己必須做每一個(gè)決定都很累,請嘗試與一群人一起做每一個(gè)決定。 “開放式治理可能很累人,” Goregaokar說。 “有時(shí)候人們有很強(qiáng)的見解,而且很難處理受到強(qiáng)烈見解轟炸的討論?!?/span>

BDFL治理重視決定性和遠(yuǎn)見,而委員會(huì)治理重視耐心和同情心。湯金斯說:“人們有其細(xì)微差別?!?“沒關(guān)系。您的語氣必須格外謹(jǐn)慎和寬容,并且要理解其他國家/地區(qū)的人們,因?yàn)樗麄儾灰欢私膺@種語言以及我們中某些人的細(xì)微差別。您只需要有耐心和寬容,我認(rèn)為這樣可以建立一個(gè)更健康的項(xiàng)目。”

當(dāng)出現(xiàn)多種好的解決方案時(shí),委員會(huì)可能會(huì)陷入僵局,或者當(dāng)感覺受到傷害時(shí),委員會(huì)就會(huì)陷入戰(zhàn)斗。這就是為什么現(xiàn)在許多開源項(xiàng)目都屬于傘形基礎(chǔ),可以解決這些元治理問題。 Mozilla,Linux,Apache甚至Java都提供了曾經(jīng)被撤職的監(jiān)督小組,以權(quán)衡這些問題。甲骨文公司Java平臺(tái)事業(yè)部軟件開發(fā)副總裁Georges Saab表示:“有一個(gè)上訴程序,因此,如果有人覺得自己做錯(cuò)了事,或者沒有以合理的理由做出決定,他們就會(huì)感到不滿?!焙蚈penJDK董事會(huì)主席。 “但是我很高興地說我們不必雇用它。在過去的十年中,我們沒有發(fā)生過這樣的問題?!?/span>

可持續(xù)有機(jī)規(guī)范

當(dāng)然,所有這些治理都是為了確保OSS項(xiàng)目在長期內(nèi)是可持續(xù)的,并且參與者可以感覺到自己正在受到重視并從中受益。為開源做貢獻(xiàn)有很多好處,它可以增強(qiáng)簡歷,使您的技能保持最新狀態(tài)并與其他開發(fā)人員建立聯(lián)系。但是事實(shí)仍然是,這主要是志愿者工作。

湯姆金斯說:“我盡力做到熱情和開放,因?yàn)檎娴暮茈y找到提交者。” “外面的每個(gè)人都超級忙。每個(gè)人都在空閑時(shí)間做這些事情。如果我能令人耳目一新地歡迎大家,從長遠(yuǎn)來看,人們更有可能與我一起工作?!?/span>

Bootstrap,Hogan.js等的創(chuàng)建者Jacob Thornton講了一個(gè)經(jīng)典演講(警告:咸味語言)。他談到開放源代碼給人造成的損失,尤其是在該項(xiàng)目變得流行時(shí)。善政和行為守則可以減輕這種壓力。奇普斯說:“開放源代碼只是一個(gè)令人不快的地方,您可以在其中做出讓人喜歡的東西,然后突然有人對您大喊大叫?!?“那不是很好。開源治理允許為這些人提供支持系統(tǒng)?!?/span>

成功的項(xiàng)目,特別是那些使用開源代碼構(gòu)建關(guān)聯(lián)業(yè)務(wù)的項(xiàng)目,可以找到公司投資者。這些小組可能會(huì)提供財(cái)務(wù)或技術(shù)支持,但他們也可能開始歪曲項(xiàng)目的任務(wù)。 “對我們來說,一個(gè)重要的教訓(xùn)是將業(yè)務(wù)和技術(shù)工作的治理分開?!?Dolan說。許多公司在其解決方案中使用OSS并產(chǎn)生實(shí)際收入。他們很快意識(shí)到需要回饋。另一種情況是,他們將花費(fèi)太多金錢來維持與上游社區(qū)不同步的項(xiàng)目代碼庫。這就是我們許多項(xiàng)目找到可持續(xù)發(fā)展的周期,并希望取得長期成功的原因?!?/span>

這些管理規(guī)則不僅使貢獻(xiàn)者對其所做的工作感到滿意;它們還有助于確保項(xiàng)目朝著有益的方向發(fā)展。不管樣式如何,大多數(shù)項(xiàng)目都有一個(gè)提案和RFC流程,可以根據(jù)需要調(diào)整任何新功能。 “對于我們來說,重要的是,我們今天要添加的任何功能都可以滿足具體需求,而不僅僅是以推測方式添加到該語言中,” Cavanaugh說。 “一旦我們對功能建議感到滿意,最后一步就是實(shí)施它,然后我們可以嘗試一下,找出所有可能的情況,并確保我們已經(jīng)創(chuàng)建了將永遠(yuǎn)成為一個(gè)好東西的東西。除了語言。”

Linux基礎(chǔ)可能是當(dāng)前治理的黃金標(biāo)準(zhǔn)。他們起步很早,從根本上創(chuàng)造了現(xiàn)代開源理念。 Linux操作系統(tǒng)設(shè)想的代碼貢獻(xiàn)就像集市,而不是大教堂。也就是說,任何人都可以貢獻(xiàn)力量,而不僅僅是選民。由于他們很早就開始開源,因此隨著時(shí)間的推移,他們已經(jīng)獲得了豐富的經(jīng)驗(yàn)。 Chipps說:“將Linux基金會(huì)作為父基金會(huì)是治理的一個(gè)很好的例子?!?“由于它在很多方面都失敗了,因此必須在所有工作上都變得更好。它開始是一個(gè)對抗的地方?,F(xiàn)在官僚機(jī)構(gòu)太多了,這是不可能的?!?/span>

多蘭同意:好的決定來自經(jīng)驗(yàn),經(jīng)驗(yàn)來自于破壞事物。 “我們當(dāng)然是通過做事,破壞事情以及必須幫助解決這些問題來學(xué)習(xí)的。這不僅適用于軟件,還可以對治理本身進(jìn)行建模。我們還聘請了開放源代碼專業(yè)人士,他們在進(jìn)入Linux Foundation之前已經(jīng)建立并破壞了許多東西,并在我們建立新社區(qū)時(shí)將這些經(jīng)驗(yàn)帶到了桌面?!?/span>

像代碼本身一樣,開源項(xiàng)目及其治理仍在進(jìn)行中。它仍在弄清楚什么是治理模式,以及如何將所有志愿人員的捐款變成可持續(xù)的模式。但是他們已經(jīng)改變了世界,并將繼續(xù)與世界一起改變。