AI駆動開発は、設計がすべて
Photo by Jess Bailey on Unsplash
TAMABLEでは12月にインターン3名に「AIで日報アプリを開発せよ」という課題を出しました。 個人開発から見えてきたのは、AI時代における設計の重要性でした。
課題:AIで日報アプリを開発する
開発にあたってのルールはシンプル。
基本すべてAIでの開発を必須とする
ChatGPT、Claude Code、Geminiなど、どのツールを使うかは自由。ただし、自分のできない分野を他の人に依頼するのはNG。AIには頼っていい。
個人開発として始まったこの課題は、1月の発表会で3つのまったく異なるアプローチが生まれる結果となりました。
3人、3つのアプローチ
1.コンセプト設計から入る
ある学生は、デザインスプリントの手法を参考にブレインストーミングから始めました。「ただ提出するだけの日報」ではなく「活動記録が自然に溜まる日記型アプリ」というコンセプトを定義。Claude APIを活用して1on1のアジェンダを自動生成する機能まで構想しました。さらに、AIにUIデザイナーやテスターの役割を持たせた「仮想チーム開発」というアプローチも試みています。
2.設計とセキュリティを徹底する
別の学生は、技術スタックの選定とアーキテクチャ設計に時間をかけました。フロントエンドにNext.js(App Router)、バックエンドにCloudflare Workers、認証・DBにSupabase。OpenAPIでAPIスキーマを管理。AIが認識しやすいコード構造を意識した設計です。
当初はNext-Authで認証を実装していましたが、セキュリティ強化のためSupabase Authに移行。AIによる機能追加を行う前に既存アプリケーションの設計の見直し、リファクタリングを行いました。
コードを整理し機能追加しやすい形にすることでAIの機能追加の質を向上しました。
「設計を見直したら、新機能実装がスムーズに進んだ」という体験を得ています。
3.対話を形にする
もう一人の学生は、クライアントとの対話から要件を引き出し、それをUI/UXに落とし込むことに注力しました。「1日1日報に統一したい」「通知をクリックしたら該当箇所に飛びたい」。そうした細かな要望を丁寧に拾い、使い手の体験として実装する。対話を形にする力が、プロダクトの質を高めていました。
学び:見えてきた共通の気づき
3人の発表を聞いて、インターンの3人も私たちも確信したことがあります。
AI駆動開発は、設計がすべて。
AIは実装を加速させます。データベースのテーブル設計も、Row Level Securityも、型定義も、数分で終わることがある。しかし、何を作るのか、どこまで作るのかが曖昧だと、AIもまた方向を失います。
設計が曖昧なままだと、AIを使っても速くはならない。生成されたコードのレビューや、意図とのズレを直す作業に時間を取られる。しかし、設計がしっかりしていれば話は別です。
型定義、スキーマ、セキュリティポリシー。こうした制約を明確にすることで、AIは速く、そして正確に動く。手戻りが減り、結果として品質も上がるのです。
設計は、AIへの指示書であり、レールでもある。
従来の設計は「完璧な設計書を事前に描くこと」だったかもしれない。しかしAI時代の設計は、「AIと対話しながら制約と意図を明確化するプロセス」に変わりつつある。とはいえ、その対話を成立させるには、「何を問うべきか」を見極める力が必要です。どこまで詳細化すべきか、どこをAIに任せるべきか。その境界を引く感性こそが、人間に求められる設計力なのだと考えています。
ある学生の言葉が印象的でした。
「設計を見直したら、DB周りは5分もかからなかった」。
とはいえ気をつけなければならないのは、AIが生成したコードが、そのまま本番環境で安全に動くとは限らない、ということ。特に認証やセキュリティ周りは、人間がレビューできる知識を持っていないと、事故につながります。AIは実装を加速させますが、その出力を評価する目を持つことも、開発者には求められます。
次のステップ:再度チーム開発へ
1月の発表を経て、3人の開発は次のフェーズに移ります。
個人開発から、強みを活かすチーム開発へ。
この後はそれぞれの強みを活かした役割分担で、3つのアイデアを1つのプロダクトに統合していく予定です。設計と開発におけるガードレールを共有し、AI時代のチーム開発の型を模索する。それが、次の課題です。
AI駆動開発には、まだ正解がない。 だからこそ、考えながら走る。
その実験を、私たちは続けます。