AI時代の開発では、コードを書く前の設計がこれまで以上に重要になります。 要件定義、基本設計、詳細設計、実装、テスト、設計更新までを一つの流れとして整理することで、 AIを安全に活用しながら、保守しやすいシステムを作ることができます。
AI時代の開発は「設計してから作る」
生成AIによって、コードを書く速度は大きく上がりました。 以前よりも短時間でアプリを作れるようになり、 個人でも大規模なシステム開発に挑戦しやすくなっています。
しかしその一方で、 「AIが生成したコードが読めない」 「修正するたびに別の場所が壊れる」 「構造がどんどん複雑になる」 といった問題も増えています。
これらの原因の多くは、AIそのものではありません。 本当の問題は、設計が整理されていないことです。
AI時代では、コードを書く力よりも、開発全体を設計する力が重要になります。
AI時代の開発フローの全体像
AIを活用した開発では、次のような流れで進めます。
特に重要なのは、 「詳細設計 → 実装 → テスト」 を細かく何度も繰り返すことです。
従来は、最初にすべてを設計してから一気に実装することも多くありました。 しかしAI時代では、小さな単位で設計・実装・検証を高速に回す方が効率的です。
AI時代の開発は、「全部作ってから確認する」のではなく、 小さく作って、小さく確認する流れになります。
まず要件定義と基本設計を固める
AI時代でも、最初に必要なのは 「何を作るのか」 「どのような構造で作るのか」 を決めることです。
ここが曖昧なままAIに依頼すると、 AIは毎回異なる解釈でコードを書き始めます。 その結果、責務の重複や構造崩壊が起きやすくなります。
そのため、 要件定義と基本設計は最初に大きな方向性を決めます。
1. 要件定義:何を作るのかを決める
要件定義では、 「誰のために」 「何を解決するのか」 を整理します。
必要な機能、不要な機能、優先順位、制約条件などを明確にし、 システムの目的を定義します。
AIはコードを書けますが、 「何を作るべきか」を決めるのは人間です。
AIは目的を考えません。目的を決めるのは人間です。
2. 基本設計:システム全体の構造を決める
基本設計では、 システム全体の構造を整理します。
画面構成、API構成、データ構造、 責務分担、ディレクトリ構成など、 システムの骨組みを決めます。
AIは、構造が整理されているほど、 安定したコードを書きやすくなります。
逆に、基本設計が曖昧だと、 同じ役割のコードが複数箇所に生まれたり、 命名ルールが崩れたりします。
基本設計は、AIが迷わないための地図です。
3. 詳細設計:実装できる単位まで分解する
詳細設計では、 AIに実装させる単位まで細かく分解します。
クラス設計、関数設計、 入出力、状態管理、例外処理、 バリデーション、命名規則などを整理します。
AI時代の詳細設計では、 「AIが勝手に解釈しなくても実装できる状態」 にすることが重要です。
ここまで整理されていると、 AIは安定したコードを生成しやすくなります。
詳細設計は、AIへの実装指示書です。
4. 実装:AIにコードを書かせる
実装工程では、 詳細設計をもとにAIへコードを書かせます。
ただし、 一気に巨大な機能を作らせるのではなく、 小さな単位で実装を進めることが重要です。
例えば、 「画面1つ」 「API1本」 「関数1つ」 のような単位で進めると、 修正もしやすくなります。
AIは高速に実装できますが、 最終的に採用するかどうかを判断するのは人間です。
AIは実装担当、人間は設計と判断担当です。
5. テスト:小さく確認しながら進める
AI時代のテストでは、 「最後にまとめて確認する」 のではなく、 小さな単位で確認を繰り返します。
詳細設計 → 実装 → テスト を細かく回すことで、 問題を早い段階で発見できます。
AIが生成したコードは、 一見すると正しく見えることがあります。 しかし、 境界値や異常系では壊れることも少なくありません。
そのため、 小さく作り、 小さく検証し、 問題があればすぐ修正する流れが重要になります。
AI時代の開発は「ぐるぐる回す」
AI開発では、 最初から完璧なものを一気に作るより、 小さな単位で改善を繰り返す方が効率的です。
このループを高速で回すことで、 品質を維持しながら開発速度を上げられます。
AIは、このループを高速化する存在です。 しかし、 ループそのものを設計するのは人間の役割です。
AI時代の開発では、 「一発で完成させる」のではなく、 「高速で改善を回す」ことが重要になります。
6. 設計更新:設計も一緒に進化させる
AI時代では、 コードだけでなく、 設計書も継続的に更新する必要があります。
実装中に仕様変更が起きたり、 より良い構造が見つかった場合は、 設計側にも反映します。
設計が古いままだと、 次にAIへ依頼したときに、 古い情報を前提にコードが生成されてしまいます。
AIと継続的に開発するには、 設計を最新状態に保つことが重要です。
AI時代に失敗しやすい開発フロー
現在、多くのAI開発では、 次のような流れになりがちです。
小規模な試作なら問題ないこともあります。 しかし、 システムが大きくなると、 構造崩壊やブラックボックス化が起きやすくなります。
AI時代の失敗は、 コード不足ではなく、 設計不足から起きることが多いのです。
AIに丸投げすると、 開発速度は上がっても、 保守性は崩れやすくなります。
人間とAIの役割分担
| 工程 | 人間 | AI |
|---|---|---|
| 要件定義 | 目的を決める | 整理を補助する |
| 基本設計 | 構造を決める | 提案を行う |
| 詳細設計 | 責務を整理する | 設計補助を行う |
| 実装 | レビューする | コードを書く |
| テスト | 観点を決める | テスト補助を行う |
| 設計更新 | 方向性を判断する | ドキュメント更新を補助する |


コメント