アジャイル
短いイテレーションで動くソフトウェアを継続的に届け、変化に適応する開発手法の総称
開発手法チーム
アジャイルとは
アジャイルは、短いイテレーション (1〜4 週間) で動くソフトウェアを継続的に届け、変化に適応する開発手法の総称である。2001 年のアジャイルソフトウェア開発宣言で 4 つの価値と 12 の原則が定義された。
4 つの価値
| 重視するもの | より重視するもの |
|---|---|
| プロセスやツール | 個人と対話 |
| 包括的なドキュメント | 動くソフトウェア |
| 契約交渉 | 顧客との協調 |
| 計画に従うこと | 変化への対応 |
ウォーターフォール vs アジャイル
| 観点 | ウォーターフォール | アジャイル |
|---|---|---|
| 計画 | 全体を事前に計画 | イテレーションごとに計画 |
| リリース | 最後に一括 | イテレーションごと |
| 変更 | コストが高い | 歓迎する |
| フィードバック | 遅い (数ヶ月後) | 速い (数週間後) |
| リスク | 最後に発覚 | 早期に発覚 |
アジャイルのフレームワーク
スクラムはスプリント・ロール・儀式が定義された最も普及したフレームワーク。カンバンは WIP 制限とフロー重視。XP (エクストリームプログラミング) はペアプログラミングと TDD を重視する。SAFe は大規模組織向けのスケーリングフレームワーク。
スクラムの基本
スプリント (2週間)
├── スプリントプランニング (何を作るか)
├── デイリースクラム (15分の同期)
├── 開発作業
├── スプリントレビュー (成果物のデモ)
└── レトロスペクティブ (プロセスの改善)
アジャイルと CI/CD
アジャイル + CI/CD:
コード変更 → 自動テスト → 自動デプロイ → フィードバック
→ 次のイテレーションに反映
→ DORA メトリクスで改善を計測
アジャイルのアンチパターン
アジャイルの儀式だけ導入しても形だけで本質がない。スプリント内で仕様変更するとスプリントの安定性が失われる。レトロスペクティブをスキップすると改善が止まる。「アジャイルだから計画不要」は誤解で、計画は必要だが粒度が異なるだけ。
アジャイルの前提条件
アジャイルが機能するには、失敗を恐れず発言できる心理的安全性、指示待ちではなく自ら判断する自律的なチーム、定期的なフィードバックを得られる顧客との協調、CI/CD・自動テスト・リファクタリングといった技術的卓越性が前提となる。
理論と実装の両面から学ぶなら関連書籍が参考になる。