The Shift Left approach has almost no secret for you. After our first article Understanding the software development best practices we wanted to hand over one more piece of info to you. You are ready to shift but taking the team with you is a challenge? Don’t worry, here are some tips and some pieces of information to get started and spark a conversation that leads the way to a new software development lifecycle.
It’s your turn to spark a conversation about shift-left in your team.
• 72% of firms acknowledge that software testing is key to successful continuous delivery but only 53% have shifted all types of testing to earlier in the developer lifecycle.
• Forrester surveyed advanced Agile & DevOps firms and identified that only 30% monitor unit test pass/fail ratio and 28% monitor code coverage (but 58% of them have some kind of unit testing automation).
>>> 📈 Shifting left means creating a competitive advantage and being ahead of other companies.
• Out of those companies, 15% think their test suites give them a good indication of business risk, but 53% think that high quality is determining the success of a customer facing software releases.
>>> 🗯 End users are not loyal to bug-filled software and not persistent through poor user experience. But too few companies are making what’s needed to avoid this!
• 63% consider the number of unit tests prioritized by risk as one of their top desired metrics but only 15% of them can actually track that metric today.
>>> 🦄 Spark a conversation with your team about how software engineers prioritize their code and what code coverage standard do they effectively have for their top tier code.
As you are shifting left and tooling yourself accordingly, always make sure to optimize and create accountability when it comes to alert management. Reduce false positives overtime, automate responses to reduce the load on human intervention and make sure that the most important alerts always reach a team member who is accountable for escalating or dismissing.
Companies might have been led to think that they are doing their best for quality assurance because they have an entire team dedicated to this purpose. However, software architects and software engineers haven’t been kept in the loop when it comes to software quality and security matters, resulting in the situation we face now.
Shifting left is key to being able to create industrial-grade software at scale and helping your business enter the industry 4.0. Every step of your software development lifecycle is an opportunity to reduce quality and security defects and to get you closer to the zero defect level of quality that the software industry has been waiting for .
The Developer Experience team has always built tools with the conviction that helping to detect bugs and defects as early as possible in the development lifecycle was a key success criteria to make robust software at scale. We make it sound obvious now but it certainly was not always like this. Let’s look back at shifting left in an agile world.
Let me grab my history teacher glasses and take you on a little coding history journey.
The representation of the traditional product development lifecycle we shared in the previous post can feel a bit old school: and it is. 20 years ago, a software product had an annual update release; the team was working all year long to deliver an entirely new version of the product that was to be presented to the public. The process was a waterfall sequence, each team throwing the ball to the next one along with heavy piles of requirement briefs until it reached the hands of QA (which usually had little to no time to do their work before the release date) and then launching the baby into space.
One huge update with all the bugs and regression risks that you can imagine. This was due to the technology's limitations of course. We could not ask users to download a new version from the internet every other day like we do now. Indeed, new releases had to be distributed on cd-roms or other hardware.
Increasing competition, quickly-evolving needs, new usage and new technology suddenly had the software industry scrambling to find new processes in order to keep up. In an attempt to increase velocity and to be able to update the product continuously, the agile method was born. A smooth back and forth where feedback and new commits dance an elaborate waltz. A world of continuous development and continuous integration.
Well, don’t be scared, you can still see that the left part of the agile flow matches the early stages of development. So, even here we can shift the testing phase to the left and remove as much as possible from the release, deployment and operating side of things. Shift left is the answer to the neanderthal developer just as much as it is for the post-modern engineer.
We believe, and are advocates of, the shift left approach as a great angle to improve the developer experience. We are a team of software engineers who want to set the new gold standard for code quality. We believe that using the shift left approach as a foundation for the product development life cycle is the healthiest way to build great software.
Our unit test accelerating extension for VS Code can not only be used in a shift-left-friendly product development life cycle, it can also help to ease the risks and difficulties of shifting left.
No, the shift left methodology is not as easy as one might think.
Shifting isn’t easy for any team; getting out of your comfort zone always means taking a leap of faith. Especially with deadlines and management pressure hanging over you. So, you would probably want tools to help you do things properly.
Your company or product has millions of lines of code it has inherited over the years, decades maybe, of software development. This legacy code is often filled with bugs and inconsistencies and if it is not already affecting your product it might at any time. As you might know, most team members are too scared of the domino effect that fixing those inconsistencies could trigger. They are reluctant to get their hands dirty reviewing legacy code.
With Ponicode you can make an assessment of all of your legacy code and monitor where your weak spots are using the dashboard. Moreover, you can complete your suite of unit tests to increase the code coverage of all of your legacy code quickly, allowing you to safely move forward with product development.
When you start shifting left you will have to deal with a big increase in early anomaly detection and consequently an increase in time spent on unit testing and early stage testing. This can be overwhelming for your team. You want to be sure to give your team all the help they need to clear this pile of tests quickly. This is why the automation part of shifting left is key to your success. With a unit testing tool like Ponicode, you can generate test files within seconds, avoiding the bottleneck effect.
Unit testing accelerating tools come in handy. They remove the repetition and tediousness of unit testing while avoiding the risks of automation. Artificial intelligence assists you while requiring monitoring from the developer only to get the best value out of the unit testing phase. It becomes easy to meet the shift left targets without deprecating the developer experience or the benefits of the approach.
Beyond these direct benefits, we know that unit testing tools help free up developers time so they can refocus on the architecture and creative design of their codebase.
Better software made by happier developers. Does it sound too good to be true? I guess you’ll have to give our free extension a go and find out if you can be part of this new unit testing journey.
We hope that you are now feeling clear about Shift Left and equipped to lead the change in your team. Those few words are a summary of our team experience as well as research we have done over the past few years but there is much more available out there.
Here are three pieces of content to keep the conversation going