Amazon Kiro 開発方式 ― アジャイル視点とウォーターフォール視点の対照整理¶
1. 開発方式の概要¶
2025年にAmazonが発表した Kiro は、従来のウォーターフォール開発とアジャイル開発の特徴を組み合わせた新しい開発方式を採用しています。この開発方式は「Spec-Driven Development」と呼ばれ、仕様書を中心に据えながらも、継続的な更新と自動化を取り入れることで、両方の開発手法の利点を活かしています。
2. Spec-Driven Development の仕組み¶
基本となる3つの仕様ファイル¶
Kiroでは、プロジェクト開始時に以下の3つの仕様ファイルを生成します:
| ファイル名 | 役割 | 内容 |
|---|---|---|
requirements.md | 要求仕様 | 機能要件、非機能要件、制約条件 |
design.md | 設計仕様 | アーキテクチャ、データモデル、インターフェース |
tasks.md | タスク定義 | 実装タスク、優先順位、依存関係 |
これらのファイルは、AIエージェントによって継続的に更新され、常に最新の状態を保ちます。
単一情報源(SSOT)の実現¶
これら3つの仕様ファイルは、プロジェクトの「単一情報源(Single Source of Truth)」として機能します。これにより、以下の問題を解決します:
- 情報の分散による認識のズレ
- ドキュメントの陳腐化
- 仕様と実装の乖離
3. ウォーターフォール的側面¶
仕様先行アプローチ¶
graph TD
A[要求定義] --> B[設計]
B --> C[タスク分解]
C --> D[実装]
D --> E[テスト]
style A fill:#e1f5e1
style B fill:#e1f5e1
style C fill:#f5f5e1
style D fill:#e1e1f5
style E fill:#e1e1f5Kiroは、ウォーターフォール開発の「計画重視」の考え方を取り入れています。3つの仕様書を事前に生成することで、プロジェクトの全体像を把握し、潜在的な問題を早期に発見できます。
トレーサビリティの確保¶
要求から設計、設計から実装へのトレーサビリティを自動的に管理します。Kiroのフックシステムは、全ての変更を追跡し、仕様と実装の整合性を保ちます。
コミット → フック起動 → 仕様との差分検出 → 自動更新
↑ ↓
└──────────── フィードバック ───────────┘
4. アジャイル的側面¶
継続的フィードバック¶
Kiroは、ファイル保存、コミット、プルリクエストといったタイミングで自動的にチェックを実行します。
# ファイル保存時
def on_save():
run_tests()
check_lint()
scan_security()
update_specs()
# 即座のフィードバック
if issues_found:
notify_developer()
suggest_fixes()
この継続的なフィードバックにより、問題を早期に発見し、修正コストを最小化できます。
変更への対応¶
従来のウォーターフォールでは仕様変更は大きなコストを伴いましたが、Kiroでは仕様書自体が動的に更新される設計となっています。
変更管理の仕組み
- 仕様変更は自動的に追跡される
- 影響範囲が自動的に分析される
- 関連するタスクが自動的に更新される
5. ハイブリッド構造の整理¶
Dual-Track Agileの実装¶
Kiroは「Dual-Track Agile」の考え方を実装しています:
- 発見トラック:仕様書の継続的な改善と更新
- デリバリートラック:AIエージェントによる実装の自動化
この2つのトラックが並行して進行することで、効率的な開発を実現します。
人間とAIの役割分担¶
graph LR
A[人間:戦略・承認] -.->|指揮| B[Claude/Sonnet]
B -->|実装| C[コード]
C -->|フィードバック| D[Hooks]
D -->|更新| E[仕様書]
E -.->|確認| A
style A fill:#ffe1e1
style B fill:#e1e1ff| 役割 | 人間 | AI |
|---|---|---|
| 戦略立案 | ◎ | △ |
| 仕様承認 | ◎ | × |
| 実装 | △ | ◎ |
| テスト実行 | △ | ◎ |
| 品質チェック | ○ | ◎ |
この役割分担により、開発速度と品質の両立を実現しています。
6. 開発方式の特徴と利点¶
主な特徴¶
Amazon Kiroの開発方式は、以下の特徴を持っています:
- 計画性と柔軟性の両立:仕様先行でありながら継続的な更新が可能
- 自動化による効率化:フックシステムによる自動テスト、品質チェック
- トレーサビリティの確保:要求から実装まで一貫した追跡が可能
導入による利点¶
| 観点 | 従来の開発 | Kiro方式 |
|---|---|---|
| 仕様変更コスト | 高い | 低い |
| ドキュメント保守 | 手動 | 自動 |
| 品質保証 | 後工程 | 継続的 |
| 開発速度 | 通常 | 高速 |
まとめ
- Spec-Driven:
requirements.md・design.md・tasks.mdを先行生成し単一情報源に - ウォーターフォール的:仕様先行・工程明示・トレーサビリティを重視
- アジャイル的:Hooks による即時テスト&反復更新で変更コストを最小化
- 結論:Kiro は「仕様網羅を担保するウォーターフォール」と「継続的反復を重視するアジャイル」の ハイブリッド開発方式
- 類型:Dual-Track Agile/小刻み V-Model ループに最も近い