「火事はボヤで消す」致命傷を防ぐシフトレフトという考え方
冒頭で安達氏は、手戻りを「最初からうまく仕込めていれば発生しなかったはずの工数」と定義する。工数が増えればその分期間も長くなり、開発全体のリードタイム増大につながる。なかでも、上流フェーズにおける欠陥や不備の見逃しは、影響範囲が広く工程全体に悪影響を及ぼしやすい。また、放置期間が長くなるほど問題が深刻化し、修正にもより多くのリソースが必要になる。
この状況を、安達氏は火災に例えて説明する。「マッチで火をつけても、息を吹きかければすぐに消せる。しかし、家中に燃え広がってしまうと消防車が出動する大規模な話になっていく」だからこそ、初期対応が重要になる。

ここで解決策として紹介されたのが、「シフトレフト」という考え方だ。これは、品質確保の活動を工程の初期段階に前倒しする考え方で、「要求定義や方式設計などで組み込まれてしまった欠陥や不備を、なるべく早く見つけるための活動」(安達氏)である。欠陥や不備の検出・除去にかかるリードタイムが短くなることで、開発期間の短縮や手戻りの減少につながり、プロジェクト全体に大きなメリットをもたらす。

シフトレフトの原理を活用した開発手法としては、BDD(振る舞い駆動開発)、ATDD(受け入れテスト駆動開発)、TDD(テスト駆動開発)などがある。
たとえばTDDでは、本来は実装後に行うユニットテストの一部をコーディングやプログラミングのフェーズで行う。テストコードが失敗する“レッド”状態を確認した上で、グリーン状態へと移行するコードを記述し、最後に保守性の高い構造へとリファクタリングする――という一連の流れが基本だ。
安達氏はTDDについて、「問題の早期発見はもちろん、欠陥の混入予防も一緒に行える手法」と評価する。そのうえで、「なるべく欠陥や不備が出ないように開発を進める」という欠陥混入の予防と、「欠陥や不備を作り込んでから検出・除去するまでのリードタイムを最小にする」という問題の早期発見・解決という2つの“戦略”を提示し、それに対応する“戦術”を組み合わせた、「Quality・Speed・Costをマルっと変える戦略と戦術」を策定した。