Tech KAYAC Advent Calendar 2023 の11日目です。
こんにちは。 専らドッグフードを食べる側の長田です。 もちろんリアルな犬のはなしではなく、ドッグフーディングのはなしです。
https://ja.wikipedia.org/wiki/ドッグフーディング
ドッグフーディング (英: dogfooding) または「自社のドッグフードを食べる」「ドッグフードする」(Eating your own dog food、Drinking your own champagneとも言う)は、コンピュータ業界において、自社製品を開発して利用する組織の習慣で、組織が実際の使用法で日々自分たちで製品を利用しながら製品テストを行うことである。
カヤック由来のOSS
実はカヤック(社員名義も含む)はOSSなプロダクトをそこそこの数公開しておりまして、実際の業務でも使っています *1。
以下に社内で出番が多いもの挙げてみました。
- https://github.com/acidlemon/mirage-ecs
- https://github.com/fujiwara/ecsta
- https://github.com/fujiwara/lambroll
- https://github.com/handlename/ssmwrap
- https://github.com/kayac/ecspresso
- https://github.com/mashiike/setddblock
- https://github.com/mashiike/shimesaba
※今回は、それぞれの紹介については省かせていただきます。
困ったらすぐ質問できる
業務で使用するということはつまり、OSSプロダクトの利用者が社内、つまりすぐ近くにいるということです。 開発者・利用者の距離が近いことには、双方にメリットがあります。
- OSS開発者
- 利用者が社内にいるのでヒアリングしやすい
- 利用者とバックグラウンドが近いので突飛な要望が来にくい
- 実装の相談もしやすい
- OSS利用者
- すぐ話しかけられるところに開発者がいる安心感
- 開発者が社内にいるので気軽に要望を伝えられる
- 使い方が分からなくてもすぐ質問できる
社内ドッグフーディング事例
例に挙げたOSSプロダクトのうち、mirage-ecs と shimesaba のドッグフーディング例を紹介しましょう。
mirage-ecsの場合
mirage-ecs は、v1.0.0 で認証機能が追加されました。
これにより、いままでALBやnginxで行っていたmirage-ecsコンソール 及びmirage-ecsが起動した環境アクセス時の認証を、mirage-ecsだけで完結できるようになりました。
ちょうど新規に開発環境をセットアップする必要があったので、 早速認証機能を使ってみるぞーということで導入してみたところ、 実際のユースケースをカバーできない部分がありました。
というのを社内のSlackチャンネルでメンテナである fujiwara に質問したところ、
10分ほどで原因が判明し、
その10分後には対応版がリリースされ、
質問から40分で解決しました。マッハ
ちなみに、mirage-ecsについては当ブログにいくつか記事がありますので、お時間のある方は参照ください。 techblog.kayac.com
shimesabaの場合
少し前の話になりますが、 shimesaba の事例も紹介しましょう。
Lambdaでタイムアウトしちゃった〜というのをなんとなくSlackに書いたところ (このときはLambda funtionのタイムアウト設定を変更することで対応できたので、特に要望というわけではありませんでした)、
それを覚えていた開発者の mashioka からのヒアリングがあり、
大幅に高速化され、
そして新バージョンがリリースされました。感謝
shimesabaについても当ブログに記事がありますので、気になった方はどうぞ。 techblog.kayac.com
まとめ
社内ドッグフーディングによってOSSプロダクトがハイペースで改善されていく様子が伝わったでしょうか?
利用者同士も近いので 「このOSSプロダクトを使ってみたいんだけどどんな感じなんだろう?」 「こういうユースケースで使うといいぞ」といった情報交換のコストも低いですし、 「OSSとして公開する」という活動を間近で見ることができるので 自分でもOSSで作ってみようと気になりやすいように感じます。
総じて OSSプロダクトに触るためのハードルが低い環境 と言えるでしょう。
それではみなさま、よいクリスマス & OSSライフを!
カヤックではOSSを書いたり活用したりしたいエンジニアも募集しています!
*1:業務内の需要から生まれるので、当然といえば当然なのですが