こんにちは、プラットフォームサービス開発部の中村です。
最近は勉強会等での司会を務めさせていただいている機会もありますので、もしお目にかかる機会がありましたらお手柔らかにお願いいたします。 tech-blog.optim.co.jp
VueFesに向けた勉強会の開催も近々予定しておりますので、ご興味がありましたらぜひconnpassより株式会社OPTiMのメンバーにご登録ください。
前置きは長くなりましたが、先月 7/19(金) - 7/21(日)に最大2泊3日のOPTiMハッカソン2024 Summer (社内ハッカソン) を実施しました! これで3回目なのですが、今までテックブログに寄稿することができていなかったので、どのようなことをしたのか運営目線でのレポートをお届けしようと思います。
その前に...
OPTiMハッカソンとは?
昨年より私をはじめ、社内の有志によって提案・企画・運営されているハッカソンです。 オフィスとは離れたホテルやコテージを使わせていただいた上で、1泊2日〜ガッツリ開発と向き合える時間を用意して開催しています。実績としては夏(6〜7月ごろ)と冬(11月ごろ)の年2回、合計3回実施しています。3回目ということもあり、運営側も参加側もだいぶナレッジが溜まってきています。
目的はいくつかあり、今後も変わっていくのだと思いますが、直近の主なものとしては 「部署・チーム・年齢を超えて仲間を知る」こと です。20〜30名程度の参加者で行っており、若手〜ミドルのエンジニアの参加者の割合が多いです。若手だけでなくベテランの エグゼクティブエンジニア(=トップエンジニア)やシニアエンジニアも毎回参加している ため、技術力の高いエンジニアと密なコミュニケーションを取ったり、ベテランの技術を盗むことができる場にもなっています。
宿泊費・交通費は会社からの補助で運営されており、食事やお菓子、ハッカソンのお供"エナジードリンク"などは参加者で負担しています。
OPTiMハッカソン 2024 Summer
今回も有志の参加を募ったところ、合計35名の募集がありました。宿泊施設の都合でオーバーしてしまったため、一部抽選にて参加者を決定しました。
実は今回抽選の結果惜しくも漏れてしまったメンバーの一部で、裏ハッカソンが並行開催されている ことを知るのは後になってからだったのでした。
今回の参加者層は以下のようになりました。
- エグゼクティブエンジニア: 1名
- シニアエンジニア: 3名
- マネージャー(運営): 2名
- エンジニア: 14名
- リーダー/スタッフ: 4名
- 2024年新卒(エンジニア): 5名
なんと4月に入社したばかりの精鋭新卒エンジニア5名の参加もありました! 最年長との歳の差は20歳ほどもあり、まさにハッカソンならではのコラボレーションが実現しました。
キックオフ & チーム発表
今回は運営側がチーム編成を行い、できる限り普段関わりのないメンバーが混ざりつつ、テックリードができるメンバーを配置できるような編成を組みました。そしてキックオフで初対面! 開催までの1ヶ月の間に何をするのかを決めていきます。
今回は最大2泊3日として金曜日の定時後にオフィスから出発するメンバーと、土曜朝イチ出発メンバーに分かれての現地移動となりました。
1日目
初日は23時ごろ現地到着となったので、本格スタートする明日に備えて役割等を決めて寝床に着きました。(一部1日目からエンジンフル回転のチームもあったという噂が)
新幹線移動中も高ぶる気持ちを抑えつつ、黙々とスタートダッシュを決めます。
2日目
朝イチメンバーも合流し、9時30分から本格的にスタートします。今回はコテージ泊となったため、1部屋に全チームが集まる形式となりました。
あちらこちらから絶えず技術相談の声が止まらずに開発が進んでいきます。
チームの垣根を越えて - 「ここは、このように実装した方がいいと思う」 - 「ここのせいで動いてないと思うから、こう修正したら動くんじゃない?」
など色々な課題に対して、みんなで協力して解決していきます。
開発に集中しているとあっという間に夜。
頑張るメンバーのために運営(私)たちは、おにぎり等の軽食でカロリーでサポートしていきます。
何やら椅子を撮影しているような...気になる動きをするメンバーも...何を作ってるんでしょうか??
3日目
ガッツリ2日目に開発をしたコテージに別れを告げてオフィスへ戻ります!
オフィスに到着後は最後の追い込みです! デモが動くように確認をしつつ、成果発表の準備を行います。
成果発表!
いよいよ最後の成果発表となります!
チームA 「コミュ促マッチングアプリ〜ハートコネクト〜」
OPTiMでは福利厚生の1つに「コミュニケーション促進費」という制度があります。
主にランチ等で利用されることが多いのですが、その際の参加メンバーのマッチングを促進させるためのアプリケーションでした。
Microsoft GraphAPIとの格闘をはじめ、外部のAPIを使いつつ形にできていました。
チームB 「GitLab 全文検索」
過去のTECH BLOG でも少し取り上げていますが、OPTiMでは開発の一部でGitLabを利用しています。 日本語系の検索が弱いため全文検索をできるようにしようという渋めの取り組みでした。 テーマはチームごとに決めていることもあり、開発効率から社内課題解決・新技術チャレンジのように広い成果物が出てくるというのも面白いです。
チームC 「Usdzeeeeeeeee」
OPTiMではiPhoneのLiDARセンサーを用いた測量アプリ・ソリューションの「GeoScan」を開発・販売しています。
その関係もあってiOSアプリを開発しているチームもあるのですが、iOSのAR関連の機能のObject Capture を使ってみたいということで、キャプチャーしたものを爆発させるアプリケーションを開発していました。
キャプチャーされた人が見事に爆発しました... ? (爆発ロジックは結構ギリギリで動くようになったとのことなので、もう少しこだわりたかったようです)
チームD 「おぷなび」
今回はなんとチーム間コラボレーションも実現されました!
チームAのハートコネクトでマッチングした後に、制度を利用するための申請をするような事務手続きがあります。これを半自動化・簡略化してくれるようなサービスでした。
こちらも自分たちのサービスだけでなく、外部SaaSやAPIも利用しており なんとハッカソン期間中でk8s上で動作するような状態 まで仕上がっており、さすがというべきでした。OPTiMではこのようなeasy deployのための共通インフラ基盤をPlatform engineeringチームが開発・メンテナンスしているため、どこかの機会でその話も共有できればと思います。
チームE 「Quick Knock」
こちらのチームはクイズのアプリケーションでした。 「日本人は一番勤務外で学習しないというデータが一例としてある」という壮大なテーマから、今アツいLLMを利用してクイズ自動生成サービスとして完成させていました。
チームF 「街を歩けば」
こちらのチームは今ホットなLLMを利用し、観光案内提案をするような内容でした。 Google Maps Platformとも連携し、実用性も高めたサービスとなっていました。OPTiM本社近く(浜松町)の観光案内ルートになぜか東京タワーが入っていない点など、あえてメジャーどころを外す戦略は面白かったです。(意図しているのかはさておき)
チームG 「OPTiM イベントタイムライン」
こちらのチームは社内で開催されている勉強会や、コミュニティ活動、部活動のようなイベントを可視化できるようにするサービスでした。
この手のサービスで大切なのは「どれだけ使うときに面倒な手間が発生しないか」というところがポイントだと思います。このサービスでは 各種イベントの予定を作る際にイベントタイムライン用のBotユーザーを追加で参加者に入れておくだけ というEasy to useな登録方法だった点が印象的でした。
裏ハッカソンチーム「某モンスターゲームの図鑑を揃えるゲーム」
画像が載せられないのが残念ですが、開発のコミット数に応じてボールをもらうことができ、それを使ってモンスターを捕獲していくことができるという日々の草を生やす活動(リポジトリへのコミット)モチベーションを上げるようなサービスでした。 せっかくなので同じ場所で発表してもらい、裏ハッカソンだったからこそのさらに自由なテーマでの取り組みとなっていて、こちらも非常に面白かったです。iOS ネイティブアプリ開発初チャレンジの新卒スタッフもいたようです。
ハッカソンを終えて
3回目のハッカソンとなりましたが、回を重ねるごとにレベルも上がってきているため、参加ハードルが上がらないか心配になる嬉しい悲鳴のような状況になっています。 実際に新卒メンバーからは 特に技術力や開発スピードの差を直接感じる場所 になったようで、参加後に開発モチベーションが上がったという声は多く聞かれました。また当初の目的である 「部署・チーム・年齢を超えて仲間を知る」こと に関しては、後日アンケートで100% 人に対する発見があったという回答を得ることができました。
第4回となる冬開催に関しても精鋭企画中となっているため、また次回もどのようなアイデアが生まれてきたのかという内容は共有したいと思います!
OPTiMではチームで協力し、難しく大きな課題を楽しみながらチャレンジしていきたいというメンバーを大募集しております。 ご興味がありましたら、下記フォームよりご応募ください。