OSSは「やらない理由」だらけ?それでも続ける6つの理由のトップ画像
OSS応援最後まで読んで「応援」しよう

OSSは「やらない理由」だらけ?それでも続ける6つの理由

投稿日時:
unvalleyのアイコン

FRAIM株式会社 / ソフトウェアエンジニア

unvalley

Xアカウントリンク

本記事では、「OSS応援企画」として記事末に「応援ボタン」を設置しています。1回の応援につき、Findyが100円をOSS団体などへ寄付し、エンジニアの成長とOSSの発展を応援する取り組みです。開発者の想いや取り組みに共感した気持ちが、OSSの支援にもつながっていく、そんな前向きな循環をFindyは目指しています。「応援ボタン」は、1日1回まで押すことができます。記事を読んで「いいな」と感じたら、ぜひボタンを押してあなたの応援の気持ちを届けてください。


こんにちは、unvalleyといいます。FRAIMという会社で、Rust/TypeScriptを書きながらプロダクト開発に取り組んでいます。余暇でEpheというWebアプリやBiomeというRust製のWebツールチェイン(Linter/Formatter)の開発に取り組んでいます。今回は「CodeSideChat」企画の一環として、OSSに継続的に取り組むことについての考えを共有したいと思います。

OSSへのコミットを始めた理由と継続

Biomeに自分がコミットを始めた理由は、主に以下に集約されます。

  1. Rustを学ぶには、OSSにコミットするのが効率的だと考えたから
  2. 経験のあるJS/TSを対象にしたRustツールだったから
  3. 当時は学生で時間があったから
  4. 友人のOSS活動の影響を受けたから

余暇でのBiomeへのコミットを通じて、「最初のコミットはそんなに難しくないが、継続的にコミットをし続けるのは難しい」ということを学びました。typoや簡単な処理の修正は簡単ですが、問題はその後です。OSSへのコミットの継続の難しさは、あらゆる物事の継続と同様に、「時間・体力・モチベーション」だと思います。

  • 社会人なら、業務後や土日にコードを書く体力があるか?
  • 副業などの代わりに、OSSに時間を費やすことができるか?
  • モチベーション高くコミットし続けられるか?楽しいと思えるか?
  • 生成AIがissueを解決できるようになった時、OSSをやる価値は?
  • 生成AIの学習データに無償で貢献する理由は?

OSSへのコミットは別に強制されていないボランティアであることが大半だと思うので、やらない理由はたくさんありますし、すぐに見つけられます。というより、むしろ多くの人はやらないと思います。ですが、継続的に関わると得られることも多いです。

継続的にOSSに関わって得られること

まずOSS、例えばあるプロジェクトにしてもスポットでのコミットも価値があると思いますが、長期的にコミットし続けられる人がいる方がありがたいと思います。

tokio-rsで気付いたOSS運営の"リアル"3選」という記事には、ごく一部のスーパースターのような人によってプロジェクトが支えられていることについて記述があります。自分もこれに同意します。主に企業や特定の財団で開発されているOSSではない場合、人(理想的にはコミュニティ)に依存した構造になると思います。

下記は、OSSでのDependency(依存)に関する有名なジョーク画像です。ジョークに見えますが、コミュニティとは呼びづらいこのような個人によって支えられているプロジェクトは実際のところ多く見かけます。

dependency.png

https://xkcd.com/2347/

このようなプロジェクトのために継続的にコミットし、メンテナンスに寄与することは意義があるでしょう。一方で、OSSコミュニティの利益を個人が考えながら動くのも綺麗事にしか見えず、あまり実利的ではないですし、これのみで先ほどあげたモチベーションを解決できるとは思えません。したがって、個人としてOSSに継続的に関わることによって得られる利点を考えてみます。

知的好奇心

あるプロジェクトが取り扱っている問題やコードに興味を持ってこそコミットできると思います。どのような仕組みで動いているか、どのようなアルゴリズムが使われているかなどそういった部分は知りたくなるのがソフトウェアエンジニアの性ではないでしょうか。例えば自分はRustによるLintの実装に興味があり、Biomeへのコミットを始めました。よく言われる “Just For Fun” についても、この知的好奇心が元なのかなと思います。

英語

国内など限られた地域からのコミットに限定されないOSSでない限り、大抵英語でコミュニケーションをすると思うので英語の実践力を身につける機会となります。Discordでのチャットなどを翻訳しながら読むのは面倒なので、そのまま英語を読む機会になります。

仲間

同じ目的を共有して開発するという面白い関係性の仲間が増えるのも継続的に関わってこそだと思います。貴重な時間をボランティア(であるならボランティア)に費やしている、ある意味で特殊な人々の集まりに加わることになります。また、コミット対象が異なるとしても、OSSに取り組んでいる人とのつながりが増えます。

登壇機会

OSS活動を継続しているとカンファレンスなどへの登壇機会を作ることにも繋がります。自分はそれがきっかけで、たとえばTSKaigiやVueFesなどのカンファレンス等で登壇経験を積めました。このような登壇は、OSSプロジェクトの認知度を高めることやスポンサー獲得のための活動としても重要だと思います。また、前述したOSSをやっている人とのつながりを増やすきっかけになります。

信用

ある特定のプロジェクトに余暇で長く継続して取り組んでいることは、キャリアにおいても評価されることではないでしょうか。開発における振る舞いと実績が公開されるため、チームに参画した後の振る舞いも部分的には想像できます。OSS活動をしている開発者は、同じくOSS活動をしている人を高く評価しやすいのではないでしょうか。

金銭的報酬

金銭的報酬があるプロジェクトなら、それは継続する大きな理由になると思います。ただし金銭を目的にする人はあまりいないと思いますが、これを目的にする場合は、Contribution Guideや各プロジェクトの財政状況や分配をみるとよいと思います。この金銭的報酬はスポンサーあってです。また、取り組んでいるOSSが会社のプロジェクトとなり、コミッターがその社員になるようなケースも見かけます。

一度のコミットでもこれらを部分的に得ることはできますが、継続するとより確かなものになると思います。また、ここに挙げたものは徐々に変化していきます。例えば時間が経過すれば、知的好奇心よりもメンテナンスの義務感が大きくなることもあるでしょう。これらを自覚しながら、自分のペースでやるのが継続に必要なことかなと考えています。OSSに取り組んでいるとモチベーションの下がるようなタイミングも頻繁に訪れます。横柄な態度をとるユーザーやIssueではなくSNSで不満を見かけることもあります。そういうものは、必要以上に気にせずに取り組むのが健全だと思います。

OSSと生成AI

生成AIツールは、OSSにおいても既存のコード理解・バグ修正や機能追加等の開発・翻訳・アイデアなど様々な用途に利用できます。ソースコードがオープンであるため、業務で利用しづらい新しいツールを積極的に試す場所としても使えます。しかし、これらのツールを不適切に利用してしまうと、メンテナの負担を上げることになります。当然ですが、生成AIを利用しても、その成果物であるPRやコメント等は、自分の責任であるとして振る舞うことが求められます。

GitHub上の Issues, Pull Requests, Discussionsなどで、生成AIによって作られた文章・コード(特に開発者によって手が加えられていない)というのは、いまだ比較的簡単に判別が可能です。うまく使えば、OSSをより持続可能なものにできる技術ではあると思いますが、やはり物は使いようです。例えば、「AIによる無効なバグレポートが、Curlのバグ報奨金プログラムに殺到。「事実上、DDoS攻撃を受けているようなものだ」と開発者が訴え」という記事では、curlの開発者がAIが生成したバグレポートに疲弊していることが伝えられています。生成AIによる、あまり論理の通っていない発言や振る舞いが歓迎されるコミュニティは少ないでしょう。逆に、生成AIを使いこなしたなら、プロジェクトの改善速度の向上にもつながります。

終わりに

ここまで書いた自分も一端のコントリビュータに過ぎないですし、自分より遥かに長く継続している人はたくさんいます。そのような方々の情報に触れるとよりやる気が出ると思います。OSSプロジェクトへの継続的なコミットでは、多くの学びと経験が得られると思います。これだと思うプロジェクトがあれば、ぜひ継続してみると面白いかもしれません。[1]

脚注
  1. 本記事は以前、「OSSと継続的に関わる方法の模索」というタイトルで執筆した記事を加筆・修正したものです。

OSS応援企画

Findyはエンジニアの成長とOSSの発展を応援します

Loading...

現在27の応援が届いています🤝

Loading...

寄付期間:~ 8/14 上限金額:200,000

プロフィール