「個人開発」が「公式機能」になるまでの3年間
最後に登壇したのは、アイキューブドシステムズの岩木祐輔氏(エンジニア)。趣味として続けてきたブラウザ自動操作の個人開発がRuby on Rails公式機能として採用されるに至った経験をもとに、「どのように個人開発を続けてきたのか」を軽妙な語り口で振り返った。

岩木氏は、業務でMDM(モバイルデバイス管理)サービスの開発を担当する一方で、個人的にはブラウザの自動操作に情熱を持っていた。そんな折、Googleのライブラリ「Puppeteer」に出会い、「一目惚れ」と表現するほどの衝撃を受ける。
「精度がめっちゃ出るな、って。これはちょっと使い倒すしかないと思いました」
もともとRubyでサービス開発をしていたことから、このPuppeteerをRubyから扱えるようにしたいと考えた岩木氏。しかし既存のRubyラッパー「Ferrum」は思うように動かず、ついには「ないなら作るしかない」と、自ら実装を始めることになる。

だが、開発は容易ではなかった。JavaScriptには存在する非同期処理(async/await)の概念がRubyにはなく、さっそく2ヶ月ほど行き詰まる。副業でもなく、完全に趣味として取り組んでいたこともあり、何度も心が折れかけたという。それでも、「これは自分(オレ)の役に立つ」「メンテナンスするのは自分なんだから、ちゃんと作りたい」という思いが、岩木氏を奮い立たせた。
こうして3ヶ月ほど経つと、「なんとなく動くものができた」。そうなれば他人に使ってもらいたいと考えるのが開発者のサガ。ところがそれには「品質」「継続性」「存在価値」の3つが欠かせないと気づいた岩木氏は、手を動かして単体テストを整備し、デモ資料をつくり、「なぜこれが必要なのか」を丁寧に語る布教活動を重ねた。


そんななか登場したのが、後継的な位置づけのブラウザ自動操作ライブラリ「Playwright」だった。「これはPlaywrightの時代が来る!」と感じた岩木氏は、年末年始の休暇中に「ついでにRubyからも使えるようにしておくか」と軽い気持ちで実装を始める。
既存のRailsユーザーの利用実態をリサーチし、「System Testという既存のテストフレームワークと接続できれば、もっと自然に使ってもらえる」と仮説を立てて開発を進めた。そして転機が訪れたのは、RailsコアチームからのPull Request。岩木氏のライブラリをもとに、公式機能として取り込む提案が寄せられ、最終的にRails 7.1のsystem_testに実装されるに至った。

自身のコードが公式プロダクトに採用されるという出来事を、「好きでやっていただけなのに、誰かの役に立てて、認められて、広がっていった」と静かに語る岩木氏。最後にはこう締めくくった。「ポーティングして布教することは、開発を行っている沢山の人に貢献できる可能性があります。」
この日、登壇した誰もが、自分なりのスタイルで個人開発に向き合っていた。コードを書く楽しさ、制約と遊ぶ発想、仲間とつながる喜び。そして、趣味が思わぬ形で社会と接続する瞬間。会場にいた多くのエンジニアが、それぞれの話に刺激を受け、何かを始めたくなる気持ちを胸に抱いたに違いない。