IPAも、アジャイルは開発途中の機能追加・変更や優先順位変更などへ柔軟に対応できる手法と説明しています。
ウォーターフォールを採用する場合でも、手戻りをゼロにはできません。
重要なのは早く問題を発見することです。
悪い例:
画面を素早く表示する。この要件では、「素早い」の基準が分かりません。
改善例:
通常負荷時の画面応答時間を95パーセンタイルで2秒以内とする。測定可能な条件にします。
要件定義
↓
レビュー
↓
設計
↓
レビュー
↓
実装
↓
コードレビュー
↓
テスト問題を次工程へ持ち越さないことが重要です。
たとえば、
| 要件 | テスト |
| メールアドレスでログインできる | 正しいメールアドレスで認証 |
| 誤ったパスワードを拒否する | 不正パスワードを入力 |
| 5回失敗したらロックする | 5回連続で認証失敗 |
という形にします。
「要件はあるがテストがない」「テストはあるが対応する要件がない」という状態を発見しやすくなります。
仕様変更が発生した場合は、すぐ実装だけを書き換えるのではなく、
変更要求
↓
影響範囲確認
↓
工数・リスク確認
↓
承認
↓
設計変更
↓
実装
↓
回帰テストという形で管理します。