What is “shift-left”?

Definition

In the traditional model of software development (waterfall), testing tended to take place at the end of the lifecycle (to the right). This approach often resulted in costly defects or conflicts being identified very late in the process and releases being delayed (more on that in the next module).

 

Winston Royce, “Managing the development of large software systems: concepts and techniques”, 1976

 

Shift-left approach fundamentally means putting an effort to try to identify defects much earlier in that process (you literally shift leftward in the development cycle).

Examples

Most common shift-left practices include:

  • Testers working alongside developers
  • Tester being involved in specification review
  • Manual testing against acceptance criteria during development
  • Unified test strategy across multiple environments (includes performance testing, security testing, user acceptance testing, post-deployment testing etc.)

 


Shift-left analysis

The most effective approach to shift-left however does not rely solely on testing. The focus in put not just on finding defects but on making sure the right solutions get built in the first place. By analyzing and validating requirements, really understanding the underlying business processes, and impact of planned changes on the Org and other requirements, you can ensure that the right problems are being addressed and the development team gets all the information they need to build the thing the right way from the start.