Zennハッカソン「第4回 Agentic AI Hackathon with Google Cloud」に参加した
完走した感想
めっちゃ疲れた
反省
良かった点
1. 参加しただけでも良かった
この仕事に就き始めてからずっとやってみたかったハッカソンというイベントに初めて参加できたのは素直に嬉しかった。 都会にいた頃は出不精を発揮してどうにも実行が伴わず、指を加えていいなーと思っていただけだったので大きな進歩だったと思う。
数時間、あるいは数日間のような短期間で行われるものと違い、エントリーから提出締め切りまで約2ヶ月という長期間何かをやり続けることが結構久しぶりだったので、モチベーションが途切れず続いたのは我ながらすごいと思った。
たぶん受験でもこんなに頑張ってないと思う。
2. AntiGravityはやはり最高だったが
これまでの個人開発や自己学習ではあり得ない継続を見られた理由の最たるものはAntiGravityの存在だったと思う。 それほどまでにAntiGravityによる開発者体験(DX)は劇的に変わったし、もうAIのない開発など考えられないほどと断言できると思う。
が、振り返ってみて懸念もあるので後述。
3. 自分が作りたいものを作れた
最終的な完成形はともかくとして今自分が本当に作りたいものを作ることができたと思う。 あったら便利かもな、とか、他の人が欲しがってるからじゃなく純粋に自分のエゴでものを作ったのはいつぶりだったか。
改善点
1. AntiGravityに甘えすぎた
プロンプトを与えれば爆速で開発・テスト・デバッグのループが回ることに慣れすぎて、段々と思考を放棄していた自覚があった。 最初こそ出力内容に細かくチェックし、ちょっとでも気に入らなければ改善を要求していたものの、いずれあまり改善が見られず思考を放棄してしまった。
その結果、AIが作り上げたプロダクトの細かいところは全くわからなくなってしまった。
一方で、マネージメントというかプログラマーとしてではなくプロダクトオーナーとしての視点は養われたのでは?とも思えるので悩ましいところ。
2. 提出直前でバタつきすぎた
これはマイルストーンを決めていなかったのが原因なんだと思う。 「この機能ができたら…」とか「この機能のバグを取らないと…」みたいな思考になってしまい、提出直前になってバタバタしてしまった。
提出フォームぐらいは一度提出期間がスタートしたタイミングで覗きに行くべきだった。
3. 一つのコンテキストを引きずりすぎた
例えばAというタスクをお願いしたとして、
- Aの完成度が60%で仕上がってくる
- AにレビューしてA'が仕上がった結果Bという改善点が見つかった
といったシチュエーションのときに元のAをお願いしたタスクではあくまでもAの完遂だけを目的にしてBはIssueに投げるべきだった。
Aが完了したタイミングでBをそのまま同じコンテキストでお願いするのはコンテキストの肥大を招き、その結果、
- 応答速度、精度が徐々に低下する
- 応答そのものの挙動(エディタ周り含め)が怪しくなってくる
- 余計なタスクCをAIが生み出す
といった悪影響を観測した。
ただ、これはAntiGravity側で明確なコンテキスト境界を与えることができなかったのも一因としてはありそう。 (Aが終わったタイミングで新規コンテキストを作成しようとしても前のコンテキストを引きずるような挙動をしていた)
細かい反省点
- レスポンシブ対応への確認が甘かった
- 最初のシステムアーキテクチャ設計にもっと時間を咲くべきだった
- MVP(最小プロダクト構成)を定義すべきだった
- そもそもTypeScriptの知識が浅すぎた
- 早期の段階でReactなどのライブラリの導入を検討すべきだった
- わからない技術要素の導入を採用する前に、What(それは何なのか)、Why(なぜ導入するのか)、How(どのように利用するのか)を把握するべきだった
- スケジュールから逆算してプロジェクトタスクを策定すべきだった
- これに関しては正直出せなくてもいいやとも思ってたので、やるならやるって決めきる覚悟が必要だった
- そもそもAIエディタのお作法というか使い方がよくわかっていなかった
- これは今後の学び
- 記事はもっと早く書き始めるべきだった
- 当日では切羽詰まって書けない
- AIベース担ってしまったのでもっと自分の主観に基づいた主張をすべきだった
- 特にWhy(どうしてそのようにしたのか)、What(そのためにどうしたのか)をもっと主張すべきだった