管理對(duì)新手友好的開源社區(qū)的三個(gè)步驟

當(dāng)有人剛開始為開源做貢獻(xiàn)時(shí),最好從對(duì)新手友好的故障和議題開始。但在他們修復(fù)故障之前,他們必須要能夠找到這類問題。作為一個(gè)開源項(xiàng)目的成員,你可以做很多事情來幫助新手找到為項(xiàng)目貢獻(xiàn)的方式。
鑒于此,??AnitaB.org 開源社區(qū)?? 優(yōu)先考慮讓我們的社區(qū)做到對(duì)新手友好。我們提倡包容性,確保不同經(jīng)驗(yàn)和水平的貢獻(xiàn)者都可以參與進(jìn)來,并且他們的貢獻(xiàn)不止限于跟編程有關(guān)。
我最近在 ??Upstream 2021??,即 Tidelift 活動(dòng)中介紹了我們?cè)?nbsp;??AnitaB.org?? 上所做的一些社區(qū)工作,該活動(dòng)啟動(dòng)了“維護(hù)者周”,這是一個(gè)為期一周的開源維護(hù)者慶祝活動(dòng)。在活動(dòng)中我討論了我們策略的三個(gè)主要部分:
- 我們?nèi)绾螠贤?/li>
- 項(xiàng)目和議題
- 開源項(xiàng)目
我們?nèi)绾螠贤?/h3>
透明度是開源的重要組成部分,我們將透明度原則應(yīng)用于我們的溝通方式。實(shí)際上,這意味著我們所有的社區(qū)會(huì)議都是公開進(jìn)行的,并且影響我們?cè)O(shè)置 Zulip 聊天的方式以及我們提供文檔的方式。
開放會(huì)議
任何人都可以加入我們的會(huì)議,并討論與我們社區(qū)相關(guān)的話題。他們可以參與討論或者旁聽。會(huì)議相關(guān)信息在我們的社區(qū)日歷中都可以找到。在這些通話中我們通常只使用語音聊天,我們發(fā)現(xiàn)這可以讓人們?cè)趨⑴c時(shí)感覺更自在。
我們舉辦以項(xiàng)目為中心的會(huì)議和一些分類的會(huì)議。會(huì)議上,來自不同領(lǐng)域的人們可以討論同一個(gè)項(xiàng)目并幫助改進(jìn)我們的流程。偶爾,我們會(huì)有“自由提問Ask Me Anything(AMA)”會(huì)議,任何人都可以來問任何與開源相關(guān)的問題。
所有會(huì)議我們都會(huì)在共享文檔中進(jìn)行記錄,并在 ??我們的 Zulip?? 中共享摘要和文檔鏈接。
我們的 Zulip 聊天
開源 Zulip 聊天平臺(tái)是我們的主要社區(qū)交流渠道,雖然我們也在 Github 的評(píng)論區(qū)討論議題和拉取請(qǐng)求Pull Request(PR)。一般來說,我們禁用了私人消息以確保我們盡可能透明。對(duì)于這條規(guī)則,我們只有少數(shù)例外,那些私人聊天是管理員在處理我們運(yùn)行程序的后勤工作所用的。我們發(fā)現(xiàn)這種方法更受歡迎,它還使我們能夠更清楚公共聊天中的違規(guī)行為。
我們?cè)?Zulip 聊天室分享所有會(huì)議摘要,包括討論的要點(diǎn)、行動(dòng)項(xiàng)目和文檔。這些聽起來好像是些顯而易見的要求,但我一直驚訝于很多開源項(xiàng)目并不提供會(huì)議筆記,所以 Zulip 可以讓那些沒有參加會(huì)議的人也隨時(shí)了解情況。
在 Zulip上,我們討論項(xiàng)目路線圖,回答社區(qū)的問題和疑問,并積極促進(jìn)人們通過不同的方式方法和在不同的場(chǎng)景下做出自己的貢獻(xiàn)。有時(shí)我們?yōu)樨暙I(xiàn)者的成就而慶祝 —— 無論是為了突出他們測(cè)試或者審查的第一個(gè)拉取請(qǐng)求,還是強(qiáng)調(diào)我們志愿者所做的出色工作。
文檔
我們盡量保持關(guān)于我們流程的開放文檔,例如常見問題解答,以便這些社區(qū)成員可以按照自己的節(jié)奏和時(shí)間了解社區(qū)。這是為了讓他們?cè)诼?lián)系我們之前了解我們的工作方式以及我們從事的工作類型。
項(xiàng)目和議題
關(guān)于我們的項(xiàng)目和議題管理,我們鼓勵(lì)通過多種方式做出貢獻(xiàn),我們?yōu)樾率謱iT創(chuàng)建特定的議題,并嘗試讓項(xiàng)目的設(shè)置變得簡(jiǎn)單。
多種貢獻(xiàn)的方式
我們努力創(chuàng)建需要不同貢獻(xiàn)的問題,例如文檔、測(cè)試、設(shè)計(jì)和外展。這是為了讓任何人 —— 無關(guān)他們的經(jīng)驗(yàn)水平和興趣領(lǐng)域 —— 都能做出貢獻(xiàn)。這樣能夠幫助社區(qū)參與進(jìn)來,而且我們發(fā)現(xiàn)它使成員能夠從一些省力但有價(jià)值的任務(wù)開始一步步做出貢獻(xiàn)。
我們提倡的貢獻(xiàn)類型有:
- 不同復(fù)雜性的編程任務(wù)。
- 質(zhì)量保證任務(wù) —— 貢獻(xiàn)者可以測(cè)試我們的應(yīng)用程序或拉取請(qǐng)求并報(bào)告錯(cuò)誤。
- 社區(qū)成員可以參與討論的設(shè)計(jì)會(huì)議。此外,創(chuàng)建模型和重新設(shè)計(jì)我們應(yīng)用程序某些部分的機(jī)會(huì),并探索改進(jìn)用戶體驗(yàn)。
- 外展任務(wù),我們主要在 Zulip 上推廣,我們建議在我們的 Medium 出版物上發(fā)表博客,介紹他們的開源經(jīng)驗(yàn)和他們的貢獻(xiàn)。
- 文檔任務(wù),可以包括一般社區(qū)文檔或我們?cè)?Docusaurus 上的項(xiàng)目文檔。
僅限新手的問題
我們將一些議題標(biāo)記為“僅限新手”。這些問題適用于尚未為議題存儲(chǔ)庫(kù)做出貢獻(xiàn)的人。為議題做標(biāo)簽還使我們能夠讓人們?cè)谪暙I(xiàn)者大量涌入時(shí)開始他們的開源之旅,例如,在 ??谷歌編程之夏(GSoC)?? 申請(qǐng)期間。
有時(shí),這些可能是“唾手可得的果實(shí)”,可以讓他們熟悉作出貢獻(xiàn)和提交拉取請(qǐng)求的過程。
簡(jiǎn)單的項(xiàng)目設(shè)置
我們也很在意為我們的項(xiàng)目提供新手友好的安裝設(shè)置。我們注意到最活躍的項(xiàng)目通常是最容易設(shè)置的。我們知道,為你不熟悉的項(xiàng)目做出貢獻(xiàn)可能需要付出很多努力并且關(guān)乎貢獻(xiàn)體驗(yàn)的成敗。
我們嘗試提供有關(guān)如何在多個(gè)操作系統(tǒng)上運(yùn)行我們項(xiàng)目的說明。在過去,我們有一些項(xiàng)目有單獨(dú)的說明,可以在 Unix 環(huán)境下運(yùn)行,我們注意到貢獻(xiàn)者在 Windows 上運(yùn)行這些項(xiàng)目有些困難。自那以后我們不斷進(jìn)行改進(jìn),以避免貢獻(xiàn)者在 Zulip 上尋求幫助時(shí)出現(xiàn)混亂。
我們根據(jù)貢獻(xiàn)者的經(jīng)驗(yàn),一直在改進(jìn)我們最活躍的項(xiàng)目之一 ??mentorship-backend?? 的自述文件。新手在這個(gè)項(xiàng)目中遇到的困難之一是設(shè)置與配置電子郵件帳戶相關(guān)的部分環(huán)境變量,以使后臺(tái)功能能夠發(fā)送電子郵件。但是,由于此功能對(duì)于本地開發(fā)并不重要,因此默認(rèn)情況下,我們將電子郵件設(shè)置設(shè)為可選,以便將電子郵件打印到終端,而不是發(fā)送給用戶。這種方法仍然使貢獻(xiàn)者可以看到這些電子郵件。與此更改類似,我們將 ??SQLite 數(shù)據(jù)庫(kù)?? 作為本地開發(fā)的默認(rèn)設(shè)置,以避免對(duì) Postgres 數(shù)據(jù)庫(kù)進(jìn)行額外設(shè)置,雖然我們?cè)诓渴鸢姹局袝?huì)使用到 Postgres。
我們注意到,一些貢獻(xiàn)者在為我們的 ??bridge-in-tech-backend?? 項(xiàng)目做出貢獻(xiàn)時(shí)覺得很困難,該項(xiàng)目的設(shè)置很復(fù)雜,并且包含的步驟比 ??mentorship-backend?? 多得多。自從我們?cè)谝粋€(gè)開源項(xiàng)目中注意到這一點(diǎn)以來,我們一直在探索如何改進(jìn)其結(jié)構(gòu)。
對(duì)于我們的大多數(shù)項(xiàng)目,我們還提供應(yīng)用程序的實(shí)時(shí)體驗(yàn)版本或打包版本,以便貢獻(xiàn)者無需設(shè)置即可測(cè)試項(xiàng)目。這有助于我們?yōu)槟切?duì)開發(fā)設(shè)置不感興趣或不熟悉的貢獻(xiàn)者提供一種方式,來嘗試我們應(yīng)用程序的最新版本,并通過報(bào)告發(fā)現(xiàn)的任何錯(cuò)誤來做出貢獻(xiàn)。我們?cè)?nbsp;??質(zhì)量保證指南?? 中放了這些應(yīng)用程序的鏈接。
開源計(jì)劃
我們?cè)谏鐓^(qū)中組織了兩個(gè)主要計(jì)劃:開源黑客(OSH)(一個(gè)為期一個(gè)月的項(xiàng)目)和 Open Source Ambassadors(一個(gè)為期六個(gè)月的項(xiàng)目)。
開源黑客(OSH)
在此計(jì)劃中,我們?cè)诙鄠€(gè)類別的貢獻(xiàn)中創(chuàng)建議題 —— 文檔、編碼、外展、測(cè)試和設(shè)計(jì)(類似于 ??谷歌的 Code-in?? 競(jìng)賽)。 參與者可以為每個(gè)類別至少貢獻(xiàn)一次并獲得電子證書。一個(gè)議題可能包含多個(gè)類別,并且無需合并拉取請(qǐng)求也能使貢獻(xiàn)有效。
我們?yōu)檫@個(gè)計(jì)劃選取幾個(gè)項(xiàng)目,請(qǐng)導(dǎo)師們集思廣益為參與者創(chuàng)造議題。項(xiàng)目開始后參與者可以認(rèn)領(lǐng)議題并開始作出貢獻(xiàn)。導(dǎo)師們會(huì)支持幫助并審查他們的貢獻(xiàn)。
這種方法鼓勵(lì)貢獻(xiàn)的多樣性,并歡迎任何人,無論他們的編碼能力如何,都可以在友好和不怕出錯(cuò)的環(huán)境中做出貢獻(xiàn)。
開源大使
在此計(jì)劃中,我們從社區(qū)中選擇大使,理想情況下他們將涵蓋我們旨在促進(jìn)的每一類貢獻(xiàn)。至今該計(jì)劃已啟動(dòng)了兩次。
該計(jì)劃旨在讓成員通過回答社區(qū)的議題、協(xié)助貢獻(xiàn)者參與并為他們指定的類別宣傳來幫助管理項(xiàng)目和計(jì)劃。
第一個(gè)計(jì)劃舉行時(shí)我們接受了所有的申請(qǐng)者。我們?cè)u(píng)估了社區(qū)成員的興趣所在,并為那些想要做出貢獻(xiàn)但最初不敢踏出第一步的人提供了一個(gè)體系。
第一個(gè)計(jì)劃的舉辦給了我們很多啟發(fā)。因?yàn)槲覀兊幕顒?dòng)中既有經(jīng)驗(yàn)豐富的開源貢獻(xiàn)者和社區(qū)成員,也有初來乍到缺乏經(jīng)驗(yàn)的新手,因此項(xiàng)目的執(zhí)行要求管理員進(jìn)行大量的管理工作。一些社區(qū)大使信心十足準(zhǔn)備好進(jìn)一步采取新措施,而其他大使則需要更多支持。到了第二個(gè),我們決定縮減該計(jì)劃,只接受那些已經(jīng)熟悉社區(qū)、可以領(lǐng)導(dǎo)倡議和項(xiàng)目并幫助我們培訓(xùn)新人的貢獻(xiàn)者。
第二個(gè)計(jì)劃中形成了正反饋循環(huán)。那些在第一個(gè)計(jì)劃中還是新手的大使們,通過為上一個(gè)項(xiàng)目做出貢獻(xiàn)并且從項(xiàng)目經(jīng)驗(yàn)中學(xué)習(xí)之后能夠做到輕松帶領(lǐng)項(xiàng)目。
這種方法的改變使管理員能夠更加專注于支持大使團(tuán)隊(duì),幫助他們傳播我們的使命,并繼續(xù)讓我們的社區(qū)對(duì)新手友好,并指導(dǎo)更多人做出貢獻(xiàn)。
總結(jié)
這些計(jì)劃幫助我們提高了對(duì)開源貢獻(xiàn)和回饋的不同方式的認(rèn)識(shí)。通過它們,我們發(fā)現(xiàn)志愿者通過管理項(xiàng)目和舉辦公開會(huì)議來提供幫助,這有助于管理社區(qū)并為我們的貢獻(xiàn)者提供指導(dǎo)。
盡管我們得到了貢獻(xiàn)者的良好反響,并幫助人們做出了他們的第一個(gè)貢獻(xiàn),但我們?nèi)杂泻艽蟮母倪M(jìn)空間。我們將繼續(xù)改進(jìn)我們項(xiàng)目的設(shè)置和貢獻(xiàn)指南,以改善貢獻(xiàn)者的體驗(yàn)。我們還將繼續(xù)專注于確保我們的組織始終擁有并推動(dòng)不同類別的問題,促進(jìn)包容性,以便任何有意愿做出貢獻(xiàn)的人都能出自己的一份力。






















