ZAICOでは、Android・iOS・Rubyエンジニアを絶賛募集中です! 詳しくは、採用ページをご覧ください。
こんにちは、ZAICO開発チームです。
2024年10月の頭に、熱海の貸別荘でリアルハッカソンが開催されました。
弊社は山形県米沢市に本社があり、社員は全国からフルリモートで働いています。
このリアルハッカソンでは、開発メンバーのほとんどが熱海に集結し、泊まりがけでチーム開発を行いました。
この記事では、リアルハッカソンの様子を、自分のチームでの視点でご紹介します。
はじめてのリアル&チームでのハッカソン
ZAICOでは、今までも社内ハッカソンが開催されており、このブログにも今までの社内ハッカソンで開発した内容が何回か紹介されています。
今までの社内ハッカソンは、オンラインかつ個人活動でのハッカソンでした。
今回は、リアル & チームでのはじめてのハッカソン開催となりました。
チームは、学生時代の部活動が近いメンバーで、3-4人の6チームに分けられました。
私は3人チームになり、アプリ開発エンジニア1名、Webエンジニア(Rails, Vue.js)2名で取り組みました。
スケジュール
今回のハッカソンは、このようなスケジュールで行われました。
- オンラインハッカソン 2日間@リモート
- リアルハッカソン 2日間@熱海
遠方に住んでいる方も多いため、希望者は前泊・後泊しても良いことになっていました。
オンラインハッカソン1日目 / テーマ決め
リアルハッカソンが開催される前の週に、2日間、オンラインでハッカソンの準備をする期間が設けられてました。
1日目はテーマ決めでした。
夕方にチームごとにテーマを発表してフィードバックを得るという時間が設けられていたため、そこに向けてテーマを検討しました。
私たちのチームは、事前にチームでやりとりするための Slack チャンネルを作り、esaにチームのキックオフのための記事を起こしていました。esa の記事や Slack で非同期で、何を作るか銘々がアイデアを書き込んだり、設計をどうするかなどの議論を進めて行きました。
事前に、アイデアの設計・実装案まで esa に書き込んでくれたメンバーがいて、すごくありがたかったです。ここで出ていた設計案は、後で実際に作るものが決まって設計に落とすときに採用された部分も多く、事前に見通せていてすごいと後から感じました。
また、ZAICOにはbizメンバーからの機能要望リストがあるのですが、その要望をヒントにしてアイデアを考えてきてくれたメンバーもいました。
この日の午前、bizメンバーの方に協力いただいて、打ち合わせで、どのアイデアがユーザーにとってインパクトがありそうか・ユーザーに求められていそうかヒアリングをしました。
このヒアリングでは、普段、ユーザーから近いところにいるbizの方の肌感を聞けたので、アイデアのどれが筋が良さそうかなど、とても参考になりありがたかったです。
オンラインハッカソン1日目の反省点として、私たちのチームはテーマを広げすぎてしまい、2日の開発期間で終わる量に収まらない見込みが濃厚となり、かつ、夕方のテーマ発表会では、他のチームのアイデアがとても良さそうに聞こえてしまい、不安が募った1日目でした。
オンラインハッカソン2日目 / 設計・タスク洗い出し
2日の最初のチームの打ち合わせにて、1人のメンバーが、開発が2日程度で収まるようにスコープを狭める提案をしてくれました。
この提案がなかったら、1日目に広げすぎたスコープを実装しようとして実装しきれず、迷走していたと思います。この提案には本当に助けられました。
さらに画面案もそのメンバーが考えてくれたので、それを基にして、データの持ち方どうするかなど設計を考えたり、タスクの洗い出しをし、どこまで必ず作るか、もし余裕があったらここまで作ろうなどタスクの優先順位をまとめました。
リアルハッカソン期間は開発できる時間がそれほど多くない見込みだったため、リアルでハッカソンが始まったらすぐ開発を開始できる状態にしておくために、この日のうちに開発用のブランチを切り、マイグレーションや新規のモデルを作るところまで進めておきました。
前泊
とうとうリアルハッカソンの日が来ました。
みんな、様々なところ(山形、宮城、和歌山、愛媛、福岡 etc)に住んでいて熱海が遠い方も多く、前泊組が結構いました。
自分は熱海は2時間程度で行けるのですが、せっかくの機会なので一緒に過ごす時間が多くなると楽しそうだと思い、緊張しつつも前泊することにしました。
前泊組は先に合宿する別荘に入って、夜BBQをすることになっていました。
午前中は家でそわそわしながら仕事をし、お昼前に家を出て熱海へ向かいました。
数ヶ月間仕事ではオンラインでご一緒していたとはいえ、はじめてリアルで会う方たちと、いきなり2泊3日寝食を共にすることになるので、集合場所へ向かうときはとても緊張していました。
熱海駅の足湯前で集合し、(リアルでは)はじめましての挨拶をしました。
実際に会うと、思っていたのよりずっと身長が高い方がいたり、直接会わないとわからないことはあると感じました。
夜はお酒を飲みつつBBQしつつ、卓球やUNOをする人もいて、いきなりたのしい夜になりました。
みなさんと色々交流できたことがなにより良かったです。
次の日からハッカソンが始まるなんて信じられないような雰囲気でした。
リアルハッカソン1日目
朝起きて、朝ごはんは前日買っておいた材料でホットドッグを食べました。そして、なぜかみんなでラジオ体操しました。
目が覚めてきたところで開発開始です。
前日とは打ってかわって、みなさん真剣に急に静かに集中して取り組んでいました。
チームごとにテーブルわかれて場所を決め、なんとなく、他のチームがどんな感じでやっているかはお互いわかるような雰囲気の中での開発になりました。
自分たちのチームは事前に開発の分担を決めていたので、時々相談したり雑談しながらそれぞれのタスクを黙々と進めました。
開発していると時間があっという間でした。
チームで開発を進める中で、困った時、実装について相談したいとき、すぐその場でぱっと一緒に見て解決できるので、リアルで同じコンテキスト持っている状態だと話が早くてたのしかったです。
普段アプリ開発を担当されている1人のメンバーが、Rails の開発もやってみたいと言っていました。事前に環境構築のドキュメントはお渡ししてすでに開発環境は整えてくれていたのですが、この日の夜ぐらい手が空いてきたということだったので、バックエンドの開発部分もお願いすることになりました。
すると、初めて触る Vuetify で、画面の機能を爆速で仕上げてくれました。これもハッカソンならではのチャレンジですごく良かったです。
お昼はお弁当、夜はみんなでカレーを作って食べました。10合の米を炊きました。
この日は、深夜まで起きて開発するチームもいました。
私たちのチームはみんな睡眠しないと辛いメンバーが集まっていたようで、早めに切り上げることにしました。(といっても12時は回っていました)
リアルハッカソン2日目
朝は、ごはんとお味噌汁に加えて、チームごとに、おいしいと思うごはんのお供を買ってきて食べ比べる、という企画がありました。
リアルハッカソンを運営してくれた方々が、いろいろ企画を考えてくださっていたのでたのしかったです。
選りすぐりのごはんのお供と朝ごはんを食べて、開発スタートです。
お昼過ぎ、チームごとに発表会の予定でした。
午前中は開発の続きをしつつ、発表会に向けて仕上げをしたり、発表資料を作成したりデモの準備をしました。
発表会は、熱海以外の場所にいる社内のメンバーも見れるように、Google Meet で繋いで行いました。
他のチームの発表は、新しい技術要素を試しに使ってチャレンジングなことをしているチームが多かった印象でした。自分たちのチームは新たな機能を開発する、というものだったのでチャレンジング要素は少なく、みんなに受け入れてもらえるか少し不安がありました。
ですが、発表したところ、結構みなさんから良い反応をもらえたのでうれしかったです。
感想とこれから
リアルでの泊まりがけのハッカソンを経て、みなさんの人となりが分かってのでコミュニケーションがスムーズになりそうだと思いました。
私は、普段の業務でSlackのやりとりするときに、相手の方のことを思い浮かべやすくなりました。
そして、普段はWeb開発メンバーや同じチームの方との関わりが多かったのですが、モバイルメンバーやコーポレートの方など、直接話したことのある方が増えたことがうれしかったです。
また、業務では個人で開発を進めることが多かったのですが、このハッカソンでチーム開発はたのしい!と強く思いました。チーム開発がスムーズに進められるように、スクラムマスター的な動きをできるようになりたいという思いが個人的に強くなりました。
ハッカソンで作った機能は、ユーザーに使ってもらえるようにリリースできたらうれしいです。
そして、ハッカソンにこれだけ時間を割いて集中できる環境は、本当にありがたいと思いました。
2日間というタイムボックスの中での開発は、時間に限りがあると焦ってしまう自分にとってはとてもプレッシャーでした。ですが、制限内にどこまで作るかということを立ち上げの段階でチームで相談した上でつくっていけたことが良かったです。
はじめてのリアル&チームハッカソンはすごくたのしかったので、これからも機会があれば参加してみたいと思っています。