シフトレフト(Shift Left)

シフトレフト

シフトレフト(Shift Left)

シフトレフトとは、テスト・セキュリティチェック・品質検証などの工程を開発ライフサイクルの早い段階に前倒しすることで、欠陥の発見と修正のコストを下げる開発手法である。

ソフトウェア開発のワークフローを左から右への時間軸で表したとき、従来はリリース直前(右側)にまとめて行っていた検証作業を、設計やコーディングの段階(左側)に移動させる——これがシフトレフトの発想だ。

どこから来た概念か

もともとは DevOps やアジャイル開発の文脈で広まった。ウォーターフォール型の開発では、テストはコーディング完了後に独立したフェーズとして実施されていた。しかし、バグの発見が遅れるほど修正コストは指数関数的に膨らむ。設計段階で見つかれば仕様修正で済むものが、結合テストで発覚すると複数モジュールの手戻りが発生する。シフトレフトはこの経験則を組織の仕組みに落とし込んだものだ。

具体的な実践

シフトレフトはテストだけの話ではない。セキュリティの文脈では DevSecOps として「設計段階から脅威モデリングを行う」実践に発展し、品質保証の文脈では「PR ごとに静的解析とユニットテストを自動実行する」CI パイプラインとして実装される。pre-commit フックでフォーマッタやリンターを走らせるのも、広義のシフトレフトにあたる。

AI エージェント開発においても同じ原則が適用されている。ハーネスエンジニアリングでは、エージェントの出力を事後レビューするのではなく、リンターや型チェックで「そもそも誤った変更をコミットできない」状態を作る。検出のタイミングを左にずらすほど、人間の介入コストは下がる。