The development pipeline typically starts from the left as an idea and ends on the right with shipping software. Thus, when we speak of something “shifting left,” we mean the action or activity taking place earlier in the application development cycle.
The “shift left” philosophy moves a later-stage activity closer to the beginning, often bringing it from deployment or running software toward development. For example, prior to the current culture of unit testing, all testing was done by a QA team just prior to a software system’s release. Having developers write unit tests for code long before it reached a near-final state was an example of testing “shifting left” in the process.
For the past half-century, software processes and methodologies have emphasized catching errors and vulnerabilities earlier in the cycle, where the costs of correcting them are (presumably) smaller. For example, organizations emphasize architecture and design activities before starting coding, to define what they are building before starting work.
More than the actual change in development process, however, the term “shift left” often suggests a shift in mindset, to establish a culture of active collaboration between all the participants in the software development lifecycle: product owners, developers, managers, testers, operations personnel, stakeholders, and anyone else that is involved. The goal is to bring a sense of ownership (and therefore an intrinsic desire to “do the job right” and build a quality system) to everyone involved, such that the overall result is a stronger and more satisfying outcome.
Two risks of shift left are oversimplification and cultural pushback.
Conversely, as our industry discovered when we tried to push too much architecture and design to the left, some feedback is helpful during the coding cycle. Application quality benefits from iteration cycles within the development, to gain feedback about the system’s current state. If activities are pushed too far to the left, they can force decisions without data.
Several roles can play a role in implementing a shift left transformation. Some are listed below.
Shift left is an organizational mindset shift, so companies should establish goals and agree on a process before starting. It’s generally best to start small, generate a “win, and then widen the scope as the organization becomes more comfortable. Typically, this begins with a smaller project with more flexible milestones –by a team that is interested in change and open to new ways of thinking. Executives should be prepared to step in frequently, to clear obstacles or provide additional support to the team – or just to celebrate milestones.
After the initial “win,” executives should socialize the victory to the rest of the company and roll the new shift out to other projects. In some cases, team members from the original project can act as “consultants.” If an external consultant was used for the first project, that consultant can act in a more consultative capacity rather than 100% “hands-on” on a single project. Executives again should “lean in,” clearing new obstacles and providing resources where necessary, and again celebrating with the teams when milestones are hit.
Executives can hire or promote new executives that openly embrace and encourage shift left mindset, as well as hiring and/or rewarding those team leaders that also embrace the new shift. After another iteration or two, it will be difficult to find anyone at the company who remembers doing it any differently.
Azul Vulnerability Detection, a feature of Azul Intelligennce Cloud, focuses scarce human effort where vulnerable code is or has been used versus simply present, to help reduce issue backlogs. Intelligence Cloud retains component and code-use history, focusing forensic efforts to determine if vulnerable code was exploited prior to it being known as vulnerable.
Inefficient prioritization of vulnerabilities and unused code wastes effort, hampers agility, and reduces developer productivity due to constant context switching and unproductive code maintenance tasks. Azul Vulnerability Detection is not another dashboard for
customers to look at. Users can access data on which components are in use, and vulnerable, using either the product’s API or an intuitive UI. The role of the web UI is to show the information we have and guide customers to the REST API.
Boost DevOps Productivity with Actionable Intelligence from Production Java Runtime Data from any JVM.