How Far Left Can You Shift?

How Far Left Can You Shift?

What does it take to implement a Shift Left DevOps approach and how will it bring better code, lower risk, reduced cost and less effort? In his article, The Shift Left Principle and DevOps IBM’s Rick Weaver explains how it’s supposed to work, and why it’s important to shift left: “The premise behind ‘Shift Left’ is that we move things that we typically do in later stages earlier. It is human nature, but many people tend to defer particularly tough issues. […] Ultimately this leads to significant problems when we eventually try to address the issue. The graphic below illustrates what happens. It’s also an indicator that more agile approaches are needed.”

As the image below indicates, the Shift Left Principle is intended to shorten the time between the identification of an issue and its resolution.

devopsImage Credit: DevOps Zone

Note that the chart does not explicitly refer to DevOps, but rather to Development Progress. So why is it that DevOps gets all the action when it comes to shifting left?

The Broken Developer Collaboration Process

The typical development workflow begins with assigning tickets or tasks to developers. The developer often spends enough time on any given assignment to get the feature built or the problem solved before declaring that it’s ready to be reviewed by pushing the code and creating a pull request or merge request.

Often, that is the first time when feedback is provided in the form of a code review, which as often as not, means it happens too late. Assuming the developer had questions along the way, she would have typically asked someone in her office for input, or she could have copied and pasted the code in question into Slack or an email and explained what she was trying to figure out.

These informal approaches do not move the process to the left. In the case of asking someone in the office (it’s very hard to imagine that happening today during the COVID-19 pandemic) there is no record of the exchange. In the case of copying and pasting into Slack, the process is so tedious (because you have to explain the context you just lost by moving away from your IDE) that it does not happen often.

When it does, the exchange is then lost in a Slack stream never to be seen again, completely disconnected from the code itself, and represents a lost opportunity to meaningfully share knowledge with the team.

articles devops shift left development azure devops

Bootstrap 5 Complete Course with Examples

Bootstrap 5 Tutorial - Bootstrap 5 Crash Course for Beginners

Nest.JS Tutorial for Beginners

Hello Vue 3: A First Look at Vue 3 and the Composition API

Building a simple Applications with Vue 3

Deno Crash Course: Explore Deno and Create a full REST API with Deno

How to Build a Real-time Chat App with Deno and WebSockets

Convert HTML to Markdown Online

HTML entity encoder decoder Online

Hire Dedicated DevOps Developers

Hire our Dedicated DevOps Developers who have in-depth skills and expertise to develop an interactive and secure web application. Get custom DevOps solutions for your project.

Hire DevOps Developer

Looking to hire top DevOps developers at affordable prices? **[Hire DevOps Developer](https://hourlydeveloper.io/hire-dedicated-devops-developer/ "Hire DevOps Developer")** from **[HourlyDeveloper.io](https://hourlydeveloper.io/...

Become an Azure Developer: How to Become Azure Developer in 60 Days

Dot Net Tricks provides project-based training for web and software development on different Technologies like Cloud, .NET, ASP.NET MVC, Node.js, AngularJS, Big Data and Hadoop, Android, MEAN and more.

Create, Build, Deploy and Configure an Azure Function with Azure DevOps and Azure CLI

How to create, build, deploy and configure an Azure Function using Azure DevOps, Azure CLI and Powershell.

Updated: Announcing Azure DevOps Server 2020 RC1 | Azure DevOps Blog

Update: We received feedback in this blog and the Developer Community about an issue after upgrading from Azure DevOps Server 2019 Update 1.1 to Azure DevOps Server 2020 RC1.