Clients have come to expect high-quality software delivered quickly. Astute CEOs have picked up on this trend and are requiring the development speed to take advantage of market opportunities without a loss of quality that would kill marketing momentum. The software industry has responded with a constant flood of new development processes and tools. So how do developers and organizations produce software quickly to hit the market or provide cutting-edge capabilities without sacrificing quality? The answer is shifting left.
Proactivity Beats Reactivity
The concept of shifting left is rooted in the perspective that proactivity is more productive and efficient in software development that reactivity. In Software Quality Assurance, this is the difference between Quality Assurance (QA) and Quality Control (QC). Traditionally, testing has been incorporated into the software development and launch process at the end of the cycle, just before the application is released to users. This is Quality Control. It is focused on finding defects after development. Defects found at the end of the process are very expensive to fix. You can learn more about this from our white paper.
The traditional waterfall methodology follows a sequential order through the life cycle in the following steps from left to right: Requirements - Design - Coding - Testing. Shifting left is the concept of finding defects earlier in the life cycle, or more to the left in the process flow. This is more of a Quality Assurance process. The goal is to find defects earlier in the process where is it comparatively cheaper to fix.
This concept works great in an Agile world where development cycles are shorter, and the entire team collaborates on the software under development.
Early Defect Detection Saves Dollars
Shifting left forces teams to focus on quality from day one. Rather than waiting for defects to be uncovered late in the software development lifecycle, defects are uncovered throughout the process. In a shift left scenario, User Stories are reviewed for “testability” at the start of the sprint. Vague or incomplete User Stories are corrected right away giving both developers and testers better specifications.
Test scripts are written early in the process while the features are being designed and are shared with users, business analysts and developers so everyone agrees on the expectations for the feature. Test scripts are executed as soon as the feature is developed while the code is fresh in the developer’s mind. The turnaround is fast, and the quality is high.
By contrast, bugs and defects discovered at the end of the life cycle by using the waterfall methodology can be incredibly expensive to fix, often resulting in a delay of the release of an update or new software application. Developers have moved on to other work and must stop that work to dig into previous code to correct the defect. Then they have to switch back to the code they were working on when the defect was uncovered. When you test early and often, tweaks and course corrections can be made along the way while the feature is in development, preventing the need for more serious and costly damage control once the project is otherwise complete.
Collaboration is the Key
Bringing testers into the development process gives an added edge to software development. Using testers with a programming background enhances the process further, as coders and testers just seem to collaborate better. This collaboration can speed up a project in ways that can create high-quality software more quickly.
When coding and testing run in parallel, potential issues are uncovered faster, troubleshooting occurs right away, and code is corrected immediately. By selecting testers who can code, you enhance the collaboration and reduce the traditional friction between developers and testers.
Shift Left and Automated Testing
Implementing a shift left process is nearly impossible to do well without incorporating automated testing into the development process. Regression tests must be executed as features are released. Automated regression testing allows those test to be executed automatically during the software build process or overnight.
Talk to an Expert
Contact an expert at Stonemill Consulting today to learn more about how to shift left and deliver higher-quality software faster.