OSSと継続的に関わる方法の模索
先日、Deno で働くmaguroさん主催のmaguro.dev #1 supported by KIKKAKE AGENTにて、本記事タイトルで LT をしました。
本記事は、そこで話した内容に加筆・修正して、テキスト形式でまとめたものです。ここでの OSS コミットは、余暇にボランティアで行うことを前提としており、業務で行うことはあまり想定していません。
最初のコミット
継続的に取り組んでいる OSS はありますか。自分の場合は、Biomeという Rust 製の Web ツールチェイン(Linter/Formatter) に取り組んでいます。数ある OSS のうちの 1 つです。
遡ってみると、初めてのコミットは 2022 年 11 月、まだ Rome が会社として存在しており、rome/tools というプロジェクトであった頃でした。すでに JS/TS 向けの Formatter が利用できる状態で、Formatter をほぼ一人で実装したMicha Reiser(ex-Meta, and Rome, now at Astral)という凄腕のエンジニアにレビューをしてもらいました。「こうやって書くといいよ」とコメントで教えてもらって、コードが実際に綺麗になったため、非常に学びになった記憶があります。自分の初 PR にそのやりとりが残っています。
当時のフロントエンド界隈では、Rome の知名度は今の Biome ほどではありませんでした。sebmck が始めたプロジェクトで、GitHub の star は今の Biome より多いものの、実利用をしているケースはほぼなかったと思います。そんな Biome(ex-Rome)に自分がコミットを始めた理由は主に以下に集約されます。
- Rust を学ぶには OSS(既存のプロジェクト)にコミットするのが効率的だと考えたから
- 経験のある JS/TS を対象にした Rust ツールだったから
- 当時は学生で時間があったから
- 友人が rustc にコミットしていて影響を受けたから
Rome から Biome として新しく始めようというとき、その付近でアクティブにコミットしていたため、メンバーとして招待されました。そこから現在まで、合間を見つけてコミットしています。一方で、非アクティブな時期もそれなりに長いです。
Biome にコミットしていた経験を通しての考え
ある OSS(Biome)へのコミットを通じて、「最初のコミットはそんなに難しくないが、継続的にコミットをし続けるのは難しい」ということを学びました。その難しさは「時間・体力・モチベーション」だと思っています。そして以下のことなどを乗り越える必要があります。
- 社会人なら、業務後や土日にコードを書く体力があるか?
- 副業などの代わりに、OSS に時間を費やすことができるか?
- モチベーション高くコミットし続けられるか?楽しいと思えるか?
- 生成 AI が issue を解決できるようになった時、OSS をやる価値は?
OSS へのコミットは別に強制されていないボランティアであることが大半だと思うので、やらない理由はたくさんありますし、すぐに見つけられます。ですが、言わずもがな、継続的に関わると得られることも多いです。
継続的に OSS に関わって得られること
まずOSS、例えばあるリポジトリにしてもスポットでのコミットも価値があると思いますが、長期的にコミットし続けられる人がいる方がありがたいと思います。自分は、継続的に OSS に関わって個人が得られることとして以下を考えています:
- 知的好奇心:
- まず何はともあれ知的好奇心ではないでしょうか。ある OSS が取り扱っている問題やコードに興味を持ってこそコミットできると思います。
- コードに対するオーナーシップ:
- 業務の closed なコードと比較してコードへのオーナーシップは、その性質上、OSS の方が持ちやすいはずです。そのリファクタリングが妥当なら、作業時間の捻出に理由を作る必要はありません(そもそもまともな組織であるなら理由なしにリファクタリングは行われていると思いますが)。
- 英語の実践力:
- 国内など限られた地域からのコミットに限定されない OSS でない限り、大抵英語でコミュニケーションをすると思うので「英語の実践力」を身につける機会となります。Discord でのチャットなどを翻訳しながら読むのは面倒なので、(疲れますが)そのまま英語を読む機会になります。
- 同じ目的を共有して開発する仲間:
- 同じ目的を共有して開発するという面白い関係性の仲間が増えるのも継続的に関わってこそだと思います。貴重な時間をボランティア(であるならボランティア)に費やしている(ある意味で特殊な)人々の集まりに加わることになります。この人の原動力はなんなんだろうと思うような人ばかりを見かけます。
- 金銭的報酬:
- 金銭的報酬があるプロジェクトなら、それは継続する大きな理由になると思います。ただし金銭を目的にする人はあまりいないと思いますが、これを目的にする場合は OpenCollective で各プロジェクトの財政状況や分配をみるとよいと思います。この金銭的報酬はスポンサーあってです。
- OSS に関わる内容でカンファレンスなどへの登壇機会:
- OSS を継続してやっているとカンファレンスなどへの登壇機会を作ることにも繋がります。自分はそれがきっかけで、TSKaigi2024 に登壇したり、他いくつかのイベントなどに呼んででもらえたりしました。またこれは直接的なコードコミットではないですが、認知度を高めるためのマーケディング的な活動としては重要だとは思います。スポンサー獲得にも繋がります。
一回のコミットでもこれらを部分的に得ることはできますが、継続するとより確かなものになると思います。
終わりに
OSS プロジェクトへのコミットは色々な形があると思います。業務で必要だったから、コミットしてみたかったから、趣味でやってるから、仕事だからなど。
一回のコミットもよいと思いますが、継続的なコミットはまた違った経験が得られると思います。これだと思うプロジェクトがあれば、ぜひ継続してみると面白いかもしれません。
記事内で挙げた時間・体力・モチベーションの課題を乗り越えて、コミットを続けられている人はすごいと思います。例えばBiomeでは、僕がコミットできていない時期も、ematipico, Conaclos, Arendはかなりの勢いで日夜コミットを続けています。そして最近日本からのコミッターとしてSiketyanさんも活躍されてます。
自分ももう少し継続しようと思います。周りには僕より長くOSS活動をしている人がたくさんいます。皆さんもぜひその経験を教えてください。
Discussion