【第2回】Agile開発 × Vibe Coding ＝ 開発スピードと精度の両立を目指す

## 🚀 Vibe CodingでAgile開発を進化させる

Agile開発の理想は「素早く作って、素早く直す」。
しかし現実には、要件定義、設計、タスク分解、そして見積もり……。
この「前工程」に時間とリソースを取られて、結局**最初の一歩が踏み出せない**こともしばしば。

私のチームではこの問題を、**AIとVibe Codingの導入**で一気に突破しました。

今回は、**AI × Vibe Codingを活用して、Agile開発をどう加速させたのか？** を、
実際の開発フローを交えて紹介します。

---

## 🧩 私たちの開発フロー：Vibe Codingが変えた3つのこと

### 1. 要件定義を「自然言語」で済ませる

* 最初にやることはただ一つ、**Project Requirementを書くこと**
* あとはChatGPTやGeminiと対話しながら `user-story.md` を構築していきます
![Screenshot 2025-05-16 at 08.11.58.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4086206/84186539-686a-496f-b45f-23026c3d136c.png)

* このファイルこそが、開発の中心になります。当然に、やりたいことを手動で調整することが必要です。

#### 要件
> ECサイトの注文管理システムを構築したい。管理画面・APIが必要で、CSVアップロードも可能にして欲しいです。

```markdown
# user-story.md
## ユーザーストーリー

**タイトル:** ECサイト注文管理システム

**概要:** ECサイトの注文情報を一元的に管理し、業務効率化を図るためのシステムを構築する。

**背景:** 現在、注文情報の管理が煩雑化しており、手作業によるミスや時間的なロスが発生している。効率的な注文処理、データ分析、および外部システムとの連携が求められている。

**ユーザー:** 管理者

**ゴール:**

* 注文情報を容易に確認・管理できる。
* APIを通じて外部システムと連携し、自動化を促進できる。
* CSVアップロードにより、大量の注文情報を効率的に登録・更新できる。

**ストーリー:**

* **ID:** US-001
    * **タイトル:** 注文一覧表示
    * **詳細:** 管理者は、管理画面から全ての注文情報を一覧で確認できる。
    * **受け入れ条件:**
        * 注文ID、注文日時、顧客名、商品名、注文ステータス、合計金額などの情報が表示されること。
        * 注文ステータスによる絞り込み、注文日時のソートなどの基本的な検索・ソート機能が利用できること。

* **ID:** US-002
    * **タイトル:** 注文詳細表示
    * **詳細:** 管理者は、注文一覧から特定の注文を選択し、詳細な情報を確認できる。
    * **受け入れ条件:**
        * 顧客の連絡先、配送先情報、注文商品の一覧（数量、単価を含む）、支払い方法、配送状況などが表示されること。
        * 注文履歴（ステータスの変更履歴など）が確認できること。

* **ID:** US-003
    * **タイトル:** 注文ステータス更新
    * **詳細:** 管理者は、注文の詳細画面から注文ステータスを更新できる。
    * **受け入れ条件:**
        * 「未処理」「処理中」「発送済」「完了」「キャンセル」などのステータスを選択できること。
        * ステータス更新時に履歴が記録されること。

* **ID:** US-004
    * **タイトル:** APIによる注文情報取得
    * **詳細:** 外部システムは、APIを通じて注文情報を取得できる。
    * **受け入れ条件:**
        * 注文ID、注文日時、顧客情報、商品情報、ステータスなどの基本的な情報が取得できるAPIエンドポイントが提供されること。
        * 認証機能により、不正なアクセスが防止されること。

* **ID:** US-005
    * **タイトル:** APIによる注文ステータス更新
    * **詳細:** 外部システムは、APIを通じて注文ステータスを更新できる。
    * **受け入れ条件:**
        * 注文IDと更新後のステータスを指定して更新できるAPIエンドポイントが提供されること。
        * 認証機能により、不正な更新が防止されること。

* **ID:** US-006
    * **タイトル:** CSVによる注文情報アップロード
    * **詳細:** 管理者は、CSVファイルをアップロードすることで、複数の注文情報を一括で登録・更新できる。
    * **受け入れ条件:**
        * 指定されたフォーマットのCSVファイルを受け付けられること。
        * アップロード時にエラーチェックが行われ、エラー内容が通知されること。
        * 既存の注文情報を更新できること（キーとなる項目を指定）。

**非機能要件:**

* **パフォーマンス:**
    * 注文一覧表示は〇秒以内に完了すること。
    * APIのレスポンスタイムは〇ms以内であること。
* **セキュリティ:**
    * 管理画面へのアクセスは認証が必要であること。
    * APIへのアクセスは適切な認証メカニズムが必要であること。
    * 個人情報は暗号化して保存すること。
* **保守性:**
    * システムの構造が理解しやすく、変更や拡張が容易であること。
    * ログ機能が充実しており、問題発生時の原因究明が容易であること。
* **操作性:**
    * 管理画面のUIは直感的で、操作に迷わないこと。
    * エラーメッセージは分かりやすく表示すること。

**今後の拡張検討:**

* 注文情報の検索条件の追加（商品、顧客など）。
* 帳票出力機能（領収書、納品書など）。
* 在庫連携機能。
* 決済システムとの連携強化。
```

→ これをベースに、**AIが設計・コード生成**まで行ってくれます。

### 2. すべては「user-story.md」から始まる

* Vibe Codingでは、`user-story.md` が**唯一の信頼できるドキュメント**
* コードもテストもこのファイルをベースに生成
* 修正があれば、user-storyを更新 → AIが差分生成

🔁 **毎回ゼロからではなく、コンテキストを保持したまま進化**していける。

### 3. プロンプト駆動型の反復開発

* 変更や追加があれば、自然言語で追記するだけ
* 例：「一覧に検索機能を追加したい」→ コードが再生成される
* 開発者はコードレビューと微調整に集中

これにより、**1タスク1〜2時間で実装 → テスト → デプロイ**という高速サイクルが実現しました。

---

## 🧠 なぜVibe CodingがAgileと相性が良いのか？

| 従来の課題       | Vibe Codingでの変化          |
| ----------- | ------------------------ |
| 要件整理に時間がかかる | 自然言語でそのまま記述できる           |
| コミュニケーションロス | AIが常に文脈を保持してサポート         |
| 設計→実装の断絶    | その場で設計＋コードを生成            |
| メンテ時に設計書が古い | user-storyが唯一の真実、常に更新される |

Vibe Codingは、**設計と実装、仕様とコードの距離を限りなくゼロに近づける**アプローチです。

---

## 🧪 実際にやってみた所感

* 「会話しながら作る」感覚は、ペアプロに近いけどもっと速い
* user-story.mdがチーム全員の共通言語になりやすい
* AIが提案する設計は70〜80%の精度。微調整前提で使えば強力

開発にかかる\*\*「段取りコスト」が劇的に減少\*\*しました。

---

## 🔮 次回予告

次回は、実際どのようにコードが生まれたか、UIができたかを見ていきます！

* 実際のuser-story → コード生成の流れを公開
* UIも自動生成できる？
* チームで使うにはどう運用する？

---

💬 コメントや質問も大歓迎です！よろしくお願いします！