Speee DEVELOPER BLOG

Speee開発陣による技術情報発信ブログです。 メディア開発・運用、スマートフォンアプリ開発、Webマーケティング、アドテクなどで培った技術ノウハウを発信していきます!

RubyKaigiに参加してプロダクト価値を高めるためにOSS をやっていきたいと再認識した話

こんにちは、新卒で入社してから早くも 1 年がたってしまったことに驚きを隠せない、DX 事業本部エンジニアで 22 新卒の高島です。

本ブログでは、プロダクトを伸ばすために OSS をもっとやっていきたいと気づけた話として、直近参加した RubyKaigi 2023 で得られた学びをまとめたいと思います。

目次はこちら

OSS 活動について

私は昨年の 12 月からクリアコード結城さんのサポートを受けながら、週 1 回業務時間を使って OSS 活動を行っています。
特に、業務の中で使っているライブラリや、開発ツールの OSS に Issue を立てることやコミットを送るというようなことをしています。

Speee の OSS 活動に関しては、以下に詳細が書かれていますので、合わせてご覧ください。

tech.speee.jp tech.speee.jp

また、昨年行ったアップデートプロジェクトを通して事業は OSS 無くしては成り立たないなと身にしみて実感し、もっと OSS に関わっていきたいという思いが強くなってきました。
アップデートプロジェクトに関しては、昨年のアドベントカレンダーで書きましたので、こちらも見ていただけると嬉しいです。

tech.speee.jp

私が RubyKaigi にオフライン参加した第 2 の目的

最近は責任領域がグッと広がり、新規プロダクトの開発チームでリードエンジニア役割を担っています。
役割が広がったことで、「OSS をやっていきたい!」という気持ちと並行して、「より多くの価値をビジネス側の方と協力しながら生み出していきたい!」という強い気持ちが生まれてきました。
特に、OSS 活動を通して、日々の業務で OSS を使うだけでなく、見つけたバグを改善する、フィードバックするといった OSS への貢献を通して、プロダクトを伸ばしていける感覚は芽生えていたのですが、どうしたらもっと OSS をやりながらもプロダクト開発をやっていけるのだろうと考えることが多かったです。

そのため今回 の RubyKaigi では、セッションを聞いて技術的なキャッチアップをするだけではなく、RubyKaigi に参加しているコミッターの方々と話すことで、「リードエンジニアとして 、OSS とどう向き合っていくべきか」を知るという漠然としたテーマをクリアにするという第二の目的を持って参加しました。

以下で、実際にお話しさせていただいて、得られた気づきをまとめます。

「プロダクト開発」 と 「OSS 活動」 はトレードオフ関係ではない

役割が広がったことで、半年後の事業目標に対してチームとしてどうすれば達成できるかを常に考えるようになりました。特に、見る時間軸が伸びたことで、もっと早く価値を届けたい、そのためにまずはチームのアウトカムを最大化させたい、という思いがより強くなった気がします。
こうした思いが強くなればなるほど、 OSS をやっていきたい気持ちに反して、プロダクト開発に時間的に投資したいという気持ちが先行して、プロダクト開発と OSS 活動のバランスがかなり難しくなりました。結果、週 1 回の OSS 活動の時間でしか OSS にコミットすることができない状態が続いてしまい、誰かにそう言われたわけではなく内心で「プロダクト開発と OSS 活動が時間的なトレードオフ関係にある」のではないかと思ってしまっていました。

しかし、RubyKaigi に参加して、お話を聞く中で、 「プロダクト開発」 と 「OSS 活動」 はトレードオフな関係ではない。そもそも独立していない、共存しているものであるということに気づくことができました。

OSS と プロダクトは 表裏一体な関係である

OSS は事業を伸ばす上で切っては切り離せないもの、表裏一体であることは一年弱働く中で強く理解していたのですが、RubyKaigi に参加する前の私は、具体的にどうやって向き合っていけばいいのかがわからなくなっていました。特に、今までの OSS 活動は、プロダクト開発の中で見つけた課題をリストアップしてテーマとして取り上げて調査したり、コミットしたり、フィードバックをしてきました。
これ自体は悪くないですが、こういった構造はプロダクト開発と OSS 活動が別の時間軸で進行しているという感覚を無意識的に生み出していました。そのため、OSS にコミットすることがプロダクト価値につながることはわかっていてもどうしても事業とは遠いところに感じていました。

そして今回 RubyKaigi に参加して、表裏一体である感覚を強めるためにも

「プロダクトの OSS にもオーナーシップを持つ」

ことが大切であるという観点を得ることができました。

具体的には、プロダクトに、「OSS ライブラリを入れたら終わり!」とならず、OSS を取り入れるということはそれ自体も管理対象であるという意識を持つことが大切であると知ることができました。
OSS にオーナーシップを持つことができれば、日々の改善として当たり前にアップデートをしていくことができます。なにより、プロダクトにとって負債となり得るならば「パッチを当て PR を送る」という改善 Issue をプロダクトのバックログに積むことができます。
特に、このバグは既知だ、誰かが直してくれるまで待つ、といったスタンスから改善していく必要があるなと考えられるようになりました。

そして、上記のようなスタンスで OSS と向き合うことで、「プロダクト開発と OSS 活動 はトレードオフ関係ではない」と自然に思えるようになったとともに、OSS 活動 をやっていくことが当然事業のユーザ価値につながっているという感覚をより強く持てるようになりました。

しかし、こういったスタンスを持っていたとしても、OSS に「どう Issue を立てたらいいかわからない」、「どう PR を作ればいいのかわからない」、という不安には今後もぶつかると思います。
実態は、普段の業務の Issue と変わらないことが多いのですが、未だに「どう Issue を立てれば良いか」、「そもそも Issue を立てるべきか」という小さいところで時間をかけてしまうことが多々あります。そういった悩みごとに対して、OSS 活動でのサポートをもっと活用していけると良いのだろうと思っています。

また、コミッターの方々に OSS を始めたきっかけを聞いて、プロダクト開発の中で OSS 活動 を当たり前にしていくためには、まず OSS に関わる機会を増やす必要があるなと思いました。
そして、そういったきっかけは、自分からもっと作り出せると気づきました。

OSS に関わる機会は自分でもっと作っていける

RubyKaigi に参加するまでは、今の私が OSS にコミットできる機会に遭遇するのは、業務の中で見つけたバグ修正・フィードバックくらいしかないと思っていました。そのため、この半年は実務の中で OSS を使う上で課題が生まれたら「コミットチャンス!」と思って OSS 活動の時間を使って調査などをしていました。

しかし、いろんな方に OSS を始めたきっかけを伺って、「OSS にコミットする(関わる)機会ってもっと自分から作り出せるな」と気づきました。

例えば、

  • 普段使っているライブラリがもっとこう使えれば便利なのではないか、という観点で改善や機能リクエストを出す・もしくはそれをコミットする
  • 試してみたい gem のメンテナンスが止まっているときに、「メンテナンスが止まっている」から入れないではなく、メンテナンスを引き継ぐ気持ちで取り込んでみる
  • 普段の業務でよく抽象化している処理を切り出して gem にして公開すればみんな便利になるんじゃないか、といった観点で新しく作ってしまう

などです。
もっと自らアクションを取れば OSS に関わっていく機会も必然と増えるという当たり前な事実に気づくことができました。そして、この気づきを通して、プロダクト開発をよりドライブさせるために OSS をもっと使っていく、改善していく、作っていく、そういった観点で開発していきたいと思えるようになりました。

とはいえ、やはり最初は課題を見つけることは結構難易度が高いと思っています。なので、今はまず OSS にコミットするという感覚をより強固にするために、課題に遭遇する機会を増やす必要があると感じています。
具体的には、アプリケーションに関わる Ruby や Rails、インストールしているライブラリをできるだけ最新にして未知のバグに遭遇するという量を増やしていく必要があるなと思っています。
そこで最近は、チームとしてどうすれば継続的にバージョンアップしていけるかを考え、トライし、より良い方法を模索しています。

まとめ

本ブログでは、「リードエンジニアとして 、OSS とどう向き合っていくべきか」という RubyKaigi 参加の第 2 のテーマについて学びや気づきをまとめました。
特に、RubyKaigi 参加前は、OSS 活動とプロダクト開発は近いようで遠い別物という感覚があったことにも気づけました。そして、そういった OSS の改善は、日々プロダクト開発の中で改善 Issue として取り組んでいることと同じ感覚で取り組めば良いことにも気づくことができました。

まだまだ道半ばですが、プロダクトを前進させるためにも OSS をもっとやっていきたいと思っています。がんばります!

謝辞

今回の RubyKaigi では、多くのコミッターの方々とお話するという目標があり、OSS 活動でお世話になっているクリアコード須藤さん、弊社 VPoE の大場さんに多くの方を紹介していただきました。ありがとうございました。
また、このブログで書いた気づきをたくさん得られたのは、お話しさせていただいた方々のおかげです。本当にありがとうございました。

RubyKaigi の思い出

RubyKaigi は過去 2 回オンラインで見たことがあり、今回初めてのオフライン参加でした。大学で研究をしていた際も、コロナの影響で学会のようなイベントはすべてオンライン開催だったので、こうしたイベントをオフラインで参加することが初めてでした。そのため少し緊張もありましたが、思い返すと楽しかった記憶しかないです!
特に、Ruby コミュニティにさらに深く飛び込めた感じがあって、嬉しいです!

そんな RubyKaigi での思い出を写真で少し振り返ってこのブログを締めたいと思います。

Ruby のパパであり、2015 年から弊社の技術顧問である Matzとスポンサーボードの前で写真を撮らせていただきました!

Matzとの写真

RubyKaigi の会場はとても広く、入り口は RubyKaigi のレッドカーペットがひかれていました!

RubyKaigi会場のエントランス

Ruby Committers and The Worldの様子です。これからの Ruby について多くの議論が行われました。「Audience Questions」のパートでは、インラインコメントで型注釈できることについて参加者にアンケートを取る場面がありました。

Ruby Committers and The World

来年の RubyKaigi の開催地を発表した際の盛り上がりはとても凄くて、歓声や拍手で会場を埋め尽くしていたことを覚えています。現地参加の良さの一つはこういった会場の雰囲気を直接感じられることだなと思いました。

来年のRubyKaigi2024の開催地発表の様子

RubyKaigi も初めてオフライン参加だったのですが、長野県松本市に行くのも初めてでした!天気が良い日に松本城を見れてよかったです!

松本城公園の入り口
松本城

RubyKaigi 本当に楽しかったです!
参加して、技術的な学びもたくさんありました。そして、いろんな方と直接お話させていただき、いろんな気づきもありました。
そんな RubyKaigi に参加する機会をいただきありがとうございました!

そして、クリアコード須藤さんが書かれたブログで、私のことを少し書いてくださっているので、 合わせてご覧ください!

www.clear-code.com

最後に

Speee では一緒にサービス開発を推進してくれる仲間を大募集しています!
こちらの Formよりカジュアル面談も気軽にお申し込みいただけます!
Speee では様々なポジションで募集中なので「どんなポジションがあるの?」と気になってくれてた方は、こちらチェックしてみてください!もちろんオープンポジション的に上記に限らず積極採用中です!!!