Incorporating Software Quality and Automation Earlier and Throughout for Maximum Customer Value
If we believe that business success is led by technology, you are most likely adopting Lean, Agile, and DevOps. These proven methodologies are “shifting left” to ensure that quality and automation are built-in earlier in the software life cycle. Incorporating quality from the beginning has numerous advantages, which we outline here.
Shift from QA Controls at the End to Built-in Quality from the Beginning
Historically, software quality has been a control addressed at the end of the software lifecycle rather than a principle of success incorporated throughout the development process. Quality Assurance, or Quality Control, has been seen as a burden to overcome, get around, or eliminate. Frequently, software development teams drop testing hours and responsibilities when facing a deadline crunch.
However, when we take the approach of thinking of and planning for quality as an integrated and iterative part of the whole software lifecycle, rather than a last-ditch effort at the end, the software creates value that gets into the hands of users and excites them with less risk and rework. Here’s how we do it.
Understand What Quality Means to Users
Every product idea or feature should be tied to user value. We can’t build value without understanding what quality means to stakeholders. When considering a host of ideas, features, or functionality, it’s imperative to incorporate a user-centric view, capturing desired quantitative and qualitative quality metrics.
At SDLC Partners, we use design thinking approaches to choose the right persona framework to uncover user quality expectations. We do this before an idea enters our, or our client’s, portfolio. Setting quality expectations early in the SDLC enables a product that has less variability and an SDLC with less uncertainty.
Focus on Components & Expect Failures
While driving testing earlier into development makes quality more important and more visible, it doesn’t ensure a smooth-running pipeline that leads to greater effectiveness. Quality must become an integral part of how code is created, measured, and what quality code looks like.
Behavior-driven Development (BDD) and Test-driven Development have shifted quality left; however, classes and methods still look like monoliths in the release train. Our goal is to address how individual components are tested and how they fail.
For example, consider a web-based application. If you create a testing constraint where a “page” is the lower boundary of a test instead of its components, the entire page fails if one component test fails for that page. By taking a component-based development approach, individual components can fail without compromising the “releasability” of that same “page.” In fact, we should expect component failure. This approach bridges functional and technical testing, making unit testing more relevant. Plus, this approach drives functional testing towards smaller units of work that are more suitable for automation.
Quality + Automation: a Power Couple with Limits
Integrating quality assurance earlier, and throughout the software lifecycle, goes hand-in-hand with automation. Take security and compliance testing automation as one example. If your goal is to ensure compliance with a set of standards, they should be a part of the software design. If these become part of the design, they become more atomic and can be automated, which moves them away from being a final “control” test. This pattern is best leveraged when it’s repeated for any control-like testing that occurs throughout the lifecycle of the product.
However, just like any process or improvement, automation has a point of diminishing returns. When properly integrated, automation becomes part of the business-as-usual activities for teams. Time commitments include time for testing and automation, and time-to-delivery estimates becomes more accurate.
Elevating the Role of Testers as User Representatives
When automation and testing are integrated into the SDLC, executives may view manual testers as a redundant resource. However, the role isn’t diminished or eliminated, but elevated. Testers should be given the opportunity to drive greater value as user representatives. Testers can be coached to understand chaos engineering and the principles of looking for those things that are unexpected and valuable to discover. They can see ways that software might be used that was never intended.
A great example of this is the Netflix Simian Army. Their testers are empowered to break software, networks, and other parts of the Netflix services system. This team becomes the creative, chaos-minded, “free-range” experimental testing crew alongside test automation developers and testing architecture engineers.
A Formula for Business Value: Integrating QA + Incorporating Automation + Transforming Testing
Building quality into the earliest stage of your software build not only creates an opportunity for valuable feedback, sooner, but it smooths out the starts and stops that come from uncovering bugs and defects at the end of the cycle. This enables your entire software team, including testers, to be focused on quality, user expectations, and iterative releases without all the stress, risk and frustration from testing in the home stretch.
Automation improves the development experience for the entire team by delivering more reliable and scalable testing, as well as freeing up testers to focus on user expectations and value. This goes a long way to support an earlier quality integration.
Lastly, remapping the testing role improves employee satisfaction and leverages a more human centered approach to software development. Testing the unexpected, and applying chaos engineering to the testing concept, drives better user experiences.
Where Can Quality, Automation, and Shift Left Testing Take Your Software?
Building quality and automation throughout the SDLC delivers a better development experience, ensures focus on user requirements and definition of quality, and accelerates error-free releases that delight users and executives. SDLC Partners has the experience, expertise, and client success stories that can give you confidence.