🤔

初ハッカソンを振り返って

に公開

先週末、人生で初めてハッカソンに参加してきました。

ありがたいことに最優秀賞をいただきました。

ただ、賞以上に「チームで動くものを作り切った」という経験が強く残っています。
いま振り返ってみると、1週間の記憶は「焦り」と「エラーログ」でかなり埋まっています。

ただ、終わったあとに手元にプロダクトが残っていて、チームで最後まで作り切れた実感がありました。技術的にはまだまだ未熟ですが、それでも強烈な期間を走り切れたので、備忘録としてまとめておきます。


キックオフ

今回のハッカソンは、いきなり当日スタートというより、1週間前にキックオフがありました。
ここでお題や方向性を確認して、ざっくり役割や作るもののイメージをすり合わせました。

この「事前に一回集まっている」というだけで、当日の立ち上がりがだいぶ変わるなと思いました。逆に言うと、ここで詰め切れなかった部分が、あとで効いてくることもあります。


チームと作ったもの

今回作ったのは、国会中継をAIVtuberがリアルタイムで解説する『GIROLOG』というサービスです。


今回のお題が「社会課題を分かりやすく再編集して伝える」という趣旨でした。
そこで自分たちは、「伝える」の部分を強くするために、ただ文章を出すだけではなく、AI Vtuberが解説してくれる形にしました。

今振り返ると、このお題とAI Vtuberの相性が良かったのかもしれません。社会課題は内容が重くなりがちで、文章だけだと離脱されやすいです。そこを“声”と“キャラクター”で入口を作れるのは、強みだったと思います。

自分は個人参加だったので運営側で決めていただいたチームでの参加でした。
チームは3人でした。

  • Aくん:フルスタックでインフラまで対応できる、かなり頼れるエンジニア
  • Bさん:自分と同じくハッカソン初参加の先輩
  • 自分

自分は主に、STT(音声認識)、配信画面のUI構築、それとロゴ制作などを担当しました。STTはWhisperを使いました。


進め方

スケジュールはざっくりこうでした。

  • ~当日:事前開発期間
  • 1日目:対面で開発
  • 2日目:午前に開発、午後に最終発表

対面開発は、作業が進むというより「意思決定が速い」のが一番大きかったです。Discordだとどうしてもラグがでてしまいますが、対面だと細かい確認がその場で終わるので、迷う時間が減りました。
その一方で、時間が有限なので「今この瞬間に何を捨てるか」も早めに決めないと、間に合わない感じがありました。


環境構築でつまずき、VMで開発することに

開発初日、Discordで集まって初回MT。プロダクト案とか諸々決めました。
最初に詰まったのは実装ではなく環境構築でした。
python,node周りでエラーが続き、原因の切り分けも思うように進まず、時間だけが過ぎていきました。

見かねたAくんが、

「VM(仮想サーバー)を立てるので、その中に入って開発しましょう!」

結果として自分は、VMの中で開発を進める形になりました。申し訳なさはありましたが、その分「自分の担当範囲だけは絶対に落とさない」と割り切って、やることを絞って進めました。


〆切直前のトラブルと、最後に残ったもの

開発が進んで形になっていくほど、最後の詰めでトラブルが起きたときのダメージも大きくなります。
今回も提出直前はかなりバタつきましたが、最終的には動くところまで持っていけました。

このあたりは、作業量の問題というより「チームで同時に動けるか」が重要でした。誰が何を触っていて、どこで止まっているかを共有できているかで、復旧スピードが変わります。


技術以上に「伝え方」と「連携」だった

今回の学びは大きく2つでした。

1つ目は、「伝える」というお題に対して、表現の形がプロダクトの価値になるということです。
AI Vtuberは技術的に派手なだけではなく、「社会課題を分かりやすくする」という目的に対して、手段として意味がありました。

2つ目は、チーム開発では連携がそのまま完成度に直結するということです。
個人開発なら詰まっても自分の問題で終わりますが、チーム開発では一人の詰まりが全体の詰まりになります。ここは実感として理解できました。


さいごに

結果として、ありがたいことに最優秀賞をいただきました。
もちろん嬉しいのですが、それ以上に「短い時間の中で、チームで動くものを作り切った」という貴重な経験が一番残りました。

今回の経験は、間違いなく次の一歩の材料になりました。
また挑戦します。

Discussion