建立受歡迎的社區(qū) 【GitHub 開源貢獻(xiàn)指南譯文】

建立成功的項目

你們已經(jīng)啟動了你們的項目,你們正在傳播它,同時有人正在查看它。真棒!現(xiàn)在,你如何讓他們堅持下去。

一個受歡迎的社區(qū)是對你們項目的未來和聲譽(yù)的投資。如果你的項目才開始收到第一次貢獻(xiàn),那么你們需要盡早的給貢獻(xiàn)者們一次積極的經(jīng)歷,以至于能讓他們繼續(xù)參與貢獻(xiàn)。

讓大家感到受歡迎

可以通過被@MikeMcQuaid稱之為貢獻(xiàn)者漏斗的方法思考你們項目的社區(qū)。

image

當(dāng)你們建立了自己的社區(qū),你需要考慮如何讓那些處在漏斗上方的人(潛在用戶)轉(zhuǎn)移到漏斗下方(活躍的維護(hù)者)。你們的目標(biāo)是減少貢獻(xiàn)者們在每個階段遇到的摩擦。當(dāng)人們能夠輕易的取得勝利時,他們會樂意去做更多事。

從你的文檔開始:

  • 讓大家很容易使地用你的項目。 一份友好的 README以及清晰的代碼示例將讓大家很簡單地開始你們的項目。
  • 清楚的解釋如何做貢獻(xiàn),使用你的CONTRIBUTING file以及持續(xù)更新issues。

好的文檔能夠邀請他人參與你們項目的互動。最終,一些人會開一個issue或者pull request。將這些互動視為機(jī)會,將他們轉(zhuǎn)移到漏斗的下方。

  • 當(dāng)一些人選擇了你們的項目,請對他們表示感謝!僅僅只是一次消極的經(jīng)歷就能讓一些人不想再回來。
  • 及時回應(yīng)。如果你們一個月都沒有回答他們的問題,他們可能早已忘記了你們的項目。
  • 對你以后接受的所有貢獻(xiàn)者持開放態(tài)度。 很多貢獻(xiàn)者是從一份bug報告或者小的修復(fù)開始的。這里有很多為項目做貢獻(xiàn)的方式。讓大家選擇他們喜歡的方式。
  • 如果你不贊成一個貢獻(xiàn), 首先你需要對他們的想法表示感謝,同時 解釋為什么它不適合項目,如果有必要的話你可以給出相關(guān)的文檔鏈接。
Paste_Image.png

為開源做貢獻(xiàn)對一些人來說很簡單,但對另外一些人可能就不是這樣了。有很多人因為沒有做正確的事而害怕叫喊,或者只是不適合。(。。。)通過允許貢獻(xiàn)者參與一些對技術(shù)要求比底的工作(文檔,web content markdown,etc),可以極大的減少你對這些情況的關(guān)注。
— @mikeal, "Growing a contributor base in modern open source"

多數(shù)開源貢獻(xiàn)者是“臨時貢獻(xiàn)者”,因為他們只是偶爾參與項目貢獻(xiàn)。一位臨時貢獻(xiàn)者可能沒有充足的時間全程跟蹤你的項目,所以你們的工作是能讓他們很容易地參與貢獻(xiàn)。

鼓勵其他的貢獻(xiàn)者也是對你們項目的一種投資。當(dāng)你們授權(quán)大量的粉絲做他們感興趣的工作時,你們的壓力就少了很多。

記錄一切

Paste_Image.png

你是否參加過一個(技術(shù))活動,你不認(rèn)識在場的人,但是似乎每個人站在一個小組里像老朋友一樣聊天?(。。。)現(xiàn)在想象下你想為一個開源項目做貢獻(xiàn),但是你不知道為什么或者這個是如何發(fā)生的。
— @janl, "Sustainable Open Source"

當(dāng)你開始一個新項目,你會覺得保持工作的私有性是正常的。但是開源項目發(fā)開始于你在公共平臺記錄自己的工作進(jìn)程。

當(dāng)你門把事情記錄下來,會有更多的人能夠按照你們的方式參與每一步。你可能會得到意想不到的幫助。

書寫東西不僅僅只是技術(shù)文檔。任何時刻,你們有寫一些東西或者私自討論項目的沖動,請詢問自己是否能將之公開。

保持項目透明的項目路線:你們期待什么類型的貢獻(xiàn)者,如何審查貢獻(xiàn),或者你們?yōu)槭裁醋瞿承Q定。

如果你們注意到有多個用戶遇到過同樣的問題,那么你們應(yīng)該將答案記錄在README中。

對于經(jīng)常遇到的問題,你們可以考慮發(fā)布你們的筆記或者相關(guān)的issue。在這種情況下得到的反饋將會令你們驚訝。

記錄一切也適用于你們的工作。如果你正在進(jìn)行大量的更新工作,請將其放入pull request并標(biāo)記為正在進(jìn)行(WIP)。這樣,可以讓其他人感覺參與過早期工作。

積極回應(yīng)

一旦你推廣項目,人們將會給你們反饋。他們可能會問項目是如何工作的,或者需要你們幫助開始項目。

當(dāng)有人列出一條issue,提交一個pull request,或者詢問項目的有關(guān)問題時,你們應(yīng)該盡量回答他們。當(dāng)你們快速地做出回應(yīng)時,人們將感覺到他們參與了對話,以及他們將會更熱情地參與。

如果你無法及時審查請求,請盡早確認(rèn),這樣會有助于提高參與度。這里是@tdreyno在Middleman上如何回應(yīng)一個pull request:

Paste_Image.png

一份Mozilla研究發(fā)現(xiàn) 如果貢獻(xiàn)者在48小時內(nèi)收到代碼審查,他們會有很大的可能返回以及重復(fù)貢獻(xiàn)。

與你們項目有關(guān)的話題也可能發(fā)生在互聯(lián)網(wǎng)的其它地方,例如Stack Overflow,Twitter,或者Reddit。你門可以在像這樣的一些網(wǎng)站設(shè)置通知,這樣當(dāng)有人提及你們項目時可以收到提醒。

為你們的社區(qū)提供一個聚會的場所

有兩個理由可以解釋為什么要給社區(qū)提供一個聚會的場所。

第一個理由是為了他們。幫助人們相互認(rèn)識。有著共同興趣的人會想要一個可以聊天的地方。同時當(dāng)信息是公開的而且是適宜的時候,任何人可以閱讀過去的檔案以至于能夠快速的追趕以及參與。

第二個理由是為了你們。如果你們沒有提供一個公共的場所來談?wù)撃銈兊捻椖浚麄兛赡軙苯优c你們聯(lián)系。剛開始時,回復(fù)私有來信可能對你們來說很輕松。但是經(jīng)過一段時間后,尤其是如果你們的項目變得流行的時候,你們就會感到累了。不要私下和人們談?wù)撃銈兊捻椖浚侵苯又该魉麄內(nèi)ブ付ǖ墓睬馈?/p>

公共交流和指明人們開一條issue一樣簡單,而不是直接發(fā)給你們發(fā)郵件或者在你們的博客發(fā)表評論。你們也可以為了方便人們談?wù)撃銈兊捻椖吭O(shè)置一個郵件列表,或者創(chuàng)建一個Twitter賬號,Slack,護(hù)著IRC渠道。或者嘗試上述的所有方式。

Kubernetes kops sets aside office hours every other week to help community members:
Kubernetes kops 每隔一周抽出辦公時間幫助社區(qū)成員:

Kops每隔一周都會留出時間為社區(qū)提供幫助和指導(dǎo)。Kops維護(hù)者已經(jīng)同意留出時間專門與新手一起工作,幫助PRs,以及討論新特性。

公開交流需要特別注意的異常有:1)安全的issues和2)敏感的行為準(zhǔn)則。你們應(yīng)該為大家提供一個私下報告這些issue的方式。如果你們不想使用自己的個人郵箱,那么就創(chuàng)建一個準(zhǔn)用郵箱。

讓社區(qū)成才

社區(qū)非常有能量。這種能量可能是祝福也可能是詛咒,這取決于你們?nèi)绾螆?zhí)掌它。隨著你們項目社區(qū)的成長,有辦法幫助它成為一股有建設(shè)性的力量,而不是具有破壞性的。

不要容忍糟糕的角色

一些流行的項目將不可避免地回吸引來一些傷害它們的人。他們可能從一些沒必要的爭論開始,對一些細(xì)小的功能進(jìn)行謬論,或者傷害他人。

對于那種類型的人你們必須采取零容忍的政策。如果發(fā)現(xiàn)較晚,那些消極的人將會社區(qū)中的其他人不舒服。他們可能會離開。

Paste_Image.png

事實是,擁有一個支持性社區(qū)是關(guān)鍵。如果沒有來自我的同事,互聯(lián)網(wǎng)上一些友好的陌生人,以及聊天渠道IRC的幫助,我不可能做好這些工作。(。。。)不要太少。不要找麻煩。
— @karissa, "How to Run a FOSS Project"

定期對你們項目瑣碎方便的辯論,使他人,包括你們不能把注意力集中于重要的任務(wù)上。新人如果看見這樣的情景,他們是不會加入你們項目的。

當(dāng)你們發(fā)現(xiàn)社區(qū)中有消極行為時,需要公然指出來。特別說明的是,要用堅定的語氣解釋他們的行為為什么是不可接受的。如果這種問題繼續(xù)發(fā)生,你們有必要要求他們離開。你們的行為準(zhǔn)則是為這些情景準(zhǔn)備的建設(shè)性指南。

知道貢獻(xiàn)者在哪里

隨著你們項目的成長,好的文檔只會變得越加重要。臨時貢獻(xiàn)者不可能對項目非常熟悉,通過閱讀你們的文檔他們能很快找到他們需要的。

在你們的CONTRIBUTING文件里,需要明確告訴新來的貢獻(xiàn)者該如何開始。你們可能為了想要達(dá)到這個目的而準(zhǔn)備一個專門的部分。

Paste_Image.png

在你們的issue列表中,bugs標(biāo)簽需要適合不同類型的貢獻(xiàn)者:例如,"first timers only", "good first bug", 或者 "documentation". 這些標(biāo)簽能夠幫助新人快速瀏覽issues以及開始。

最后,使用你們的文檔讓人們在每一步都感到歡迎。

你們永遠(yuǎn)不會與登陸項目的大多數(shù)人互動。你們可能沒有收到一些貢獻(xiàn),因為有些人感到害怕或者不知從和開始。即使是幾個字也能阻止一些人沮喪地離開你們的項目。

例如,這里是Rubinius如何開始它的貢獻(xiàn)指南

我們想感謝你們使用Rubinius。這個項目是一個充滿愛的勞動,我們希望所有用戶查找bugs,取得性能上的提升,以及幫助完善文檔。每一個貢獻(xiàn)都是有意義的,所以感謝你們的參與。話雖如此,但我們還是要求你們遵守一些指南,這樣我們就能夠找到你們的issue。

分享你們項目的所有權(quán)

Paste_Image.png

你們的領(lǐng)導(dǎo)者們將有不同的觀點,因為這是所有健康社區(qū)都該做的!然而,你們會體會到粗暴魯莽的做法不能得到大家的認(rèn)同,反而謙虛低調(diào)的做法更容易讓大家接受。
— @sarahsharp, "What makes a good community?"

當(dāng)大家覺得擁有項目的所有權(quán)時,他們會樂意為項目做貢獻(xiàn)。這并不意味著你們需要轉(zhuǎn)變項目的愿景或接受你們不想要的貢獻(xiàn)。但是你們越信任他們,他們就會越忠誠。

看你們是否能盡快地找出向社區(qū)分享所有權(quán)的方法。下面有些建議:

  • 反對你們自己修復(fù)簡單(非關(guān)鍵)的bugs。 相反,使用它們作為招募新貢獻(xiàn)者的機(jī)會,或者指導(dǎo)想要參與貢獻(xiàn)的人。開始時可能效果不是很理想,但經(jīng)過一段時間你們會得到想要的結(jié)果。例如,@michaeljoseph要求一位貢獻(xiàn)者提交一個pull request在一個Cookiecutter issue的下面,而不是自己修復(fù)它。
Paste_Image.png
  • 在項目中添加一個貢獻(xiàn)者或者作者文件用于記錄每一個參與貢獻(xiàn)的人。

  • 如果你們的社區(qū)有了一定的規(guī)模,那么發(fā)送一封信或者發(fā)表一篇博客感謝貢獻(xiàn)者們。Rust的This Week in Rust和Hoodie的Shoutouts是兩個非常好的示例。

  • 給每個貢獻(xiàn)者commit的通道。@felixge發(fā)現(xiàn)這樣會使大家越發(fā)樂意斟酌他們的補(bǔ)丁,以及他甚至發(fā)現(xiàn)了他在一段時間沒有工作的項目的新維護(hù)者。

  • 如果你們的項目在GitHub上,那么將項目從你們的個人賬號轉(zhuǎn)移到一個組織,以及添加至少一個備份管理員。組織能讓與其他人一起工作于同一個項目變得更加容易。

事實上很多項目只有一個或者兩個做大量工作的維護(hù)者。隨著你們的項目以及社區(qū)越來越大會更加容易得到幫助。

當(dāng)你們不能總是發(fā)現(xiàn)一些人去回答問題時,你們可以釋放一個信號增加其他人能接觸到的機(jī)會。如果你們能盡早地開始,大家就能盡快地幫助。

Paste_Image.png

你們最大的興趣是招募喜歡你們項目以及能夠做你們不能做的事的貢獻(xiàn)者。你喜歡編碼,但不喜歡回答issues?那么讓社區(qū)中能做這件事的人去做。
— @gr2m, "Welcoming Communities"

解決沖突

在你們項目的早期,做主要的決定是件容易的事。你們想做什么就可以做什么。

隨著你們的項目越加流行,會有更多的人對你們的決定有興趣。即使你們的社區(qū)沒有大量的貢獻(xiàn)者,如果你們的項目有很多用戶,你們會發(fā)現(xiàn)大家的重點在決策上或者增加他們的issues。

在大多數(shù)情況下,如果你們培養(yǎng)了一個友好,尊重的社區(qū)并公開記錄你的過程,你們的社區(qū)應(yīng)該能夠找到解決方案。但有時候你們遇到一個issue,有點難以解決。

建立友好的氛圍

當(dāng)你們的社區(qū)正在討論一個很難的issue時,氣氛會很激烈。人們可能會變得憤怒或者沮喪,以及發(fā)泄在其他人或者你們身上。

作為一名維護(hù)者你們的工作是不要讓這種情況出現(xiàn)。即使你們對話題有很強(qiáng)烈的觀點,也要盡量站在一個主持者或者推動者的位置,而不是參與爭吵以及推動自己的觀點。如果有人不友好或者壟斷話題,那么立即采取行動以保持有禮貌以及豐富的討論。

Paste_Image.png

作為一名維護(hù)者,尊重你們的貢獻(xiàn)者非常重要。他們經(jīng)常處理一些你們描述親切的事情。
— @kennethreitz, "Be Cordial or Be on Your Way"

一些人希望你們指導(dǎo)他們。編寫一個好的示例。你們?nèi)匀豢梢员磉_(dá)失望,不高興或者憂慮,但得心平氣和。

保持你們的酷并不容易,但是展示領(lǐng)導(dǎo)能力能促進(jìn)健康的社區(qū)。互聯(lián)網(wǎng)感謝你們。

將你們的README視為憲法

你們的README不僅僅是一組指令。它也是一個談?wù)撃銈兡繕?biāo),產(chǎn)品愿景和路線的地方。
如果人們過分專注于辯論特定功能的優(yōu)點,它可能有助于重新審視您的README,并談?wù)撃銈兊捻椖康母叩脑妇啊jP(guān)注你們的README也會使對話變得個人化,所以你們可以進(jìn)行建設(shè)性的討論。

專注過程,而不是結(jié)果

一些項目用投票的方式做重要決定。雖然看上去是明智的,投票強(qiáng)調(diào)的是得到一個“答案”,而不是傾聽以及解決每個人的顧慮。

投票會變成政治,社區(qū)成員在做感興趣的事或者表決一個明確的方法時會感到壓力。不是每個人都參與了投票,可能在你們的社區(qū)中保持沉默的人占了多數(shù),或者用戶不知道投票這件事正在發(fā)生。

有時候,投票是必要的手段。盡你們所能強(qiáng)調(diào)"尋求共識"而不是共識。

在尋求共識的過程中,社區(qū)成員討論主要問題,直到他們感到他們已經(jīng)得到充分的意見。當(dāng)僅遺留下一些無關(guān)緊要的問題時,社區(qū)需要向前邁進(jìn)。“尋求共識”不能確保社區(qū)能得到一個完美的答案。而是側(cè)重聆聽和討論。

Paste_Image.png

Atom Issues不存在投票系統(tǒng)的部分原因是因為Atom團(tuán)隊在所有情況下都不會遵循投票系統(tǒng)。有時我們必須選擇我們認(rèn)為是對的事,即使它不流行。(。。。)我能通過社區(qū)的反饋知道我能夠提供什么以及做什么樣的工作。
— @lee-dohm on Atom's decisionmaking process

即使你們不確定是否采用尋求共識的方式,作為維護(hù)者,讓大家知道你們正在關(guān)注他們。讓其他人知道,以及承諾解決他們的問題,這在很大程度上減少了敏感情況的發(fā)送。然后,按你說的去做。

不要為了獲得決議而急于做出決定。在做一個決議之前請確保每個人已經(jīng)知道以及所有的信息以及公開。

將對話的重點聚焦于行動

討論很重要,但是富有成效和沒有效果的對話時有區(qū)別的。

鼓勵討論,只要它正積極地朝著解決問題的方向進(jìn)行著。如果對話已經(jīng)無法再進(jìn)行下去,只有很少的人在參與或者大家正在討論無關(guān)緊要的問題,這時候就該結(jié)束對話了。

允許這些對話進(jìn)行下去不僅對解決問題沒有幫助,而且不利于社區(qū)的健康發(fā)展。它釋放了這樣一個信號,表示允許或甚至鼓勵這種類型的對話,它可能阻止人們提高或者解決未來的問題。

當(dāng)你們或者其他人每提出一個觀點時,請自問:“這如何使我們更接近一個決議?”

如果對話開始有解散的征兆,問團(tuán)隊:“我們下一步該做什么?”才能重新對話。

如果一個對話沒有清晰的方向,沒有明確的措施可以采取,或者合適的措施已經(jīng)被使用,那么關(guān)掉issue并解釋為什么關(guān)掉它。

Paste_Image.png

指導(dǎo)一件事朝著正確的方向發(fā)展是一門藝術(shù)。它對阻止人們浪費時間或者要求他們發(fā)表有建設(shè)性的看法沒有作用。(。。。)反而,你們必須為接下來的進(jìn)展給出條件:給大家一個路線,跟隨一個可以得到你們想要的結(jié)果的途徑,這樣就不像是些無用的口頭行為。
— @kfogel, Producing OSS

挑戰(zhàn)你們的智慧

上下文很重要。考慮誰參與討論,以及他們?nèi)绾未砩鐓^(qū)的其他人。

社區(qū)中的每個人都為這個問題而煩惱,或者參與討論了嗎?或者只是一部分人感到困惑嗎?不要僅關(guān)心活躍的聲音,也請不要忘記考慮社區(qū)中保持沉默的人。

如果這個問題不代表社區(qū)的更廣泛的需求,你們可能要承認(rèn)只是少數(shù)人的擔(dān)心。如果這是一個反復(fù)出現(xiàn)的issue,沒有一個清晰的解決方案,那么指向他們以前討論的話題。

找出社區(qū)中的決策者

通過一個態(tài)度端正和目標(biāo)清晰的對話,很多困難都是可以解決的。即使在富有成效的對話中,對于如何進(jìn)行的意見也可能存在差異。在這些情況下,確定一個人或一組人,可以作為決策者。

決策者可以是項目的主要維護(hù)者,或者是大家投票選出的一個小團(tuán)體。理想情況下,在你們使用GOVERNANCE文件之前,你們已經(jīng)確定了決勝者和與之相關(guān)的事宜。

使用決策者應(yīng)該是你們最后才能采取的手段。分離issues是一個你們社區(qū)成長和學(xué)習(xí)的機(jī)會。利用這些機(jī)會以及協(xié)同合作,盡量找出解決方案。

社區(qū)是開源的??

健康,蓬勃的社區(qū)每周都會為開源付出大量辛勤的勞動。許多貢獻(xiàn)者指出其他人在開源工作或不在開源工作的原因。通過學(xué)習(xí)如何建設(shè)性地利用這個權(quán)力,你們會幫助他人有一個難忘的開源體驗。## 建立成功的項目

你們已經(jīng)啟動了你們的項目,你們正在傳播它,同時有人正在查看它。真棒!現(xiàn)在,你如何讓他們堅持下去。

一個受歡迎的社區(qū)是對你們項目的未來和聲譽(yù)的投資。如果你的項目才開始收到第一次貢獻(xiàn),那么你們需要盡早的給貢獻(xiàn)者們一次積極的經(jīng)歷,以至于能讓他們繼續(xù)參與貢獻(xiàn)。

讓大家感到受歡迎

可以通過被@MikeMcQuaid稱之為貢獻(xiàn)者漏斗的方法思考你們項目的社區(qū)。
[圖片上傳失敗...(image-677985-1510064984150)]

當(dāng)你們建立了自己的社區(qū),你需要考慮如何讓那些處在漏斗上方的人(潛在用戶)轉(zhuǎn)移到漏斗下方(活躍的維護(hù)者)。你們的目標(biāo)是減少貢獻(xiàn)者們在每個階段遇到的摩擦。當(dāng)人們能夠輕易的取得勝利時,他們會樂意去做更多事。

從你的文檔開始:

  • 讓大家很容易使地用你的項目。 一份友好的 README以及清晰的代碼示例將讓大家很簡單地開始你們的項目。
  • 清楚的解釋如何做貢獻(xiàn),使用你的CONTRIBUTING file以及持續(xù)更新issues。

好的文檔能夠邀請他人參與你們項目的互動。最終,一些人會開一個issue或者pull request。將這些互動視為機(jī)會,將他們轉(zhuǎn)移到漏斗的下方。

  • 當(dāng)一些人選擇了你們的項目,請對他們表示感謝!僅僅只是一次消極的經(jīng)歷就能讓一些人不想再回來。
  • 及時回應(yīng)。如果你們一個月都沒有回答他們的問題,他們可能早已忘記了你們的項目。
  • 對你以后接受的所有貢獻(xiàn)者持開放態(tài)度。 很多貢獻(xiàn)者是從一份bug報告或者小的修復(fù)開始的。這里有很多為項目做貢獻(xiàn)的方式。讓大家選擇他們喜歡的方式。
  • 如果你不贊成一個貢獻(xiàn), 首先你需要對他們的想法表示感謝,同時 解釋為什么它不適合項目,如果有必要的話你可以給出相關(guān)的文檔鏈接。
Paste_Image.png

為開源做貢獻(xiàn)對一些人來說很簡單,但對另外一些人可能就不是這樣了。有很多人因為沒有做正確的事而害怕叫喊,或者只是不適合。(。。。)通過允許貢獻(xiàn)者參與一些對技術(shù)要求比底的工作(文檔,web content markdown,etc),可以極大的減少你對這些情況的關(guān)注。
— @mikeal, "Growing a contributor base in modern open source"

多數(shù)開源貢獻(xiàn)者是“臨時貢獻(xiàn)者”,因為他們只是偶爾參與項目貢獻(xiàn)。一位臨時貢獻(xiàn)者可能沒有充足的時間全程跟蹤你的項目,所以你們的工作是能讓他們很容易地參與貢獻(xiàn)。

鼓勵其他的貢獻(xiàn)者也是對你們項目的一種投資。當(dāng)你們授權(quán)大量的粉絲做他們感興趣的工作時,你們的壓力就少了很多。

記錄一切

Paste_Image.png

你是否參加過一個(技術(shù))活動,你不認(rèn)識在場的人,但是似乎每個人站在一個小組里像老朋友一樣聊天?(。。。)現(xiàn)在想象下你想為一個開源項目做貢獻(xiàn),但是你不知道為什么或者這個是如何發(fā)生的。
— @janl, "Sustainable Open Source"

當(dāng)你開始一個新項目,你會覺得保持工作的私有性是正常的。但是開源項目發(fā)開始于你在公共平臺記錄自己的工作進(jìn)程。

當(dāng)你門把事情記錄下來,會有更多的人能夠按照你們的方式參與每一步。你可能會得到意想不到的幫助。

書寫東西不僅僅只是技術(shù)文檔。任何時刻,你們有寫一些東西或者私自討論項目的沖動,請詢問自己是否能將之公開。

保持項目透明的項目路線:你們期待什么類型的貢獻(xiàn)者,如何審查貢獻(xiàn),或者你們?yōu)槭裁醋瞿承Q定。

如果你們注意到有多個用戶遇到過同樣的問題,那么你們應(yīng)該將答案記錄在README中。

對于經(jīng)常遇到的問題,你們可以考慮發(fā)布你們的筆記或者相關(guān)的issue。在這種情況下得到的反饋將會令你們驚訝。

記錄一切也適用于你們的工作。如果你正在進(jìn)行大量的更新工作,請將其放入pull request并標(biāo)記為正在進(jìn)行(WIP)。這樣,可以讓其他人感覺參與過早期工作。

積極回應(yīng)

一旦你推廣項目,人們將會給你們反饋。他們可能會問項目是如何工作的,或者需要你們幫助開始項目。

當(dāng)有人列出一條issue,提交一個pull request,或者詢問項目的有關(guān)問題時,你們應(yīng)該盡量回答他們。當(dāng)你們快速地做出回應(yīng)時,人們將感覺到他們參與了對話,以及他們將會更熱情地參與。

如果你無法及時審查請求,請盡早確認(rèn),這樣會有助于提高參與度。這里是@tdreyno在Middleman上如何回應(yīng)一個pull request:

Paste_Image.png

一份Mozilla研究發(fā)現(xiàn) 如果貢獻(xiàn)者在48小時內(nèi)收到代碼審查,他們會有很大的可能返回以及重復(fù)貢獻(xiàn)。

與你們項目有關(guān)的話題也可能發(fā)生在互聯(lián)網(wǎng)的其它地方,例如Stack Overflow,Twitter,或者Reddit。你門可以在像這樣的一些網(wǎng)站設(shè)置通知,這樣當(dāng)有人提及你們項目時可以收到提醒。

為你們的社區(qū)提供一個聚會的場所

有兩個理由可以解釋為什么要給社區(qū)提供一個聚會的場所。

第一個理由是為了他們。幫助人們相互認(rèn)識。有著共同興趣的人會想要一個可以聊天的地方。同時當(dāng)信息是公開的而且是適宜的時候,任何人可以閱讀過去的檔案以至于能夠快速的追趕以及參與。

第二個理由是為了你們。如果你們沒有提供一個公共的場所來談?wù)撃銈兊捻椖浚麄兛赡軙苯优c你們聯(lián)系。剛開始時,回復(fù)私有來信可能對你們來說很輕松。但是經(jīng)過一段時間后,尤其是如果你們的項目變得流行的時候,你們就會感到累了。不要私下和人們談?wù)撃銈兊捻椖浚侵苯又该魉麄內(nèi)ブ付ǖ墓睬馈?/p>

公共交流和指明人們開一條issue一樣簡單,而不是直接發(fā)給你們發(fā)郵件或者在你們的博客發(fā)表評論。你們也可以為了方便人們談?wù)撃銈兊捻椖吭O(shè)置一個郵件列表,或者創(chuàng)建一個Twitter賬號,Slack,護(hù)著IRC渠道。或者嘗試上述的所有方式。

Kubernetes kops sets aside office hours every other week to help community members:
Kubernetes kops 每隔一周抽出辦公時間幫助社區(qū)成員:

Kops每隔一周都會留出時間為社區(qū)提供幫助和指導(dǎo)。Kops維護(hù)者已經(jīng)同意留出時間專門與新手一起工作,幫助PRs,以及討論新特性。

公開交流需要特別注意的異常有:1)安全的issues和2)敏感的行為準(zhǔn)則。你們應(yīng)該為大家提供一個私下報告這些issue的方式。如果你們不想使用自己的個人郵箱,那么就創(chuàng)建一個準(zhǔn)用郵箱。

讓社區(qū)成才

社區(qū)非常有能量。這種能量可能是祝福也可能是詛咒,這取決于你們?nèi)绾螆?zhí)掌它。隨著你們項目社區(qū)的成長,有辦法幫助它成為一股有建設(shè)性的力量,而不是具有破壞性的。

不要容忍糟糕的角色

一些流行的項目將不可避免地回吸引來一些傷害它們的人。他們可能從一些沒必要的爭論開始,對一些細(xì)小的功能進(jìn)行謬論,或者傷害他人。

對于那種類型的人你們必須采取零容忍的政策。如果發(fā)現(xiàn)較晚,那些消極的人將會社區(qū)中的其他人不舒服。他們可能會離開。

Paste_Image.png

事實是,擁有一個支持性社區(qū)是關(guān)鍵。如果沒有來自我的同事,互聯(lián)網(wǎng)上一些友好的陌生人,以及聊天渠道IRC的幫助,我不可能做好這些工作。(。。。)不要太少。不要找麻煩。
— @karissa, "How to Run a FOSS Project"

定期對你們項目瑣碎方便的辯論,使他人,包括你們不能把注意力集中于重要的任務(wù)上。新人如果看見這樣的情景,他們是不會加入你們項目的。

當(dāng)你們發(fā)現(xiàn)社區(qū)中有消極行為時,需要公然指出來。特別說明的是,要用堅定的語氣解釋他們的行為為什么是不可接受的。如果這種問題繼續(xù)發(fā)生,你們有必要要求他們離開。你們的行為準(zhǔn)則是為這些情景準(zhǔn)備的建設(shè)性指南。

知道貢獻(xiàn)者在哪里

隨著你們項目的成長,好的文檔只會變得越加重要。臨時貢獻(xiàn)者不可能對項目非常熟悉,通過閱讀你們的文檔他們能很快找到他們需要的。

在你們的CONTRIBUTING文件里,需要明確告訴新來的貢獻(xiàn)者該如何開始。你們可能為了想要達(dá)到這個目的而準(zhǔn)備一個專門的部分。

Paste_Image.png

在你們的issue列表中,bugs標(biāo)簽需要適合不同類型的貢獻(xiàn)者:例如,"first timers only", "good first bug", 或者 "documentation". 這些標(biāo)簽能夠幫助新人快速瀏覽issues以及開始。

最后,使用你們的文檔讓人們在每一步都感到歡迎。

你們永遠(yuǎn)不會與登陸項目的大多數(shù)人互動。你們可能沒有收到一些貢獻(xiàn),因為有些人感到害怕或者不知從和開始。即使是幾個字也能阻止一些人沮喪地離開你們的項目。

例如,這里是Rubinius如何開始它的貢獻(xiàn)指南

我們想感謝你們使用Rubinius。這個項目是一個充滿愛的勞動,我們希望所有用戶查找bugs,取得性能上的提升,以及幫助完善文檔。每一個貢獻(xiàn)都是有意義的,所以感謝你們的參與。話雖如此,但我們還是要求你們遵守一些指南,這樣我們就能夠找到你們的issue。

分享你們項目的所有權(quán)

Paste_Image.png

你們的領(lǐng)導(dǎo)者們將有不同的觀點,因為這是所有健康社區(qū)都該做的!然而,你們會體會到粗暴魯莽的做法不能得到大家的認(rèn)同,反而謙虛低調(diào)的做法更容易讓大家接受。
— @sarahsharp, "What makes a good community?"

當(dāng)大家覺得擁有項目的所有權(quán)時,他們會樂意為項目做貢獻(xiàn)。這并不意味著你們需要轉(zhuǎn)變項目的愿景或接受你們不想要的貢獻(xiàn)。但是你們越信任他們,他們就會越忠誠。

看你們是否能盡快地找出向社區(qū)分享所有權(quán)的方法。下面有些建議:

  • 反對你們自己修復(fù)簡單(非關(guān)鍵)的bugs。 相反,使用它們作為招募新貢獻(xiàn)者的機(jī)會,或者指導(dǎo)想要參與貢獻(xiàn)的人。開始時可能效果不是很理想,但經(jīng)過一段時間你們會得到想要的結(jié)果。例如,@michaeljoseph要求一位貢獻(xiàn)者提交一個pull request在一個Cookiecutter issue的下面,而不是自己修復(fù)它。
Paste_Image.png
  • 在項目中添加一個貢獻(xiàn)者或者作者文件用于記錄每一個參與貢獻(xiàn)的人。

  • 如果你們的社區(qū)有了一定的規(guī)模,那么發(fā)送一封信或者發(fā)表一篇博客感謝貢獻(xiàn)者們。Rust的This Week in Rust和Hoodie的Shoutouts是兩個非常好的示例。

  • 給每個貢獻(xiàn)者commit的通道。@felixge發(fā)現(xiàn)這樣會使大家越發(fā)樂意斟酌他們的補(bǔ)丁,以及他甚至發(fā)現(xiàn)了他在一段時間沒有工作的項目的新維護(hù)者。

  • 如果你們的項目在GitHub上,那么將項目從你們的個人賬號轉(zhuǎn)移到一個組織,以及添加至少一個備份管理員。組織能讓與其他人一起工作于同一個項目變得更加容易。

事實上很多項目只有一個或者兩個做大量工作的維護(hù)者。隨著你們的項目以及社區(qū)越來越大會更加容易得到幫助。

當(dāng)你們不能總是發(fā)現(xiàn)一些人去回答問題時,你們可以釋放一個信號增加其他人能接觸到的機(jī)會。如果你們能盡早地開始,大家就能盡快地幫助。

Paste_Image.png

你們最大的興趣是招募喜歡你們項目以及能夠做你們不能做的事的貢獻(xiàn)者。你喜歡編碼,但不喜歡回答issues?那么讓社區(qū)中能做這件事的人去做。
— @gr2m, "Welcoming Communities"

解決沖突

在你們項目的早期,做主要的決定是件容易的事。你們想做什么就可以做什么。

隨著你們的項目越加流行,會有更多的人對你們的決定有興趣。即使你們的社區(qū)沒有大量的貢獻(xiàn)者,如果你們的項目有很多用戶,你們會發(fā)現(xiàn)大家的重點在決策上或者增加他們的issues。

在大多數(shù)情況下,如果你們培養(yǎng)了一個友好,尊重的社區(qū)并公開記錄你的過程,你們的社區(qū)應(yīng)該能夠找到解決方案。但有時候你們遇到一個issue,有點難以解決。

建立友好的氛圍

當(dāng)你們的社區(qū)正在討論一個很難的issue時,氣氛會很激烈。人們可能會變得憤怒或者沮喪,以及發(fā)泄在其他人或者你們身上。

作為一名維護(hù)者你們的工作是不要讓這種情況出現(xiàn)。即使你們對話題有很強(qiáng)烈的觀點,也要盡量站在一個主持者或者推動者的位置,而不是參與爭吵以及推動自己的觀點。如果有人不友好或者壟斷話題,那么立即采取行動以保持有禮貌以及豐富的討論。

Paste_Image.png

作為一名維護(hù)者,尊重你們的貢獻(xiàn)者非常重要。他們經(jīng)常處理一些你們描述親切的事情。
— @kennethreitz, "Be Cordial or Be on Your Way"

一些人希望你們指導(dǎo)他們。編寫一個好的示例。你們?nèi)匀豢梢员磉_(dá)失望,不高興或者憂慮,但得心平氣和。

保持你們的酷并不容易,但是展示領(lǐng)導(dǎo)能力能促進(jìn)健康的社區(qū)。互聯(lián)網(wǎng)感謝你們。

將你們的README視為憲法

你們的README不僅僅是一組指令。它也是一個談?wù)撃銈兡繕?biāo),產(chǎn)品愿景和路線的地方。
如果人們過分專注于辯論特定功能的優(yōu)點,它可能有助于重新審視您的README,并談?wù)撃銈兊捻椖康母叩脑妇啊jP(guān)注你們的README也會使對話變得個人化,所以你們可以進(jìn)行建設(shè)性的討論。

專注過程,而不是結(jié)果

一些項目用投票的方式做重要決定。雖然看上去是明智的,投票強(qiáng)調(diào)的是得到一個“答案”,而不是傾聽以及解決每個人的顧慮。

投票會變成政治,社區(qū)成員在做感興趣的事或者表決一個明確的方法時會感到壓力。不是每個人都參與了投票,可能在你們的社區(qū)中保持沉默的人占了多數(shù),或者用戶不知道投票這件事正在發(fā)生。

有時候,投票是必要的手段。盡你們所能強(qiáng)調(diào)"尋求共識"而不是共識。

在尋求共識的過程中,社區(qū)成員討論主要問題,直到他們感到他們已經(jīng)得到充分的意見。當(dāng)僅遺留下一些無關(guān)緊要的問題時,社區(qū)需要向前邁進(jìn)。“尋求共識”不能確保社區(qū)能得到一個完美的答案。而是側(cè)重聆聽和討論。

Paste_Image.png

Atom Issues不存在投票系統(tǒng)的部分原因是因為Atom團(tuán)隊在所有情況下都不會遵循投票系統(tǒng)。有時我們必須選擇我們認(rèn)為是對的事,即使它不流行。(。。。)我能通過社區(qū)的反饋知道我能夠提供什么以及做什么樣的工作。
— @lee-dohm on Atom's decisionmaking process

即使你們不確定是否采用尋求共識的方式,作為維護(hù)者,讓大家知道你們正在關(guān)注他們。讓其他人知道,以及承諾解決他們的問題,這在很大程度上減少了敏感情況的發(fā)送。然后,按你說的去做。

不要為了獲得決議而急于做出決定。在做一個決議之前請確保每個人已經(jīng)知道以及所有的信息以及公開。

將對話的重點聚焦于行動

討論很重要,但是富有成效和沒有效果的對話時有區(qū)別的。

鼓勵討論,只要它正積極地朝著解決問題的方向進(jìn)行著。如果對話已經(jīng)無法再進(jìn)行下去,只有很少的人在參與或者大家正在討論無關(guān)緊要的問題,這時候就該結(jié)束對話了。

允許這些對話進(jìn)行下去不僅對解決問題沒有幫助,而且不利于社區(qū)的健康發(fā)展。它釋放了這樣一個信號,表示允許或甚至鼓勵這種類型的對話,它可能阻止人們提高或者解決未來的問題。

當(dāng)你們或者其他人每提出一個觀點時,請自問:“這如何使我們更接近一個決議?”

如果對話開始有解散的征兆,問團(tuán)隊:“我們下一步該做什么?”才能重新對話。

如果一個對話沒有清晰的方向,沒有明確的措施可以采取,或者合適的措施已經(jīng)被使用,那么關(guān)掉issue并解釋為什么關(guān)掉它。

Paste_Image.png

指導(dǎo)一件事朝著正確的方向發(fā)展是一門藝術(shù)。它對阻止人們浪費時間或者要求他們發(fā)表有建設(shè)性的看法沒有作用。(。。。)反而,你們必須為接下來的進(jìn)展給出條件:給大家一個路線,跟隨一個可以得到你們想要的結(jié)果的途徑,這樣就不像是些無用的口頭行為。
— @kfogel, Producing OSS

挑戰(zhàn)你們的智慧

上下文很重要。考慮誰參與討論,以及他們?nèi)绾未砩鐓^(qū)的其他人。

社區(qū)中的每個人都為這個問題而煩惱,或者參與討論了嗎?或者只是一部分人感到困惑嗎?不要僅關(guān)心活躍的聲音,也請不要忘記考慮社區(qū)中保持沉默的人。

如果這個問題不代表社區(qū)的更廣泛的需求,你們可能要承認(rèn)只是少數(shù)人的擔(dān)心。如果這是一個反復(fù)出現(xiàn)的issue,沒有一個清晰的解決方案,那么指向他們以前討論的話題。

找出社區(qū)中的決策者

通過一個態(tài)度端正和目標(biāo)清晰的對話,很多困難都是可以解決的。即使在富有成效的對話中,對于如何進(jìn)行的意見也可能存在差異。在這些情況下,確定一個人或一組人,可以作為決策者。

決策者可以是項目的主要維護(hù)者,或者是大家投票選出的一個小團(tuán)體。理想情況下,在你們使用GOVERNANCE文件之前,你們已經(jīng)確定了決勝者和與之相關(guān)的事宜。

使用決策者應(yīng)該是你們最后才能采取的手段。分離issues是一個你們社區(qū)成長和學(xué)習(xí)的機(jī)會。利用這些機(jī)會以及協(xié)同合作,盡量找出解決方案。

社區(qū)是開源的??

健康,蓬勃的社區(qū)每周都會為開源付出大量辛勤的勞動。許多貢獻(xiàn)者指出其他人在開源工作或不在開源工作的原因。通過學(xué)習(xí)如何建設(shè)性地利用這個權(quán)力,你們會幫助他人有一個難忘的開源體驗。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容