How Do You Ensure Quality in the Software You Create?

QualityAccording to AppsFlyer, 1 in every 2 apps installed are uninstalled within 30 days. That means you have a really short time period to impress your users before they abandon your app and try something else. So you need to be delivering quality - right from the get-go. 

How to ensure quality in the software you create is a big discussion among the QA and wider tech industry, and there are many ways you can go about doing it.

So, we're here to cut through the noise and deliver detailed advice on achieving quality.

We decided to speak to tech experts about how they go about delivering quality, so that we could provide you with the best possible insights into producing high-quality software. Here’s what they said: 

1) Create a quality culture


This is all about fostering the correct environment that will produce quality software. As outlined in Leading Quality: How Great Leaders Deliver High-Quality Software and Accelerate Growth, creating a quality culture is:

  1. Understanding the individuals you need to influence: realising who the decision-makers are in the company, and who will be able to influence QA
  2. Creating empathy to increase alignment between teams: making sure all teams are aligned on a shared view of quality
  3. Supporting your quality narrative with evidence: backing up your views with evidence of QA practices improving key metrics
  4. Cultivating internal champions: ensuring you have advocates of your vision within the company


Screenshot 2020-02-05 at 14.17.46

These four steps will help you align your team, increase cross-functional awareness of quality and put QA at the forefront of the minds of the SLT. According to Dominic Holt, creating this quality culture is all about hiring the right people to advocate quality: 

"In order to ensure quality in software development, it starts with hiring the right people who take an engineering approach to writing software so that anyone can understand how it works rather than just the person who wrote it. Once you have the right people in place, you need to install the right processes and quality checks in order to set appropriate expectations for the team”

- Dominic Holt, CTO, Valerian Technology

2) Put the user first

“Quality is essentially about meeting user expectations. Consistently. Reliably. Confidently.

- Karin Dames, Editor of Teal Times

We know that the user rules in software development. If your UX isn’t up to scratch, your customers will simply go elsewhere. The average app lost about $33,000 a month in 2019 due to uninstalls, so a dissatisfied user truly can directly impact your ROI. 

But, sometimes, in the busy periods of release cycles and new updates, the user can get lost among the noise. That’s why putting the user first, always, is a fantastic way to ensure you are delivering quality. According to Yoni Svechinsky:

“UX is one of the most important things at Monadd, to maintain a high level of quality we follow three rules:

1. Does this make sense? - The user journey needs to be clear for the user, at every point everything should work exactly as expected.

2. Staging first - Nothing goes straight to the live environment. Any change, big or small, goes first through the staging environment where it gets tested.

3. Everybody tests - We have a checklist that everyone must go through for tests. No pushing to production before every person on the team greenlit the release."

- Yoni Svechinsky, Co-Founder & CTO, Monadd

3) Test early and often

Regular testing and a structured QA strategy is a surefire way to ensure quality in your product. Multiple testing cycles will catch the bugs that  thinner testing strategies may have missed. 

According to Naveen Kumar:

“Quality of a software relies on testing often and involving testers very early in the design and development life cycle. Deploy a risk management practice to identify, assess, prioritize, measure, and mitigate. Once the product goes live, listen to customer feedback for a consistent improvement”.

- Naveen Kumar, Performance Test Engineer, QAInsights.com

By testing early, and often, you can catch bugs that could be more costly down the line. A study by Capers Jones found that 85% of software bugs are introduced in the design and build stages of development, sometimes even before a line of code is written. So, by testing early you can work to fix these bugs before they make their way into release. 

4) Don’t just have one testing method in your toolkit

According to Uzma Yasin, Head of Products and New Initiatives at Kualitatem, "correct understanding and scoping of testing requirements and identification of the testing types required” are both of vital importance to ensuring quality in the software you create. 

By breaking down each part of your product you want testing, and deciding which testing method would be appropriate for that particular area, you can ensure you don’t waste precious time and resources on the wrong type of testing. This will deliver better results and better quality. 

Find out more about different testing types, and testing according to product maturity here. 

5) Slow down the process

If your dev and QA teams work under intense pressure to release by tight deadlines, the likelihood of technical debt will increase, and the quality of your products may decrease as a result. 

Technical debt is often inevitable, unfortunately, but slowing down the release process is a great way to reduce it. Take your time to put best practices in place, and reduce the likelihood of costly fixes in the future. According to Emad Georgy,

“One of the first things developers need to do to improve the quality of their software is to eliminate as much technical debt from the code as possible as early as possible in the process. Every architecture decision, technology stack decision, and even code review should have an eye for durability - does this progress our architecture forward? Will this scale for years to come, for 10x and onwards of our growth? Teams that succeed have metrics, accountability mechanisms and processes in place that reveal the impact and risk to the long-term durability of these daily decisions.” 

- Emad Georgy, CTO of Georgy Technology Leadership

Evan Volgas similarly agreed with Emad’s sentiments:

“Too often, engineering leaders allow their teams to get sucked into an endless race of adding more features, without leaving any time to clean up the ones that have been added. Tech debt builds. People lose focus. They get frustrated and distrustful of existing codebases, preferring to write everything from scratch. If you want to ensure high-quality software, you have to give your engineers time to clean up after features are added. They also need time to orient their thinking around where to focus next.”

- Evan Volgas, Data Productivity Engineer & founder of the Swarm Advisory Group

Deliver quality

“As a perfectionist, the way that I ensure that the best product is put out is by asking myself if I would be proud to have it in my portfolio and on display. If I feel I would not be proud of it, then it does not align with my standards. We have built our organisation around others who feel and think the same.”

- Joe Flanagan, Fitness App Developer at GetSongbpm

These steps will help you on your journey to delivering quality in the software you create.

  1. Create a quality culture

  2. Put the user first

  3. Test early and often

  4. Slow down the process

Remember, entirely bug-free software isn’t likely, and the perfect app is not possible. But, there are precautions you can take to safeguard the quality of your product and ensure a great customer experience as a result.

Book a call with one of our growth experts today for a free consultation to find out  how you can ensure quality in every software release.

Was this article useful?

Great! We'd love to send you more articles like this

Subscribe

white-dots-small@2x

Join 24,389 people who already get the latest QA advice - unsubscribe any time!