初めてのVibe codingプロジェクトで、自分が何を作っているのか分かっていないことに気づかされた
私はモバイルエンジニアリングチームを管理しています。アーキテクチャのレビューを行い、スコープの調整も行います。これまでに、数百万人のユーザーにアプリを届けてきました。
AIを使ってサイドプロジェクトを始めたとき、難しいのは近道を選ぶことだと思っていました。しかし、それは間違いでした。
私はショッピングリストアプリを作りたいと考えていました。ほとんどのアプリは単なるリスト形式です。リストが経路に沿っていないため、店の中を迷路のように歩き回ることになります。私のアイデアはシンプルでした。アイテムを「通路(aisle)」ごとに並べ替えるリストです。一度店舗のレイアウトを定義すれば、アプリがそのレイアウトに合わせてすべてのリストを整理してくれるのです。
AIにコンセプトを説明しました。すると、あっという間に形にしてくれました。素晴らしい出来でした。
しかし、それを見て、あることに気づきました。間違っているのです。
コードは問題ありませんでした。問題は私のビジョンにありました。私にあったのは「計画」ではなく、ぼんやりとした「アイデア」だけだったのです。
「通路ごとに整理されたショッピングリスト」というのは、完全なアイデアではありません。具体的な検討が始まったとき、難しい問いが次々と浮上してきます。
• アイテムに割り当てられた通路がない場合はどうなるのか? • 購入済みのアイテムは消えるのか、それとも新しいセクションに移動するのか? • 完了したセクションは各通路の最後に表示されるのか、それともリストの最後にまとめるのか? • 新規ユーザーはどうやって店舗レイアウトを設定するのか? • 空の通路ヘッダーは表示されたままなのか、それとも折りたたまれるのか?
私はこれらの決定を一つも下していませんでした。
従来の方法で開発していたときは、コードを書いている最中にこれらの問いに答えていました。コードを書くという摩擦(フリクション)が、作業スピードを落としてくれました。そのおかげで、脳が欠落している部分を埋める時間を持てたのです。コードがそのまま「仕様」になっていました。
Vibe codingはその摩擦を取り除いてしまいます。AIの動きが速すぎるため、実装の中に決定事項を隠しておくことができません。あなたが残した空白に対して、AIは勝手に「仮定」を置いて進めてしまいます。詳細を考え抜く前に、結果だけを突きつけられてしまうのです。
AIが優れたコードを書けるかどうか、という議論がありますが、それは的外れな問いです。
本当の問いはこうです。「あなたは何を作りたいのか、分かっていますか?」
開始する前に、あらゆる決定に対する答えが必要です。エッジケースがどう機能するかを知っておく必要があります。体験がどのようなものになるかを知っておく必要があります。
これはプロダクトマネジメントのスキルです。作り手が作業を始める前に、体験を正確に記述できる能力のことです。自分にはそのスキルがあると思っていました。しかし、Vibe codingによって、自分が単に実装の背後に隠れていたことが露呈したのです。
私が作ったアプリの名前はBy Aisleです。完成させるのに長い時間がかかりました。コードが難しかったからではありません。まず自分自身のプロダクトを定義しなければならなかったからです。
もしAIを使って開発するなら、こうしてください。AIを開く前に、プロダクトに必要なあらゆる決定事項を書き出すために1時間を費やしてください。そうすれば、多くの欠落が見つかるはずです。
Optional learning community: https://t.me/GyaanSetuAi
