アジャイル

短いイテレーションで動くソフトウェアを継続的に届け、変化に適応する開発手法の総称

開発手法チーム

アジャイルとは

アジャイルは、短いイテレーション (1〜4 週間) で動くソフトウェアを継続的に届け、変化に適応する開発手法の総称である。2001 年のアジャイルソフトウェア開発宣言で 4 つの価値と 12 の原則が定義された。

4 つの価値

重視するもの より重視するもの
プロセスやツール 個人と対話
包括的なドキュメント 動くソフトウェア
契約交渉 顧客との協調
計画に従うこと 変化への対応

ウォーターフォール vs アジャイル

観点 ウォーターフォール アジャイル
計画 全体を事前に計画 イテレーションごとに計画
リリース 最後に一括 イテレーションごと
変更 コストが高い 歓迎する
フィードバック 遅い (数ヶ月後) 速い (数週間後)
リスク 最後に発覚 早期に発覚

アジャイルのフレームワーク

スクラムはスプリント・ロール・儀式が定義された最も普及したフレームワーク。カンバンは WIP 制限とフロー重視。XP (エクストリームプログラミング) はペアプログラミングと TDD を重視する。SAFe は大規模組織向けのスケーリングフレームワーク。

スクラムの基本

スプリント (2週間)
  ├── スプリントプランニング (何を作るか)
  ├── デイリースクラム (15分の同期)
  ├── 開発作業
  ├── スプリントレビュー (成果物のデモ)
  └── レトロスペクティブ (プロセスの改善)

アジャイルと CI/CD

アジャイル + CI/CD:
  コード変更  自動テスト  自動デプロイ  フィードバック
   次のイテレーションに反映
   DORA メトリクスで改善を計測

アジャイルのアンチパターン

アジャイルの儀式だけ導入しても形だけで本質がない。スプリント内で仕様変更するとスプリントの安定性が失われる。レトロスペクティブをスキップすると改善が止まる。「アジャイルだから計画不要」は誤解で、計画は必要だが粒度が異なるだけ。

アジャイルの前提条件

アジャイルが機能するには、失敗を恐れず発言できる心理的安全性、指示待ちではなく自ら判断する自律的なチーム、定期的なフィードバックを得られる顧客との協調、CI/CD・自動テスト・リファクタリングといった技術的卓越性が前提となる。

理論と実装の両面から学ぶなら関連書籍が参考になる。

関連用語