エンジニアの仕事は、仕事でコードを書くことだけではありません。学びのために本を読み、文章を書き、イベントを運営し、登壇し、OSS開発で貢献する――技術との関わり方は人それぞれです。そこで本シリーズでは、技術愛好家たちの1週間に密着し、その多彩な活動と時間の使い方に迫ります。
今回ご紹介するのは、お店のデジタル化を支援する STORES 株式会社 でフルタイムRubyコミッターとして働く、笹田耕一さんと遠藤侑介さんです。
フルタイムのOSSコミッターは普段どのようなワークライフを送っているのでしょうか。STORES に入社してから1年以上が経過した現在の働き方について、おふたりにお話を伺いました。
▼OSS開発者が自分の人生を犠牲にしなくていい。「フルタイムRubyコミッター」という生き方が与えてくれた恩恵
- 朝会:笹田さんと遠藤さんの間で行われる、予定や最近の話題の確認、Rubyの仕様実装の議論など(話題の有無で10分~2時間程度)
- 雑デイリー:所属グループ全体での予定確認など
- 作業:プログラミングやチケットトリアージ、関連調査、発表の準備など
- 開発者会議:Rubyの開発者有志を集めた月例の開発者会議。Rubyの新機能やバグ報告などを議論する
フルタイムRubyコミッターの1週間のスケジュール
― おふたりの1週間のスケジュールを拝見しながら、お話を伺っていきたいと思います。まず毎朝行われている「朝会」について教えていただけますか。
遠藤 笹田さんと一緒に、その日の予定と、Rubyで話題になっている内容を話し合っています。Rubyコミュニティで議論が活発なチケットや新しい提案、バグ報告など、2人で話したほうがよさそうな内容があるときには長くなりますね。そういうときは午前中いっぱい、12時くらいまで話すこともありますし、特に話題がない日は10分くらいで終わることもあります。
― その後の「雑デイリー」は所属グループ全体での予定確認とありますが、おふたりはどういった部門に所属されているのでしょうか。
笹田 私たちはテクノロジー部門技術推進本部に所属しています。そこは全社的なバックエンドの技術をまとめる部署で、特定のプロダクトには属さず、必要に応じて動くいわば「遊撃隊」のようなポジションです。そんなグループに我々2人が間借りしているような状況です。
― 午後からはRuby開発の時間に充てているのでしょうか。
遠藤 そうですね。ただ、朝会が早く終わったときにはそのまま作業を始めるので、午前から開発していることもありますね。
私の場合、普段から機能提案やチケットなどを確認して、すぐに反応できるものは反応しています。ほかには発表の準備なども含めて、OSS活動全般を仕事として行っています。
笹田 プログラミングとは設計の作業でもあるので、私は常にPCの前にいるわけではありません。ディスプレイとにらめっこするだけでなく、ときには紙に書き出して整理したりすることも多いんです。
問題の多くは「どう解くか」そのものがまだ定まっていない段階なので、もし単純にコードを書く段階まで来ていればコードを書くこともありますし、ChatGPTのようなツールを使うこともあります。でも、解法が見えないときには、頭を使って考え続けるしかありません。そんなときは散歩をして気分を変えながら思考を深めることもあります。
― スケジュールを見ると、笹田さんは大学との共同研究もされているようです。
笹田 以前大学で教員をしていた経歴があり、そのご縁で声をかけていただきました。現在は、Rubyをテーマに研究する学生さんたちをサポートしていて、週ごとに進捗を聞き、コメントやアドバイスができるところは行っています。私たちとしては、Rubyがより良くなるのであれば、いろいろな人に研究してもらうことも大事だと考えています。
― 午後は各々の作業に費やされているんですね。おふたりとも普段は19時前後には仕事を終えられるようですが、夜間や休日はどのように過ごしていますか。
遠藤 目安として19時と言っていますが、日によって変わります。調子が良ければ21時までやることもあるし、今日はもう無理だなと思ったら18時くらいで終わることも。
笹田 基本的には1日8時間を目安にしています。子どもとの時間も大切にしたいので、以前のようにずっとパソコンに向かうことは減りました。
今でもたまに夜間に作業することもありますが、体力的に難しくなってきたと感じます。夜はマンガを読んだりゲームをしたり、好きなように過ごしています。
遠藤 私の場合、自由時間があればいまだにパソコンに向かっていることが多いですね。土日で旅行などの予定がない日は、ずっとパソコンの前にいることもめずらしくありません。
― リモートワークと出社の割合はいかがですか。
遠藤 我々のチームでは9割以上リモートですね。月1回程度、全社ミーティングや社内イベントがあるときに出社するくらいです。
笹田 STORES には「WORK LOCAL(ワークローカル)」という制度があって、日本全国どこにいても働けるんです。私たちは2人のチームで毎朝オンラインで朝会をしているので、わざわざ出社する必要を感じないですね。
集まり、語り、決めていく。Ruby開発の現場
― スケジュールの中にある「Ruby Dev Weekly」はどのような場なのでしょうか。
笹田 OSS活動では、開発者同士がなかなか顔を合わせる機会がありません。以前はRuby関連のイベントで人が集まってワイワイ話せましたが、コロナ禍でそうした機会がなくなってしまった。それは何だかさびしいねということで、週1回、1時間ほど雑談できるオンラインの場を作ったんです。それが「Ruby Dev Weekly」のはじまりで、もう数年続いています。
遠藤 Ruby開発に関わる有志が、話題があれば気軽に集まって議論できるオフィスアワー的な場ですね。Rubyのリーダーであるまつもとゆきひろ(Matz)さんも参加してくださるので、何か提案や相談があれば直接まつもとさんに話せます。僕と笹田さんが始めた会で、これまで曜日を変えながらも続けてきました。
― 参加人数はどのくらいですか。
笹田 誰でも参加できるように門戸を開いているのですが、平均して10人くらいが集まることが多いですね。Ruby開発に直接携わっている人や、興味を持っている人、どんな話をしているのか気になる人などが自由にZoomに入ってきます。リンクは公開しているので、基本的には誰でも参加可能です。
― 「開発者会議」もありますが、こちらはまた別の趣旨で開催しているのですか。
遠藤 「開発者会議」は月1回開催される、機能提案やバグ報告などのチケットを正式に議論する場です。これはコロナ以前から続いていて、まつもとさんに「こんな提案が来ている」「こんなバグ報告がある」と紹介し、有識者と一緒にどのような方向で対応するか決めています。
笹田 1つの要望が1チケットとして管理されていて、今月はどの提案やバグ報告を話し合うかが決まっています。まつもとさんはRubyの最終決定権を持っている方ですが、お忙しいので日常的にすべてを追い切るのは難しい。そこで月1回、この会議で集中して提案を眺め、議論し、方向性を決めるんです。ここで実際にRubyの新機能が決まることも少なくありません。
遠藤 また、この開発者会議の2日前には有志で準備会を開いて、あらかじめ提案内容を整理し、理解を深めておきます。準備会は4〜5時間ほど枠を取っているものの、実際は2〜3時間で終わることもあります。
Rubyの未来をつくるのが私たちの仕事
― おふたりは昨年から STORES でフルタイムRubyコミッターとして働かれています。働く環境についてどのような感想を抱いていますか。
笹田 私たちのようなフルタイムコミッターを雇ってでも、「Rubyを良くしてほしい」と考える会社に出会えたことに感謝しています。
オープンソースソフトウェアは本来無料で使えますから、わざわざお金を払って開発者を雇わなくても利用できます。それでも、「Rubyをさらに良くすることで、結果的に自社の発展や成長につながる」と経営者が判断し、OSSに投資してくれるのは本当にありがたいことですから。
遠藤 OSS開発者を雇用している企業は、MicrosoftやGoogle、Shopifyなどがあり、特に大手では戦略的に多くの開発者を投入しています。それも素晴らしいのですが、STORES の際立った特徴は、自由に開発をさせてくれる点にあります。たとえば、「この機能をRubyに入れてくれ」といった自社にメリットのあるような要求がまったくないんです。逆に、もう少し要望があってもいいかなと思うほどですが(笑)。実際は何の制約もなく、従来どおり自由に開発活動を続けさせてもらっています。
― OSS開発者としてやりがいを感じるのはどんなときでしょうか。
笹田 Rubyは非常に多くのユーザーが使っています。自分が作ったRubyの土台部分の機能やフレームワークを、ユーザーが工夫して使ってくれている様子を見ると、やりがいを感じられますね。人々が喜んでくれたり褒めてくれたりすると、純粋にうれしいですから。
遠藤 作った機能が他人に使われていると分かればもちろん嬉しいし、それはやりがいの1つです。でも正直なところ、一番やりがいを感じるのは、自分が欲しかった機能が手元で動くようになったときなんです。他の人のことより、まずは自分が便利に感じられることが、実は大きなモチベーションになっています。
― ユーザーからのフィードバックは、どんな形で届くのでしょう。
笹田 私はRubyの土台の部分を扱っているため、ユーザーの方は直接は気づかないことも多いです。ただ、「性能を改善しました」と公表すると、イベントやブログ記事などで「うちのサービスがこれくらい速くなりました」といった反応を耳にすることがあります。そういう声を聞くと「やってよかったな」と思いますね。一方で「悪くなった」という声が届くこともあるので、それはそれで改善のきっかけになります。
遠藤 僕の場合は、直接話を聞くこともありますが、それよりも公開されているコードを見て「自分が提案した文法が使われている!」と、実際に使われているコードとの出会いで知るケースが多いです。
― STORES に在籍しているおふたりならではの、Ruby開発者としての関わり方はありますか。
笹田 私たちが在籍していることもあって、STORES には開発中の新しいRubyバージョンを社内で早期に試せる環境を作ってもらいました。これによって、もしテストで問題が起きれば、「Ruby側を直すべきか」「STORES のサービスを修正すべきか」をすぐに判断することができます。
たとえば、互換性問題がないと思ってRubyに入れた機能が、実際のサービスで大量のエラーを出した場合、「互換性に問題があるから機能を戻そう」という判断がすぐにできるのです。また、STORESとしても、いつかは新しいRubyのバージョンに対応しないといけないので、それを早めに試すことで最新版への移行を楽にすることができます。
― Rubyと STORES のサービス双方の改善につながるフィードバックループが生まれているのですね。
OSS開発者という選択肢 ~若手エンジニアへのメッセージ~
― おふたりがRubyのコミッターになったきっかけを教えてください。
遠藤 私は大学で情報科学を学び、就職先もソフトウェア関連の研究職でしたが、仕事はソフトウェア開発に100%打ち込める環境ではありませんでした。そこで、趣味としてソフトウェア開発に力を入れたいと思っていたときに出会ったのがRubyだったんです。バグ報告や修正を楽しみながら続けていたら「コミッターになりませんか?」と声をかけてもらいました。
当時はRuby 1.9というバージョンに大きな変更が入ったばかりで、バグや改善の余地が多くありました。それを自分なりに直していくうちに、自然とコミッターになったという感じですね。
笹田 私はRuby 1.9で新しいバーチャルマシンを導入する作業を担当していて、その経験がコミッターになるきっかけでした。
― OSS開発に興味を持った若手エンジニアが、最初の一歩を踏み出すにはどのようなアプローチがおすすめですか。
笹田 Rubyに限らずOSS全般に当てはまりますが、まず「ソースコードがいじれる」という点がOSSの魅力です。例えば多くの人は、プログラミング言語は教科書で学ぶだけで自分では変えられないものだと思っているかもしれません。でも、RubyのようにOSSで公開されている言語は、実際にソースコードをダウンロードして、ちょっと変えてみることができるんです。
自分が理想とする機能を自分で加えてみると、意外と簡単に思いどおりのものができたりします。そうして生まれた改善を、プルリクエストとしてコミュニティにおすそ分けすれば、世界が少し良くなります。それが積み重なっていくのがOSSの醍醐味です。まずは怖がらず、触れてみることをお勧めします。
そして、若い開発者にもぜひRubyを使っていただけるとうれしいですね(笑)。
遠藤 私からのアドバイスは、イベント参加前に「名刺代わりの貢献」を作っておくことです。たとえば、イベント前に簡単でいいのでバグ修正や改善をプルリクエストで送っておけば、当日「実はこんなPRを出したんですけど…」と声をかけるきっかけになります。
もしマージされていれば「ありがとう」と直接感謝を伝えられますし、マージされていなければ「このPR、見てもらえますか?」と自然に話を切り出せる。そうした実際の行動があれば、初めて会う人とも技術的な話題で盛り上がりやすくなります。結果として、コミュニティへの関わり方が大きく変わるのではないでしょうか。
取材・執筆:河原崎 亜矢