Magazine Article | October 1, 2019

How To Make Quality A Priority In An Agile World

Source: Software Executive magazine

By Rob Mason

Delivering products, updates, and functionality to customers quickly only matters if your software lives up to expectations.

How can you maintain quality while moving at the speed and agility that keeps customers happy? It’s an age-old question that many have yet to answer and one that I hear from companies all the time. They need speed to satisfy customer expectations and ensure users don’t leave for a competitor. That’s why you’d be hard-pressed to find a company that admits to doing Waterfall development today.

Everyone has embraced Agile methodologies in order to keep up with customer demands, making speed a critical factor … and one that Agile addresses directly. But speed is only half of the equation.

There is also the matter of quality. After all, it’s great to deliver products, updates, and functionality to customers quickly, but if they don’t work or live up to expectations, customers won’t use them. A survey by software development company Dynatrace found that large organizations now release an average of three software updates per hour. From that survey, 73 percent said the need for speed is putting customer experience at risk.

It is now harder than ever to deliver quality experiences, and it’s not just because Agile teams are primarily focused on speed. QA itself always has been second tier to development and often seen as a stepping-stone on the way to a career in development. This perception stretches outside the borders of IT to company leadership that sees QA as just an expense, making delivering quality products a serious challenge as QA roles become increasingly harder to fill — and even harder to maintain. And, with the ubiquity of Agile, QA has gone from “test everything” to “test as fast as you can.”

"With the ubiquity of Agile, QA has gone from ‘test everything’ to ‘test as fast as you can.'"

BRINGING QA BACK INTO THE FOLD

To gain full visibility into the customer journey and keep up with the speed of Agile, you need to adopt an advanced testing methodology. While still an important piece of many testing strategies, in-house QA teams need support to eliminate costly trade-offs between testing coverage and time-to-market pressures. These teams must augment their current QA processes using approaches such as automation and real-world testing. Or even a combination of both.

Test automation has emerged as a way for brands to verify their software is working correctly very quickly. Many companies have already taken hold of this idea. According to KPMG, use of test automation grew 85 percent over a two-year period across all industry domains. Automation allows internal testers to focus on higher-priority areas and projects that require a human touch and should be used primarily for smoke and regression testing.

When that human touch is required, real-world testing is often the best option. It brings your apps and websites into relatable situations, using actual customers and targeted demographics to test software. This benefits companies, as they are able to get a firsthand view of how customers will actually use software in their daily lives while these same customers help internal teams identify and fix any software bugs that detract from the user experience.

"Both automation and real-world testing help to improve test coverage and augment internal procedures, but you need to know when the best time is to deploy one method or the other. To do this, prioritize testing based on the importance of the software being released, and the risk of that software failing."

Real-world testing changes the conversation from quality or speed to quality and speed. Test cycles can be kicked off at a moment’s notice and can deliver results in hours, or even minutes. The ability to scale up or down instantaneously also gives companies feedback quickly before going to market.

Understanding how customers see and interact with applications and software in the real world is incredibly valuable in order to ensure these expectations are met and customers are delighted. Solely relying on testing labs and in-house testing often means companies don’t receive the comprehensive feedback real humans provide that can help them meet customer expectations.

Both automation and real-world testing help to improve test coverage and augment internal procedures, but you need to know when the best time is to deploy one method or the other. To do this, prioritize testing based on the importance of the software being released and the risk of that software failing.

For example, if you are releasing a low-impact update and the risk of it breaking is minor, then it’s best to use automation. This will not only save internal resources, it will keep internal teams moving on higher-priority items. If, however, a release will be seen by your entire customer base, and it is something they have been anticipating for some time, then it should be tested using real-world resources. This will ensure the experience is thoroughly vetted before it’s released to a wider audience, while also identifying software issues that could turn your big release into a dud.

PICKING THE RIGHT APPROACH

No two software companies are alike, so no two testing strategies will be identical. Often a combination of automation, internal resources, and real-world testing provides the most comprehensive testing experience, so it’s important to review your technology options and testing needs in detail with those responsible for digital customer satisfaction before you buy. Armed with this information and a new understanding of the benefits these approaches offer, you’ll be better equipped to create a balance between the three approaches, ensuring you are doing everything possible to get closer to your customers.

ROB MASON is CTO and VP of Engineering at Applause and has more than 20 years of operational, management, and software development experience across many different companies, languages, platforms, and technologies. A meticulous builder and obsessive tester with an eye for talented engineers, Rob’s teams produce innovative, robust software. And through his own example of hard work and ingenuity, he inspires his teams to reach new heights.