
在 2019 年 2 月,我們宣布啟動 ESLint Collective,以為 ESLint 的持續開發提供資金。尋求資金的主要原因之一是,維護一個專案所需的時間越來越多,截至今日,該專案每週的下載次數超過 1300 萬次。我們等到 2019 年最後一季才開始向貢獻者支付費用,因為我們想看看每月的贊助金額會穩定在什麼水平,這樣我們就能存一些錢,以保證有一定金額可用於支付貢獻者。從那時起,我們嘗試了一些不同的方法,結果有好有壞,我們想分享這些經驗。
技術指導委員會
技術指導委員會 (TSC) 是由五人組成的小組,負責管理 ESLint 專案的整體方向。每個 ESLint 版本的大部分工作都由 TSC 成員完成,包括實際的發布流程本身。此外,TSC 成員還會審查 issue 和 pull request,並在外部活動中代表 ESLint。這就是為什麼我們首先想辦法支付 TSC 成員的費用,他們中的許多人在 ESLint 獲得資金之前就已經參與該專案多年了。
以下是我們的想法
- 每位 TSC 成員對 ESLint 的任何貢獻,每小時將獲得 50 美元的報酬。貢獻可以包括在 GitHub 上工作的實際時間、編寫程式碼或文件、參加會議(包括 ESLint 會議和代表 ESLint 參加的外部會議),以及向社群提供支援(透過電子郵件、聊天等)。
- 每位成員的付款上限為每月 1,000 美元。設定此上限主要是為了確保我們能儲蓄每月捐款的一部分,其次是為了勸阻 TSC 成員除了全職工作之外,不要在專案上花費太多時間。我們不希望資助倦怠。
- 後來,我們增加了 Tidelift 資金在 TSC 成員之間的分配。我們稱之為「TSC 津貼」,每月支付給每位 TSC 成員,無論其每小時的貢獻如何。TSC 津貼計入每位成員每月 1,000 美元的上限,成員可以就其貢獻時數與 Tidelift 金額之間的差額向專案開立發票。
到目前為止,這種安排運作得非常好。自開始支付 TSC 費用以來,我們看到 TSC 成員的參與度緩慢增加。為有價值的工作付費是有意義的:當工作被明確重視時,人們更願意去做。總體而言,我們認為我們計畫的這一部分是成功的。
專職維護者
早在 2019 年 11 月,我們就 宣布 聘請長期維護者 Kai Cataldo 擔任專職維護者。Kai 最近離職,希望花更多時間在 ESLint 上工作。我們沒有足夠的預算為他的工作支付全職薪資,因此我們同意每週 20 小時,每月 5,000 美元,Kai 將每週剩餘的 20 小時用於其他專案或自由接案。
我們嘗試了幾個月,後來發現這種安排對 Kai 來說是不可持續的。雖然 ESLint 的付款很穩定,但他每週必須花費大量剩餘的 20 小時來尋找賺取足夠收入的方法。因此,我們將安排更新為每週 10 小時,2,500 美元,以便讓 Kai 有更多時間尋找其他工作,同時仍然提供基本量的 ESLint 專用時間。
不幸的是,這種安排也行不通。再一次,在 ESLint 職責和嘗試尋找其他兼職工作之間分配時間,被證明比我們任何人意識到的都更加困難,而且這個月,Kai 決定辭去專職維護者的職務。他將繼續留在 TSC,並且仍然有資格獲得 TSC 成員的付款。
這對團隊來說是一件難以處理的事情,我們認為其中有一個關於開源永續性的重要教訓:即使我們收到捐款,ESLint 的收入也不足以支付維護者的全職薪資。當這種情況發生時,維護者面臨一個艱難的決定:我們可以嘗試讓兼職開發工作可行,但很難找到其他兼職工作來彌補我們每月所需的收入,以使其值得。在某些情況下,做兼職工作會使尋找其他工作變得更加困難,因為你的時間受到限制,而其他自由工作者則不然。
鑑於 Kai 的經驗,我們目前正在重新思考未來是否以及如何繼續聘請專職維護者。
其他實驗
除了 TSC 付款和聘請專職維護者之外,我們還嘗試了其他幾種方法,將付款分配給更多貢獻者。我們的最終目標是能夠向 ESLint 的大多數(如果不是全部)貢獻者支付費用,因為所有貢獻都有幫助。我們尚未深入思考這將如何運作的細節,但我們已經嘗試了其他幾項實驗
- 對於 v7.0.0,我們決定向對該版本做出重大貢獻的幾位貢獻者一次性支付 250 美元。貢獻者們既驚訝又高興,但我們也了解到,在某些國家/地區,對於我們在美國所稱的自僱收入,法規非常嚴格。並非所有人都能因此參與。
- 長期貢獻者 Kevin Partington 開始花費大量時間在我們的 Discord 中幫助社群成員,為了感謝他,我們開始為他提供的任何幫助支付每小時 25 美元。如果您曾經在我們的 Discord 中停留並尋求幫助,很有可能 Kevin 就是幫助您的那個人。
總結
總體而言,我們一直在尋找對 ESLint 有意義且有影響力的貢獻,以便我們可以獎勵人們的這些貢獻。展望未來,我們將繼續嘗試以不同的方式向貢獻者付費,因為我們正在尋找使 ESLint 在可預見的未來可持續發展的方法。
我們嘗試的並非所有事情都奏效,我們也沒有期望如此,但我們堅信,繼續解決這個問題是值得的。維護像 ESLint 這樣的專案需要大量的工作和許多人的大量貢獻。使其繼續下去的唯一方法是為人們的時間付費。