November 8, 2021

What is a shift left strategy?

A shift left strategy is the ability to run downstream processes upstream, earlier in the lifecycle of any given change to catch issues earlier and localize the context switching as close to root cause as possible.

Integration starts with the developer in their private workspace. We want to start the integration process as early as possible. This is done by moving continuous integration all the way upstream inside the developer short and long cycles.

The developer short cycle is the process of establishing a workspace and ecosystem to work on any given change. This is where the developer's private sandbox is. And where each developer performs their work to their own accord, using tools and workflows that are common to the team and specific to their own preferences.

The developer long cycle is a process that is designed to ensure changes to be integrated meet entry criteria, i.e gate pull request. Think of this as a form of pre-integration.

Why a shift left strategy?

Continuous Integration is typically run as a symptom identification process that produces high context switching. A build fails, that is a symptom of what? A test fails, that is a symptom of what? Continuous integration is an unpredictable process. We don't know when success or failure will occur, we don't know cost of integration, and integration issues are no longer localized to root cause. We can change this.

A shift left strategy helps the developer as they will receive feedback much quicker than waiting for downstream processes to identify and report. And it improves the rhythm of the stakeholders, as issues are localized to the person making the change.

In a traditional flow, the developer produces incremental technology that is later integrated into product by downsteam processes. The developer may have to wait days and weeks to know if their changes have been succesfully validated.

In a shift left flow, the developer produces incremental changes that are integrated into the product, in the developer's private sandbox.

The shift left strategy sets the stage for "Every Build is a Release Candidate", no matter where it is created.