楽しく OSS 活動していたらいつの間にか Vue コアチームメンバーになっていた話
こんにちは。コアテクノロジーグループに所属している太田です。
Vue.js コアチームなどのいくつかのOSSチームにも所属し活動しています。
私の担当業務は、プロジェクトで使用するフレームワークのメンテナンスやサポートです。その業務の傍らでOSS活動をしていると思われることがあるのですが、少し違います。趣味としてプライベートで活動することもありますが、実は活動の多くは業務中に行っているものです。
この記事では、私がどのように業務中のOSS活動を楽しんでいるのか、またそれがどのようなことにつながったのかをご紹介します。
OSS活動を始めたころの自分
まず、私がどうして今のように業務中にOSS活動をするようになったかをお話します。
以前の職場ではOSS活動を行ったことがありませんでした。趣味で作ったプログラムをGitHubにアップすることはあっても、それはOSSとしてではなく保管場所としてオープンにしていただけでした。当時はOSSを業務で使用することが少なかったということも要因としてあると思います。
しかし、フューチャーに転職してからはOSSに触れる機会が格段に増えました。プログラム言語、ライブラリ、ツール、RDBまでもOSSを使うことが多く、そのおかげで使用しているOSSについて自分たちの欲しい機能をリクエストするIssueやPullRequestを開くようになり、徐々にOSS活動をする機会が増えてきました。
また、当時「Vuls」のように会社でOSSを公開しようという動きがあったり、Vuls が一部でバズったりしたこともあって、自分でも何かOSSを公開しようと思いはじめたのです。そして、いくつかのプロジェクトのパフォーマンス課題を解決するために作ったグリッドライブラリを公開しました。当時は誰にも気付かれず鳴かず飛ばずでしたが、私にとってはこれが初めて真面目にOSSとして公開したライブラリでした。
OSS活動を本格的にやり始めたきっかけ
既存のOSSにIssue、PullRequestを開く活動は続けていましたが、コメントされたり、PullRequestがマージされることはあまりありませんでした。しかし、あるとき eslint-plugin-vue という Vue のソースコードをチェックするツールで 10 個ほどのPullRequestがマージされました。
これらのPullRequestは、社内のプロジェクトでVue.jsを使っていこうという動きをきっかけに、Vue.jsでの開発体験や効率を上げていくための、開発環境の強化を目的としたものがメインでした。
マージされたおかげでプロジェクトにも貢献でき、またこれが世界のVue.js ユーザーにとってもメリットがあるという実感もあったので、その後もいくつかのPullRequestをしました。また、Issueを開くときは、ついでに既存の Issueの題名を見て気になるものをチェックしたり、困っているユーザーの Issueに対処法をコメントしたりもしました。その活動のおかげもあってか、 eslint-plugin-vue のコラボレーターに招待され、それから eslint-plugin-vue をメンテナンスするメンバーとして活動することになりました。
このことをきっかけに、本格的にOSS活動をするようになりました。
OSS活動と業務は不可分
先にも書きましたが、私はOSS活動を主に業務中に行っています。当社のプロジェクトで使用するフレームワークにVue.jsを使用しているので、eslint-plugin-vueのメンテナンスは、プロジェクトの開発効率にも大きなメリットがあります。また、私はその後いくつかのOSSチームに招待され現在所属していますが、それらのOSSの多くも当社のプロジェクトで使用しています。
私は、複数のプロジェクトをサポートする立場にあるため、社内プロジェクトで出てきた課題に対して「OSSにこんな機能があったら解決できるかも!」という場面に度々遭遇します。その際には、Issueで機能をリクエストしたり、PullRequestを開いたりします。私がメンテナンスに関わっている OSSであれば、リリースまで行うこともあります。これらはもともと当社のプロジェクトの課題に関する仕事なので業務中に行います。
機能をリクエストする以外にも、Issueのチェックや、誰かが開いた PullRequestのレビューも業務中に行っています。
誰かが開いたPullRequestは、私や会社にとって現時点では優先度の高いものであるとは限りませんが、世界中のOSSユーザーにとって価値がある場合、将来的にフューチャーにもメリットがある可能性があります。
またIssueも同様に、リクエストされた機能やバグが多くのユーザーにとって価値や必要性があるものなら、フューチャーにとっても必要となる可能性があります。IssueやPullRequestなどをチェックしていると、別のユーザーが私が知らなかった使い方をしていることがあります。それが新しいものだったり、思いつかなかったアイデアだったりしますが、これらのアイデアやノウハウは当社のプロジェクトにも活かすことができます。
自分たちで必要となり追加した機能を世界の誰かが使って「すばらしい機能追加をありがとう。実はこんな使い方もしたいんだけど、さらに機能追加できないかな?」のような話に発展することもあります。このように、自社内の課題を解決するために作った機能が世界の誰かの問題を解決していることもあるのです。GitHubで世界の誰かに提案された機能がさらにブラッシュアップされ、自社プロジェクトにとっても大きなメリットがあると 、OSS活動が社内外を巻き込んで良いサイクルを生んでいると実感できます。
OSS活動が評価され、Vue.jsコアチームへ
おかげさまで私は業務時間を使って楽しくOSS活動を続けています。
eslint-plugin-vue のメンテナンスについては長く続けていたこともあり、Vue.js チームにも招待され、いつの間にか Vue.js コアチーム のメンバーになっていました。
GitHub上のIssueやPullRequestのコメントで「Thank you!」と言ってもらえることもありますが、組織から表彰されることもあります。eslint-plugin-vue は ESLint のプラグインでもあるので、ESLintへの貢献も行っています。そのいくつかの活動はESLintのチームから評価され、過去に 6 回、ESLint Contributor Pool Program というプログラムで選出されました。
他にもGoogle Open Source Peer Bonus Program 2022で選出されたり、GitHub の Maintainer Monthというイベントで 900 人のうちの一人に選ばれたりもしました。
もちろん「Thank you!」と言ってもらえるだけでも十分うれしいですが、このように表彰してもらえると、自分の活動が世界のユーザーに喜んでもらえていることをより実感でき、さらに励みになります。
予想しなかったチャンス到来
私はOSSのメンテナーとして一定の評価を受け、Vue.jsコアチームのメンバーになったおかげで、予想していなかったチャンスを得ることになりました。
一つは、Vue.jsの日本コミュニティであるv-tokyo主催のイベントやTechFeed 主催のイベントに登壇したことです。
もう一つは、WEB+DB PRESS Vol.120 でVue.jsの特集記事を共同執筆させてもらったことです。
私は元来恥ずかしがり屋なので、おそらく声をかけてもらわなければ、どこかで登壇するようなことは一生なかったかもしれません。この登壇以降は自分の中で少しハードルが下がり、今では自分から応募するまでになりました。
また、私の人生で雑誌に載るような記事を書くなんて想像もしていませんでした。家族にも自慢しました。(残念ながら内容は伝わりませんでしたが)
最後に
これまでご紹介してきた通り、私はフューチャーに転職してから業務中に楽しくOSS活動をしており、エンジニアとしての成長も実感しています。
チームに招待されたり表彰されたりと、わかりやすい形で評価を得ることができ、執筆などの思いがけないチャンスもいただき、OSS活動は私のエンジニアとしてのキャリアに、多くの価値と刺激をもたらしてくれています。