要件定義の方法
アプリ開発で最も重要なのは「何を作るか」を明確にすること。AIに開発を依頼する前に、要件を整理することで、期待通りの成果物が得られます。
なぜ要件定義が重要か
要件定義なしで開発すると...
- ✗ 作りながら「何が必要か」を考える
- ✗ 後から大幅な修正が発生
- ✗ AIへの指示が曖昧になる
- ✗ 完成形がブレる
要件定義してから開発すると...
- ○ ゴールが明確
- ○ 必要な機能が整理されている
- ○ AIへの指示が具体的になる
- ○ 手戻りが少ない
ユーザーストーリーを書く
ユーザーストーリーは「誰が」「何をしたいか」「なぜか」を簡潔に表現したものです。
フォーマット
○○として、△△したい。なぜなら□□だから。
ブログアプリの例
ユーザーとして、
記事を投稿したい。
なぜなら自分の考えを発信したいから。
ユーザーとして、
自分の記事を編集・削除したい。
なぜなら間違いを修正したいから。
訪問者として、
記事の一覧を見たい。
なぜなら興味のある記事を探したいから。
訪問者として、
記事の詳細を読みたい。
なぜなら内容を理解したいから。
機能一覧を作る
ユーザーストーリーから、具体的な機能を洗い出します。
| 機能 | 説明 | 優先度 |
|---|---|---|
| ユーザー登録 | メール・パスワードで新規登録 | 必須 |
| ログイン/ログアウト | 認証状態の管理 | 必須 |
| 記事作成 | タイトル・本文を入力して投稿 | 必須 |
| 記事編集 | 自分の記事のみ編集可能 | 必須 |
| 記事削除 | 自分の記事のみ削除可能 | 必須 |
| 記事一覧 | 全記事を新しい順に表示 | 必須 |
| 記事詳細 | 記事の全文を表示 | 必須 |
| 画像アップロード | 記事に画像を添付 | あれば |
| コメント機能 | 記事にコメントを投稿 | あれば |
MVP(最小限の製品)を意識する:まずは「必須」の機能だけで動くものを作り、後から機能を追加していく方が効率的です。
AIに設計を相談する
要件が整理できたら、AIに設計を相談しましょう。
AIへの指示例
以下の要件でブログアプリを設計してください。 【概要】 認証付きのブログアプリ。ユーザーは記事を投稿・編集・削除できる。 【技術スタック】 - フロントエンド: Next.js (TypeScript) - バックエンド: FastAPI - データベース: MySQL - 認証: JWT - 環境: Docker Compose 【機能一覧】 - ユーザー登録(メール・パスワード) - ログイン/ログアウト - 記事のCRUD(作成・読取・更新・削除) - 記事一覧表示 - 記事詳細表示 【質問】 1. どのようなテーブル構成が良いですか? 2. APIエンドポイントはどう設計すべきですか? 3. フォルダ構成のおすすめを教えてください。
ポイント:AIに「質問」を含めることで、対話的に設計を詰めていけます。一度に全部決めようとせず、段階的に進めましょう。
画面一覧を作る
どんな画面が必要かをリストアップします。
公開ページ(認証不要)
- / - トップページ(記事一覧)
- /posts/[id] - 記事詳細
- /login - ログイン
- /register - 新規登録
会員ページ(認証必要)
- /posts/new - 記事作成
- /posts/[id]/edit - 記事編集
- /mypage - マイページ(自分の記事一覧)
まとめ
- ✓ ユーザーストーリーで「誰が何をしたいか」を明確にする
- ✓ 機能一覧で必要な機能を洗い出し、優先度をつける
- ✓ MVP(最小限の機能)から始める
- ✓ AIに設計を相談して、具体的な構成を決める
- ✓ 画面一覧で必要なページを整理する