Everything you need to know about shift left [DevSecOps]

House icon

Published May 31, 2017

<p>In every organization, maintaining quality and testing at the same time is a challenge. This is especially true as new features and updates are being developed. This kind of work needs to be done continuously in order to guarantee that the new update won&#8217;t knock out the entire system. When testing is being started earlier, there&#8217;s more time to focus on quality and have a &#8220;do it right from the beginning&#8221; mentality. In turn, this saves time and decreases the number of iterations required to make changes and improvements. This is what&#8217;s called <em>shift left</em>.</p> <h2><strong>Shift left</strong></h2> <p><span style="font-size: 12pt;">The premise behind shift left is to move up things normally done later in the development cycle. Many tough problem are often being postponed, only to become bigger problems in the future. In the end, this leads to a significantly worse situation when the problems needs to be addressed. Within the shift left methodology, you fix these problems earlier (sometimes even before they occur).</span></p> <p><span style="font-size: 12pt;">The term <em>shift left</em> also refers to a <a href="https://smartbear.com/learn/automated-testing/shifting-left-in-testing/">method of software development</a> in which the team earlier focuses on quality and works preemptively with addressing problems. It also includes testing much earlier. With this, you strive to increase quality, shorten test cycles and reduce the risk of unwanted surprises in the end of the development cycle &#8211; or even worse, in production.</span></p> <h2><strong>DevOps and testing</strong></h2> <p><span style="font-size: 12pt;">Using this way of thinking we can also find two parts of <a href="http://solidify.se/why-devops-is-a-necessity-for-software-development/">DevOps</a> to utilize: continuous testing and <a href="http://solidify.se/continuous-delivery-integration/">continuous deployment</a>. It&#8217;s about creating and running automated tests as soon as as often as possible. Such testing, together with continuous updates, creates an environment in which the development team can focus on quality early.</span></p> <p><span style="font-size: 12pt;">By involving testing earlier you hope to identify potential issues earlier in the development cycle. If you manage to do so, there&#8217;s also more time to address these. All in all, when errors and bugs are found earlier, less time is required to fix a erroneous implementation. Since bug handling also becomes tougher as the application grows in complexity, you can save time there as well. With shift left, you can save time, money and a lost of frustration.</span></p> <h2><strong>Summary</strong></h2> <p><span style="font-size: 12pt;">To summarize, there are multiple advantages of the shift left methodology:</span></p> <ul> <li><span style="font-size: 12pt;"><strong>Improved design: </strong>With continuous testing comes more opportunities to address upcoming problems, bottlenecks and other areas of improvement. This opens up for new design options building on the original idea, but with less issues.</span></li> <li><span style="font-size: 12pt;"><strong>Early bug handling: </strong>When we stop and trhink about how many times a bug could have been handled much easier when it was first discovered, we quickly see the value of shift left. It creates breathing room and allow us time to manage our mistakes right as they happen.</span></li> <li><span style="font-size: 12pt;"><strong>Time and money saving: </strong>When you talk about improvements in efficiency and quality, it would be strange not to talk about time and money savings. With shift left, you save both time and money.</span></li> </ul> <p><span style="font-size: 12pt;">The essence of shift left is, in many cases, an illustration of the classic <em>test early and often</em>.</span></p> <p>&nbsp;</p> <p><span style="font-size: 12pt;"><em>Have you started working with shifting left? Did we miss out on any pros or cons? Let us know in the comments below!</em></span></p>