←戻る
JP/EN

コミュニティの貢献と自分の距離

はじめに

Minato.devという地域エンジニアコミュニティを立ち上げたので、その背景やContributeに対して最近考えていることを書く。


私自身のエンジニアキャリアは縁によって築かれてきたものだと最近感じることが増えてきた。

人の縁、コミュニティの縁などによって様々な機会を得ることができ、自身の視野を広げることができた。

その道中で得た学びをコミュニティやこれから学び始めるエンジニアに伝え、広め、還元することが自分なりにできるContributeだと考えてきていた。

しかし昨今のAI情勢も相まって技術記事や登壇のあり方が大きく変化しつつある。

生成AIを用いたライティングによってもっともらしいタイトル・記事があっという間に出来上がる。

AIを使うこと自体が悪いわけではない。

ただ、そこにプロセスが伴わず書き手の人格が見えないことが増えており、読み手への貢献という視点が薄れ始めているように感じる。

もちろん技術記事を書く事には様々な目的や意図が含まれることも理解しているが、そのスタートは 「何かしらをアウトプットし、他の誰かに影響を与えることを目指すこと」 ではないだろうか。

ある意味昨今の物量作戦で提供されるcreated by AIの記事は影響を与えているだろうが、読み手によっては、 技術記事を読むこと自体のモチベーションを奪うものになりつつあるのではないか。

登壇・セッションについても似た変化が起き始めている。

プロポーザル時点でスピーカーが本来理解できていないレベルの内容をAIが出せてしまうため、書かれた内容と実際の理解度の間にかなり開きが出るようになった。

その上でなんとかAIの内容に追いつこうと必死に学んで理解し、メッセージを盛り込むことができればそれは立派な成長の機会になる。しかしその差を埋められない残念なケースが増えてきていることも事実だ。

これは誰か個人の問題というより、プロポーザルを書くコストが下がったことによる構造的な変化だと思う。

プロポーザルを審査する側にとっても、文章だけで見極めることは以前より難しくなっているはずだ。

このように、かつてはコミュニティ(技術問わず)への貢献の手段でもあった記事の投稿・登壇はその意味が変わりつつある。

つまり何が言いたいのか。

コミュニティに貢献する他の手段を探す

まず思いつくのは個人スポンサーだ。

これはGitHub Sponsorsのようなエンジニア向けに特化したシステムもあれば、物品提供という手もあるだろう。

ubugeeei氏の営利企業こそ,OSSの作り手に金を払えでは以下のように述べられている。

イベントは目に見えやすい.ロゴが出て,会場にブースが出て,採用広報にもつながり,社内説明もしやすい.一方で,OSS の作り手の仕事は見えにくい.issue を読み,再現コードを書き,breaking change を避け,依存関係を更新し,脆弱性を直し,リリースノートを書き,ユーザーからの繊細な不満を受け止める.

これは派手な仕事ではなく,外部からも見えにくい.しかし,この地道な作業が止まると,ある日突然こちらの仕事も止まる.イベントスポンサーが不要だと言いたいのではないし,むしろ続いてほしい.ここで言いたいのは,支援先がイベントに寄りがちであるなら,OSS を作り,維持している人にももう少し支援が向いてよいのではないか,ということである.

OSSとは、必ずしも大企業で余裕のあるエンジニアが組織的にメンテナンスしているわけではない。

中には生活がままならない中でOSSユーザーの非常にシビアな要望に頭を捻らせ答えを導き出すこともある。

また、問題解決能力も必要であることが多い。

Discussionsでは時折議論が白熱することがある。そういった際にOSS/コミュニティとしての原則に立ち返り、議論に参加したユーザーを無碍にしないように丁寧に説明した上で軌道修正することもある。

このような高度な運用を無償で行っている動機は人それぞれだが、少なくとも利用者としては支援を考えても良いのではないだろうか。

金銭的支援だけがContributeではない

しかし様々な事情で金銭的支援に振り切ることができない人もいる。

その場合、次に考えられるのはコミュニティ運営やOSSメンテナンスに参加することだ。

ただしこれには冒頭で言及した技術記事・登壇と類似した問題が発生している。

最近ではHonoの開発者Yusuke Wada氏がAIによって生成されたと思われる大量のIssue/PRについて言及していた。

https://x.com/yusukebe/status/2107122627945074774

There are a few reasons:

  • Anyone can write code now, so code itself has lost some of its value
  • Maintainers can write code without contributors' help
  • The quality of AI-generated PRs is now high. We can't call them "slop". But they scan the repo, find nitpicks, and create PRs. The important thing now is not quality, but attitude
  • In the first place, I think contributions just for the sake of "contributing" are unhelpful
  • Having commits in a well-known OSS project on your GitHub profile can give you an unfair hiring advantage. We don't like contributions made mainly to get hired
  • I don't want to see a lot of wasteful PR every morning

日本語訳(筆者訳)

理由はいくつかあります:

  • 今では誰でもコードを書けるため、コードそのものの価値はある程度失われています
  • メンテナーは、コントリビューターの助けがなくても自分でコードを書けます
  • AIが生成するPRの品質は今や高く、もはや「粗悪品(slop)」とは呼べません。しかし彼らはリポジトリをスキャンして細かな指摘を見つけ、PRを作ってきます。今重要なのは品質ではなく、態度です
  • そもそも、「貢献すること」自体が目的になった貢献は役に立たないと思います
  • 有名なOSSへのコミットがGitHubのプロフィールにあると、採用で不当に有利になり得ます。私たちは、主に採用されるために行われる貢献を好みません
  • 毎朝、大量の無駄なPRを見たくはありません

著名OSSにコントリビュートし、実績を残すことが自身のポートフォリオとなると考え、AIにバグを見つけるよう指示を投げ、Issueすらもすっ飛ばしてPRを投げて様子見・・・

こういった現象は多くのOSSで目撃されるようになった。

誤解を恐れずに述べると「AIによる修正は必ずしも品質が低いものではない」ということだ。どちらかというと開発者のマインドセットの話をしている。

こうした背景から、以前からOSSを長期に渡りメンテナンスしてきた開発者たちは面識がない、または書き手の意図や背景が見えないPRに対してこれまで以上に警戒するようになっている。

AIによる大量のIssue/PRを前提としたガイドラインを敷いてPRを幅広く受け入れているOSSも一応あるが、その動きを多くのOSSに強いることはあまりに酷だろう。

つまり、 OSSにこれからいきなり飛び込んでIssueやPRを出すことも非常に難易度が上がっているのだ。

念のため補足するが 不可能ではない。 ただし難易度が上がっているのだ。

じゃあどうしろと?

だからこそ、いきなりPRを出して功を焦るのではなくまず関係をつくるところから始めてみることをオススメする。

まずはコミュニティに参加してみよう。

なんでもいい。ReactユーザーならReact Tokyo, SvelteユーザーならSvelte Japan。単にJSのキャッチアップをしたいなら〇〇.jsのような言語コミュニティイベントに参加してみるのも良いだろう。

関東圏以外でも地方イベントは各地で行われており、北海道ではVue Sapporoといった地域×言語・FWのコミュニティも開かれている。

こういったコミュニティの空気感を感じ、理解しつつ貢献できそうな場所を見つけるのは1つの手だろう。

大抵のコミュニティは新たに参加した人を温かく歓迎してくれる。

その中で何度か参加しているとコミュニティが人手を必要とするタイミングが訪れる。

ここで貢献できるかはあなた次第だ。

多くの時間を寄付しないと貢献できないのか?

正直なところ、私自身答えを見つけられていない。

OSS/コミュニティ活動は強制ではないため各位ができる範囲で取り組むのが健全であることは明らかだ。

一方で、かけた時間と「得られる信用や影響力」が比例するのも事実である。 30分だけ顔を出した開発者と数年間寄り添って議論に参加し、OSSの方針を決める動きに加わったコアコントリビューターとでは傍から見た印象も任される役割も明らかに異なるだろう。

ただ、それは貢献の「価値」に優劣があるということではないと私は考えている。

先のWada氏の言葉を借りれば、大事なのは品質ではなく態度だ。

費やした時間の長さではなく、相手やコミュニティを想って取り組んだかどうか... そこにこそ貢献の尊さがあるのではないだろうか。


私自身、そこまでコミュニティ・OSSに時間を多く割くことができない(できていない)

だからこそ自分なりに思いつく方法で貢献を試しているところだ。

この動きが各方面にとって良い影響をもたらすことができるかは今後を見ていてほしい。

Minato.devを立ち上げた話

いくつかの目的を果たすための柔軟な体制が必要だと感じ、 Minato.dev という地域エンジニアコミュニティを立ち上げた。

これは品川区・港区・大田区・江東区等の港・湾岸エリア周辺で勤務・在住しているエンジニア向けのコミュニティとして発足したが、現在は海・港の愛好家であれば誰でもOKになってきている。

立ち上げた目的の一つとしては 「ジュニアエンジニアとミドル・シニアエンジニアの距離を近づける」 ことだ。

学生時代・新卒時代から様々なエンジニアコミュニティと交流を持っていたり、会社の先輩・上司がそういった活動に触れてきていればある程度参加は容易かもしれない。

しかし必ずしもそのような恵まれた環境で開発しているエンジニアだけではない。

外部交流の機会が少なく、そもそも概念としても知らずに10,20年と開発業務に従事する・・・

そういったエンジニアは身近にいないだろうか。いなければあなたはとても恵まれている。

もう一つの目的としては 「アウトプットの練習の場を増やすこと」 だ。

これは冒頭で触れたAI登壇の話とも関連するが、必ずしも初の登壇はいきなり大舞台でなくても良いと考えている。

ポテンシャルがあれば初めから Vue Fes Japanやフロントエンドカンファレンス, 〇〇Kaigiのような大人数が集まる場でチャンスをもらうこともできるだろう。

しかしそういった煌びやかな世界に対してハードルを感じすぎてしまい、アウトプットを恐れてしまうくらいならもっと気軽にLT、セッションができる場があっても良いのではないだろうか。

実際このような中〜小規模なイベントは多くのコミュニティが開催し、多くの場を設けている。

そこに自分も加わっていこうと思った次第だ。

他にもいくつか理由はあるが、他の内容はMinato.dev#1で話す予定だ。

最後に

まだ外部との交流が少なく、OSSもコミュニティ活動もよくわからないエンジニアへ。

恐れず飛び込んでみよう。

AIがどうだこうだと御託を並べはしたが、結局のところ誰でも初心者から始まる。

そこからレベルアップする手段として他所のエンジニアと交流し、新たな考え方をもらい、自身の学びと混ぜ合わせてアウトプットにする・・・

ここから始めてみよう。

仕事の延長線上で、コミュニティ活動に時間を使うことに意義を感じていないエンジニアへ。

一度カンファレンスに来てみよう。

コミュニティの集大成として祭り感も強く、ただ参加するだけでも雰囲気を楽しめるはず。

Minato.devは10/13にイベントを開催します。

ぜひ遊びにきてほしい。

https://minato-dev.connpass.com/event/402521/