😭

【しくじり】ハッカソンで大苦戦して分かったAI駆動開発の実践的ハウツー

に公開

初めまして。株式会社CAENの大森と申します。
普段はAI駆動をフル活用してゴリゴリと個人開発しています。

今回、10月25日に行われた < WaytoAGI > Vibe Codingハッカソン に参加してきました。

わずか3時間でプロダクトを開発&発表」というかなりハードなハッカソンだったのですが、AI駆動開発に振り回されて、粗だらけのプロダクトで発表に臨むという、すご〜く恥ずかしい気持ちになりました。

今回は、その体験から会得した、AI駆動開発の血肉ハウツーを紹介します。

今回作ったプロダクト

最近ハッカソンやイベントに参加することが多いのですが、交流会などでSNSアカウントを相手にシェアするとき、毎回焦ってます。「インスタのQRコードどこだっけ?」と、アプリを開いてQRコードを探すあの時間、内心焦りながら魔を繋ぐ時間、とっても苦しい...!!!

そこで今回、複数のSNSリンクをQRコードでまとめて管理できるWebサービスを開発しました。

あらかじめSNSアカウントのURLを登録すると、自動でQRコードが生成されます。
このWEBページからQRコードをサッと取り出すだけで、インスタでもDiscordでも、すぐにアカウントをシェアできます。

血肉ハウツー①「一気に作ろうとするな!」

「時間がないから一気にAIに実装させよう!」はアンチパターンです!
プロジェクトの土台は自分で作り、堅実な機能からひとつづつ指示して実装させましょう!

しくじり話です。

今回のハッカソンは時間がないので、要件をゴリゴリ作って、AIにボンと全部渡したら、ワンショットで一気にプロダクトが作っちゃおうとか思いました。

要件をゴリゴリ作って、CodexCLIにボコんと全部渡して20分待ちました。

ぜ〜んぜん要件と違うプロダクトが出てきました。

その状態のプロダクトから、不要な機能を削除して、意図が違う機能を修正して...とするのはとっても大変です、間に合いません。というか、不要な残留コードが残りまくるので品質的にもBADです

急がば回れ。
プロジェクトの土台を落ち着いて作って、ひとつひとつ堅実に機能を重ねていく。
これが一番大事でした。

血肉ハウツー② 「Codexさん、超速ハッカソンと相性悪いぞ!」

わたしは普段のAI駆動開発では、Codex CLIをメインツールとして愛用しています。
なのですが、「超高速AI駆動ハッカソン」という独自の戦場では相性が悪いと感じました。
理由が二つあります。

相性悪い理由①「Codexさん!実装遅いぞ!」

私が普段CodexCLIを使用するときは、high-reasoninggpt-5-codexモデルを使用しています。
ClaudeCodeよりも破壊的な変更が少なく、着実に実装を積み上げていける点が助かっています。

ただし、実装が遅い!
普段は許容できるが超速ハッカソンだと許容できない!

今回まず最初にCodexを使って実装を始めたのですが、あまりの遅さに他の手法も試しました。

最終的には今回、ローカルでのAI駆動開発には、Codex CLIの他に、ClaudeCode(ClaudeSonnet4.5)と、Cursor Agent(ClaudeSonnet4.5)を使いました。

体感の実装スピードは、
・CodexCLI:1
・ClaudeCode:2.5
・Cursor Agent:10

って感じでした。

もちろん、品質とはトレードオフな部分もありますが、ハッカソンにおいてスピードは正義!

10分の1の時間で間違えて、10分の1の時間で直せるんだったら、開発スピードは5倍早いということですね!

相性悪い理由②「Codexさんが要らない実装をモリモリ盛り込んでくる!」

これは本当に困りました。

CodexCLI、要件として伝えた内容以外の機能を「良かれ」と思って、モリモリ盛り込んできます。
さらに、過剰なほど説明のテキストをそこかしこに差し込んできます。

困った。


過剰な説明テキスト。言わなくてもわかるっつーの!


ダークテーマも、テーマカラーも要るなんて一言も言ってないんだが?

これは特に、「AIに一気に実装をさせてしまった × CodexCLIの悪癖」の相互作用で大暴れした結果です。

今回作ろうとしたプロダクトは、明確に完成イメージが頭の中にあり、「なるべくシンプルに、だけどUIUXを洗練させたプロダクトを作りたい!」という姿勢だったので、たくさんの贅肉がついた実装にかなり苦しみました。

血肉ハウツー③「1本に賭けず、並行で作れ!」

ここまで、さんざんAI駆動開発に困らされた話をしましたが。それでも最終的には、3時間の制限時間内でプロダクトを形にして、発表をしました。

九死に一生を得たのが、「1本だけで進めず、並行してプロダクトを作る」 という作戦のおかげです。その話をします。

なぜ並行開発が必要か

AI駆動開発は超高速スクラップ&ビルドが正義

そもそもAI駆動開発って、とにかくコードが生成される時間が圧倒的に短いんですよ。
たとえばもし、完全に正解がわかっているAIがTwitterのプログラムを書こうと思ったら、間違えなければ30分くらいで作れるんじゃないかなと思っています。

つまり、AI駆動開発において一番時間がかかるのは「間違いを修正すること」です。
で、その修正にも少し確率が絡んでいて、ゲームでいうところの“詰み状態”になったプロジェクトをそこから立て直すのって、めちゃくちゃ大変なんですよ。

むしろ、「1回それを捨てて、新しく作り直したらすんなり10分で作れた」、みたいなことが起こるので、行き詰まったら捨てる。行き詰まりそうだったら捨てる。

AI駆動開発では超高速スクラップ&ビルドが正義です。

AI駆動の待ち時間を有効活用する

そして、AI駆動開発では、AIがコードを生成しているあいだ、開発者は“待ち”の状態になります。
その時間を別のAIに投げることで、一人でも複数の開発レーンを同時に走らせることができる。

実際にやった並行開発の作戦

なので「同じプロダクトを、違うAIを使って、複数のリポジトリで作る」作戦

AI駆動開発、特にVibeCodingはまだまだ不安定なので、今日のCodexみたいに、条件によって上手くいく・上手くいかないが大きく変わります。行き詰まらない保証がない。
なので、待ち時間を有効活用して、複数レーン走らせてリスクヘッジをした状態で、少しでも"詰んだ"開発レーンを容赦無く捨てる。

そういう、AI駆動開発独自のIT蠱毒なライフハックです。

実際、GoogleAIStudioだけ生き残った

実際に今回は、このQRコード管理アプリを以下の3本レーンで同時に開発していました。

  • CodexCLI
  • ClaudeCode
  • Google AI Studio

そして、ハッカソン終了30分前の時点で、動作していたのはGoogle AI Studioの成果物だけ
残りの時間でそれを整え、なんとか発表できる形に持っていきました。

あぶねえ...。

今回の生き残りワークフロー

結果として、今回のハッカソンでは次のような流れでプロダクトを仕上げました。

  1. Google AI Studioでまず全体の約8割を生成。
  2. その裏で、ClaudeCodeでも別リポジトリを立てて並行開発。
  3. 完成したGoogle AI Studioのコードをローカルにダウンロードし、CursorAgentで残りを詰める。
  4. 最後に、ClaudeCode側で作っていたTOPページを採用し、置き換えて完成。

おわりに

プログラミングと競技プログラミングがまったく違うように、AI駆動での超短時間ハッカソンは、通常の開発と求められること・必要なことも全く違いました。

ただ、この超速ハッカソンは高山トレーニングみたいなもので、今日得られた知見は、普段のAI駆動開発にもすごく活きるなと思いました。低酸素でつけた体力は地上で無双するぜ、みたいに。

もっともっと開発効率上げて、より良いプロダクトを、よりたくさん作りたいです。

ちなみに明日(もう今日)、2025年10月26日に「 都知事杯オープンデータ・ハッカソン 2025 Final Stage」で登壇・発表します。当日の様子はYouTubeでライブ配信される予定です。視聴者投票もあるのでもしよければご覧ください。

また、普段僕はAI駆動開発でいろいろとプロジェクトを作っていて、今は「DYSTOPIA」というAI連携SNSアプリを個人開発しています。AppStore と、GooglePlay でオープンβ版アプリを配信中です。よかったらDLしてみてください。

日々の発信として「AI駆動開発ラボ」というYouTubeチャンネルで、AI駆動開発の話を毎日発信しています。よかったらそちらもチェックしてみてください。

https://www.youtube.com/@aidd-lab

P.S.
今回のプロダクトが悔しいので、ちゃんとしたスマホアプリとしてAI駆動でバババと作ってやろうと思ってます...!!!

Discussion