What is Shift-Left Testing?
If you’re involved in the software development process, you’re likely familiar with the waterfall method of development.
Generally, with this method, the order of events is as follows:
Project requirements -> Design -> Coding -> Testing
Testing occurs last, or to the far right of the development process. When testing occurs at the end of the development process you risk having to backtrack to debug, or worse, you ignore minor issues and push them live.
Slowly but surely, developers have begun to understand that testing needs to occur earlier and more often.
You may have heard the term “shift-left.” If you’re still unsure about what exactly this term means, this three-part blog series will explain the concept of shift-left, the benefits, and a guide on how to get started.
Part one will help you understand the shift-left method with a brief history of the concept.
The Japanese concept of Kaizen
To understand shift-left, you must first understand the Kaizen philosophy.
The Kaizen philosophy is based on the idea of continuous improvement and it’s a core value of major corporations all over the world.
For example, Toyota recognizes the Kaizen philosophy as being a pillar of their production system. According to Toyota, Kaizen is “A philosophy that helps to ensure maximum quality, the elimination of waste, and improvements in efficiency, both in terms of equipment and work procedures.”
Kaizen encourages teams to work together to make small changes over time to ensure that errors and issues are resolved before reaching the end of a process.
How Kaizen influences shift-left
The philosophy of Kaizen influences the concept of shift-left because it encourages people to improve their workflow and procedure by testing earlier in the development process. The philosophy builds on the ideas of continuous integration and continuous deployment.
When you have several teams collaborating on a project, individuals should be continuously checking and improving their work to produce higher quality products.
Shift-left requires all team members to be held accountable for their work. It also asks that peers review each other’s work and provide feedback early on in the process.
The concept of shifting-left fosters a culture of collaboration between team members working together toward a common goal. This is very different than the waterfall method which tends to be more goal-focused than team-focused.
How shift-left influences the development process
The concept of shift-left improves the overall development workflow. When errors are detected early, it eliminates the need to go back and re-do unnecessary work. This not only saves the developer’s time but also the client’s money.
When you save on valuable resources you can dedicate them to other projects, or further innovation and exploration.
Shifting left also means fewer bottlenecks. When you open the feedback loop earlier, you are able to get input from other team members. This collaboration reduces the chances of miscommunication and misunderstanding.
Integrating the concept of shift-left into your development workflow is an ongoing process, and it requires a cultural shift.
There are also a number of tools that promote shift-left testing, and they will be featured in our upcoming posts.
Be sure to check back for parts two and three of this series!