Kustomizeのリードに昇格したエンジニアが語るOSSへの参加を持続させるコツとは

「日本でオープンソースプロジェクトへのコントリビューションを増やすためには何が必要か?」
これについて考えるために実際にコントリビューションを行っているエンジニアに訊くインタビューシリーズ、第2弾はKubernetesのSIG-CLIの配下にあるKustomizeというツールのテクニカルリードであるエンジニアのインタビューをお届けする。オープンソースと言っても個々のプロジェクトはその生い立ちも異なれば歴史も経緯もさまざまで、一概に「こうすればいい」というマジックワードは存在しない。しかしプロジェクトのコントリビューターにインタビューすることで、共通した問題点や解決策が見いだせるかもしれない。それを探り当てていくのがこのインタビューシリーズの目的だ。
インタビューに応えてくれたのはシステムインテグレーターで深層学習基盤開発グループに所属するエンジニアの小林優吾氏だ。
簡単に自己紹介をお願いします。
小林:私は日本のシステムインテグレーターで深層学習のためのKubernetesインフラストラクチャーの構築と運用の仕事をしています。その前はLINEヤフーでKubernetes as a Service(KaaS)の開発と運用をやっていました。ヤフーに入ったのはKubernetesを大学でも使っていて仕事としてKubernetesをやりたいと思ったからですね。ちょうどLINEと一緒になる直前だったと思います。
当時のヤフーにはレガシーなインフラが動いていて、それとはまったく異なるものをゼロからKubernetesで作るというプロジェクトに参加しました。そこではレガシーなモノを引き継がなくていいというITインフラを作るという経験をしました。ヤフーで働いていた時に大量のKubernetesクラスターの運用管理のツールとしてKustomizeを使うようになったのが、Kustomizeのプロジェクトに参加するきっかけです。その頃は通常の社内業務とオープンソースの仕事を両立できるような社内ルールが確立されていたことで、Kustomizeへの貢献が続けられました。フルリモートで自由裁量の仕事だったんですが20%はオープンソースの仕事をしても良いということで、コントリビューションはやりやすかったですね。今は2週間に1回のカンファレンスコールが2つ、日本時間の深夜に連続して実施されるのに参加するということを続けています。基本的にKustomizeの仕事は勤務時間外でやる感じです。
2025年4月にロンドンで開催されたKubeCon Europeにも参加されていましたが、それは業務ではなく自身の有休を使っての参加と聞きました。会社としてはオープンソースプロジェクトへの参加はどういうように認識されているんですか?
小林:現在の仕事でもKustomizeは使っているので、KubeConへの参加も有休の理由として参加することには承認が下りている感じです。でも旅費を出してくれるところまでは至っていませんね(笑)。今回の出張にはCNCFのトラベルファンドという仕組みを使って、全額ではありませんが、旅費を支援してもらっています。オープンソースプロジェクトで貢献していることをCNCFに評価してもらっている一面でもあると思います。メンテナーだと申請が通りやすくなるらしいということを聞いてはいるのですが、実際にはメンテナーをやっている人がトラベルファンドに通らなかった例を見たこともあるので、確実なものではないようです。
小林さんのオープンソース側に立った視点から経歴を見ると、ユーザーの立場から改善点を見つけてその実装方法などを検討して提案することでコミュニティに認められてレビュワーになり、その後に昇格してアプルーバー、そして現時点ではテックリードになってプロジェクトの方向性などを最終的に決める役割を得ています。これはとても輝かしい感じのキャリアというように見えますが。
小林:そう言われてみるとそうですね。でも実際には数名のエンジニアがプロジェクトのコードを書いたり、レビューを行ったりしているわけです。私がコントリビューターからレビュワーになったのは、Go言語に関わる大きめの改造を提案してそれを実装したことが評価されたからですね。その流れでレビュワーからアプルーバーになることができました。
リードになったのは、前任者が所属企業の都合でもう業務中にオープンソースの作業ができなくなってしまったという理由から、その人が抜けてしまう穴を埋める形でした。他に人材がいないような小さなチームだったので引き受けざるを得なかったのです。その人は業務時間にKustomizeの仕事をしてもいいというルールが社内で認められなくなってしまったんですね。だから持続的にプロジェクトに貢献ができなくなってしまったというのが抜けた背景です。日本の企業だけではなく北米のIT企業でもこういうことは多々あるんだということを知りました。
苦労したことは何ですか?
小林:言い出したらキリがないんですが、最初のうちは英語でのコミュニケーションには苦労しましたね。私以外は全員、英語で仕事をしているエンジニアなので、英語でのコミュニケーションは当然問題ないのですが、私自身は英語が全然できなかったので当初は翻訳ツールとGrammarlyを使いまくってドキュメントを読んだり、レビューのコメントを書いたりしていました。定例のカンファレンスコールも英語での会話になりますけど、参加しているエンジニアたちは私が英語ネイティブではないのを知っているので、カバーしてくれていると思います。
日本でオープンソースプロジェクトへのコントリビューターを増やすためには何があればいいと思いますか?
小林:個人的な経験から言えば、所属している企業が「業務時間に一定の割合でオープンソースの仕事をしてもいい」というルールを作ることが一番大事かなと思います。そして可能なら、オープンソースへの貢献を自分の社内評価に反映して欲しいというのがその次に大事なポイントですね。
それはつまり給料に反映して欲しいということですね。
小林:ぶっちゃけ言えばそういうことですね。
最近、CNCFが推進していることもあってOpen Source Program Office(OSPO)というのを企業内に作ろうという流れがありますが、あれはどう思いますか?
小林:OSPOはどちらかと言えばトップダウンで始まるんだと思いますね。組織を作るのが草の根的に始まるとは思えないので。OSPOでSDGsのような持続性がどうのって言ってますけど日本ではどうなのかなと(笑)。
ただ一人でオープンソースプロジェクトへの貢献を続けていく時に社内でいろいろと戦わないといけないケースってあるじゃないですか。今回のようにKubeConに行く理由をひねり出すみたいな状況では、一人で考えるより同じ悩みを抱える人がバーチャルな部門とは言え、同じチームとなることでアイデアが出てくることもありますよね。そういう意味でOSPOを使うというのはアリだと思うんですよ。日本ではライセンス違反で訴訟になるなんて危険性はアメリカよりも低いし、社内のオープンソースに詳しいエンジニアを見付けて活用するインナーソースなんてのもほぼ夢物語みたいなものですし。でも結局、上層部にオープンソースを支持してくれるサポーターがいなければ不可能なんで属人化してしまうとも言えますけど。
小林:あぁ、そういう使い方は考えてなかったですね。なるほど。
ちょっと変な質問ですが、今の自分をコピーロボットみたいにして複製できるとしてまったく新しいオープンソースに貢献するとしたら、何がやりたいですか? つまり今の自分の役割は全部忘れてまっさらな気持ちでチャレンジするとしたらという意味です。
小林:そうですね。やっぱりKubernetesに関連してますけどCluster APIとかには興味ありますね。現在の仕事が機械学習のためのインフラ開発なので、ミッションクリティカルではあるんですが、絶対に落としちゃいけないとかそういう感じでもないんですよ。それよりもジョブのスケジューリングとかのほうが優先順位は高いので、その関連をやりたいですね。
プロジェクトによっても変わると思いますが、コントリビューターに対して何かアドバイスがあれば。
小林:そうですね。そのプロジェクトが歩んできた過去の経緯をちゃんと理解しておいて欲しいなと思います。GitHubのリポジトリーにはそのプロジェクトが経験してきたさまざまな議論や判断の経緯が全部残されているので、それをちゃんと読んで理解していくことですね。
例えば新しく参加したエンジニアが自分の経験からこのソフトウェアのある部分を変えたほうがいいと思っても、なぜか実装されていないことがあったとします。それは単に時間がないからやってないだけなのかもしれませんし、過去に同じような提案があったが、別の理由で実装されていなかったのかもしれません。そのことは、リポジトリーの議論を追えば理解できるはずなんです。なのでそのプロジェクトが今に至るまで辿ってきた道を振り返って、誰がどういう意見を言っているのかを理解するべきです。そうすれば変更をいきなりプルリクとして送るだけじゃなくて、そのプロジェクトにあったやり方で変えていくことができると思います。つまり、文脈をちゃんと理解しようということですね。
CNCF的にはコントリビューターを増やしたいという想いがあると思いますが、どうやったらコントリビューターが増えると思いますか?
小林:Kustomizeの観点からはコントリビューターよりもレビュワーを増やしたいですね。そっちのほうが切実です。ただコントリビューターから徐々に経験を積んでレビュワーになるわけなので、誰でもいきなりレビュワーにはなれないということを考えるとコントリビューターとして自分の仕事に関連のある領域で自分がいいと思ったソフトウェアのプロジェクトに参加するのがいいかなと思います。私の場合はKustomizeの思想がかなり理想に近い感じのソフトウェアだったのが幸運だったと思います。あと現実問題、オープンソースプロジェクトのコントリビューターって名誉職と思ったほうが良いかなと。そう思わないとやっていけないということでもありますけど(笑)。
小林氏は自身が参加しているプロジェクトについて赤裸々に語ってくれたが、多くは公開することが難しい内容であった。多くの日本のエンジニアがオープンソースプロジェクトに消費者ではなく貢献を行う立場で参加することを望むのは建前的には正しいとは言え、現実は厳しいというリアルな状況が垣間見られたインタビューとなった。なお小林氏がLINEヤフーに所属していた当時に公開した以下のブログも参考になるだろう。
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- CloudNative Days Tokyo 2019:K8sコントリビューターになるために必要なことは?
- Cloud Native Community Japanキックオフミートアップ レポート
- 日立のOSSコントリビュータに訊いた組織のあり方と失敗談
- LFが「Kubernetesプロジェクト ジャーニー レポート」とKubernetesの新トレーニング「Kubernetes アプリケーション開発」を発表
- LinuxCon ChinaでMicrosoftのエンジニアが説くオープンソースプロジェクト成功のポイントとは?
- LFがオープンソースにおけるDE&I(多様性・公正性・包摂)に関する調査レポートを公開、ほか
- EdgeX Foundryを推すNECの担当者に訊いた「忍者」的なシステムとは?
- Rocky Linuxのメインテナーに訊くコミュニティ運営の要点とは?
- クラウドネイティブ啓蒙のためのジャパンチャプター結成の背景をインタビュー
- LFが「LF Research調査レポート」日本語版を公開、オープンソースのクラウドネイティブ技術を推進するCNCFの日本における正式コミュニティを設立