こんにちは! kzk_maedaと言います。
atama plusという教育系スタートアップでSRE/データエンジニア/EM的な仕事をしながら、社外ではAWS Community BuilderとしてAWS Startup Communityの運営をしたりしています。
この記事は atama plus Advent Calendar 2023 の1日目です。
atama plusという会社のエンジニア文化や技術的な話、またエンジニアではなくても一緒にプロダクト作りをしているメンバーの話など、多岐にわたる話ができればと思うので、 ぜひカレンダーの購読をお願いします!!!
では今日のコンテンツ
「社内でハッカソンやってたら社外でもハッカソン出ることになり、OSSにまでコントリビュートしていた話」
という長いタイトルの話をしようと思います。
注:お急ぎの方は結論だけ読んでください。
起:社内ハッカソンイベント
弊社では、エンジニアを中心に定期的なハッカソンイベントを開催しています。
ハッカソンの概要については以下の記事にいい感じにまとめられているのでここでは割愛します。
今年の4月に開催された同ハッカソンイベントにおいて、とあるアプリの構想が発表されました。
今年の4月といえば??3月にGPT-4が発表されてChatGPTが盛り上がってきていたくらいの時期ですね!
そんな時流を捉えたアプリ、最近の定義で言うとRAGアプリケーションの一種が社内ハッカソンにて提案され、LLMロジックに手を加えれば社内で実運用できそうなレベルまでプロトタイプが実装されました(この時は僕は実装したチームのメンバーではありませんでした)。
ちなみに今回そのアプリの技術的な話は本質ではないので詳細な説明は割愛しますが、ざっくり言うとこんなやつです。
その後、このRAGアプリケーションの実装を発案者と一緒にするようになり、実際のLLM関連ロジックを触るようになっていきました。
承:社外ハッカソンイベント
そんな社内ハッカソンイベントで生まれたツールにLLMを組み込むための開発を隙間時間で進めていたところ、今年のIVS京都にて下記のハッカソンイベントが開催されることを発見しました。
ものは試しにと思ってアプリを実装して、フォーマットにまとめて提出したところ、ありがたいことにファイナリストに選出されてIVS京都の会場で発表する機会をもらえました。
さて、このハッカソン、「AI+Crypto」という建て付けで行われていたにも関わらず僕はLLM一本で臨んでいたため、最終ピッチで「ところでどこにCryptoの要素が??」という質問により撃沈しましたが( 予選通した審査員に聞いてください!! )、最終6位入賞することができました。
その際の話をメルカリ社主催のLangChain Japan MeetUpで話したときの資料がこちら:
転:OSSへのコントリビュート
このハッカソンでRAGアプリケーションを実装していた時に、当時のLangChainでは欲しい機能が足りておらず、デモアプリではそのロジックは迂回実装するような形で作りました。
が、せっかく今一番勢いのあるOSSにContributeするチャンスでは??と思い立ち、欲しかった機能を実装してPR出してみたら、通っちゃいました。
その後もいくつかの修正や機能追加を行い、たまーにLangChainにContributeする活動をやっておりました。
その話をLLM勉強会で話した時の資料がこちら:
また、この辺りの登壇をきっかけに、いくつかLLM系のイベントで登壇する機会をいただき、そのコミュニティでまた新しい知見が得られる、という好循環状態に入っていきました。
結:ハッカソンから社外活動に繋げよう!!
以上、社内のハッカソンイベントから転じて社外のハッカソンイベントに参加し、そこでの経験が転じてOSSにContributeすることになった話を ありものの資料をかき集めてきて しました。
社内ハッカソンをやって、その成果物をプロダクトに取り入れたり、新規事業の種にしたり、技術負債解消の足掛かりにしたりする事例はそこそこ世の中にあるのかなと思います。
ただ、ハッカソンを開催したという事例の公表はたくさんあるものの、実際にハッカソンで作成されたものがどういったものなのか、それを別の場でも発表してみたらどうなるのか、と言った内容の公表や試みは比較的少ない気がしています。
一方、ここでは「 社内ハッカソンの成果こそ、社外に発信していこう!!! 」ということを主張していきたいです!
なぜ社内ハッカソンの成果を社外で発信することが重要なのか、ちょっと深掘りして考えてみましょう。
社内ハッカソンと普段の仕事との特性の違い
社内ハッカソンは、日常の業務で触っているプロダクトやコードベースに対して、普段の開発とは異なる自由度や創造性を発揮しやすい環境かなと思います。
例えば、常日頃から課題に思っているが解決するための技術調査・検証に時間が割けていない問題に集中して取り組むことができたり、普段は一緒に開発しないメンバーとチームを組むことでセレンディピティが生まれたり、といった新しいアイデアが生まれやすい機会として存分に活用できるかと思います。
社外のハッカソンに比べ、慣れた技術・アーキテクチャ・コードベースに対して自由な発想で臨めるので、発明が生まれやすい場所であると思います!
社外への貢献が社内への貢献に還元される
新しいアイデアが生まれると、それを世の中に出すことで開発コミュニティに対して貢献できるチャンスです。
ここで開発コミュニティに対してした貢献は、自分の資産になるのは言わずもがなですが、社内に対して還元することもできると思います。
社内への還元で言うと、まずは採用や、広報上のプレゼンス向上に繋がりうることは言うまでもないかなと思います。
それ以外においても、社内ハッカソンで生み出されたアイデアは少なからず自社のプロダクトや業務等に関連があるはずで、それを社外に対して発信することで、さらに関連する知見を外で得て、それをまた社内に持ち込んでプロダクト開発に還元することができると感じています。
これを「知の永久機関」とさっき図を作りながら名付けました。
今回の自分の活動はまだ1サイクル目の「知見の還元」に到達したところではありますが、今回の社内ハッカソンをきっかけに社外のLLM系コミュニティに出入りするようになって得られた知見を社内に還元できそうな兆しは見えてきています。
今後もこの「知の永久機関」を回していけるような活動を、自分だけでなく開発チームで取り組んでいきたいなぁと思っています。
終わりに
社内ハッカソンはいいぞ!!!
明日はアプリケーションエンジニア・末廣さんの、「検証プロダクト開発における効率と品質のバランス」です、明日もぜひご覧くださいー!