シフトレフト

シフトレフトの「レフト」はソフトウェア開発ライフサイクルのより初期のステージを指します。 ライフサイクルをステージが左から右へと実行される線と考えます。 シフトレフトは、テストやセキュリティなどの開発プラクティスをソフトウェア開発ライフサイクルの終盤ではなく、早い段階で実施することです。

もともとはテストプロセスを早い段階で行うことを指していましたが、現在ではセキュリティやデプロイなど、ソフトウェア開発やDevOpsの他の側面にも適用されることがあります。

解決すべき問題はなんですか

セキュリティ問題や、バグ、ソフトウェアの欠陥は開発サイクルの後期やデプロイ後に発見された場合、とりわけソフトウェアが既に本番環境へデプロイされていた場合、修正はより難しく高コストになる可能性があります。

どのように役に立つのでしょうか

ソフトウェア開発におけるシフトレフトの考え方を適用することで、チームは開発ライフサイクル全体を通してテストやセキュリティを実装することができます。 テストとセキュリティに対する責任はソフトウェアエンジニアから品質保証、運用まで開発チーム全体にわたって共有さるものであるため、誰もがアプリケーションの安定性とセキュリティを担保する役割を果たします。

加えて、シフトレフトは継続的な改善を可能とし、ウォーターフォール開発よりもアジャイル開発により実践されます。 チームは小さな改善を繰り返し行い、より早い段階で問題を特定することができます。 このアプローチにより、エンジニアは設計とアーキテクチャフェーズにおいて、セキュリティと安全な開発プラクティスを適用することが可能になります。 開発サイクル全体を通してテストを行うことは、ソフトウェアのリリース前に必要となるテスト時間を短縮します。

多数のソフトウェアツールやSaaSソリューションは、これらのプラクティスを左にシフトすることを支援します。 ただし、シフトレフトはチーム内のプロセスの改善や文化の改革を通しても実践することができます。