アジャイルコミュニティの複数のメンバーがアジャイル開発プロセスの有効性におけるフィードバックループの重要性を強調している。
「フィードバックループ」とは何だろうか? 簡単に言えば、あるプロセスの実行結果が、そのプロセスの今後の振る舞いに影響を及ぼすとき、そのプロセスにはフィードバックループが存在する。
アジャイル開発プロセスにはどんなフィードバックループが存在するのだろうか? かんばんとスクラム: 両者のよさを最大限ひきだすという本で、Henrik Kniberg氏とMattias Skarin氏はスクラムとXPに存在するフィードバックループについて説明している。短期のフィードバックを提供するXPプラクティスとして、以下をあげている。
- ペアプログラミング
- ユニットテスト
- 継続的インテグレーション
そして長期のフィードバックループを提供するスクラムプラクティスとして、以下をあげている。
- デイリースクラム
- スプリント
これらすべてのフィードバックの背景にある重要な意図は、今後のプロセスを素早く改善することだ。Kniberg氏とSkarin氏はこう述べている。
何かを変えよう => どうなったか調べよう => そこから学ぼう => また何かを変えよう。一般的に言えば、あなたにはできるだけ短期のフィードバックループが必要です。そうすることで、プロセスを素早く適応させることができるのです。
Rune Sundling氏はブログで、アジャイルプロセスでのフィードバックを助けるプラクティスをさらにあげている。
- コードレビュー
- 静的コード解析
- 自動インテグレーションテスト
- 自動受け入れテスト
- プロセスを通じて、顧客とビジネス専門家に自分と密に仕事をさせること
- リリースの頻度を10倍に増やすこと(少なくともテスト環境に対して)
密接なフィードバックループというのは、プロセスや生産性を改善すること以上に、チームメンバーが気持ちよく働くことを可能にする。Lisa Crispin氏は次のように述べている。
継続的インテグレーションによってコードの新しいバージョンにリグレッションテストを実行していれば、新規のコードや更新したコードが何かを壊していないか、数分か数時間以内にわかります。すぐにわかれば、修正も簡単です。問題に悩まされることはありません。なぜなら、ただちに問題を修正して先へ進められるとわかっているからです。短期のフィードバックループは自信を与えてくれます。自信は喜びにつながります。