初ハッカソンを振り返って
先週末、人生で初めてハッカソンに参加してきました。
ありがたいことに最優秀賞をいただきました。
ただ、賞以上に「チームで動くものを作り切った」という経験が強く残っています。
いま振り返ってみると、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