,

What is software quality and building quality-in?

Have you said “wow, this is exactly what I wanted” recently? What made you say it? More on that later . 

Let’s first try understanding product quality and how, as a producer, obsession for quality makes your users happy. The quality of a product or service is defined as its “degree of excellence,” or how outstanding or good it is. A high-quality product meets the needs of the user. Product quality doesn’t involve the number of cool features, the effort spent in testing, or great marketing, but simply the product’s ability to satisfy users’ needs. 

Let’s focus on software product quality, though you can apply the principles discussed here to any product or service. 

Software product quality 

The software product needs of a user can be classified as functional and non-functional. 

  • Functional are those that enable the user to perform their role and responsibility like features and behaviors. 
  • Non-functional are those that enable the software to operate like performance, resiliency, and security. 

A way to measure software product quality is to measure how far the software is from satisfying the users’ needs. This gap can be measured by tracking the following: 

User feedback 

Feedback includes defects, enhancements, and new feature requests raised by the user. 

Usage 

Software usage is how many times it’s used, how many critical tasks were completed, and how a task is completed. 

Software quality is said to be improving if the graphs for the previous information resemble these.

Building quality-in 

How can one ensure that a product in development is of high quality? 

Generally, we fall into the trap of doing quality control (thinking it is quality assurance) by passing an already developed product through a validation process defined by the quality assurance experts. The trap is when such validation is happening, such as after creating the product. 

Building quality in is continuously validating the product — against user needs and during development — to ensure each product increment, once ready, meets quality standards. It requires adopting a product development methodology that has the following characteristics: 

  • The user at the center of all decisions made for the product 
  • Team collaboration takes place at every stage of product development 
  • Product increments are continuously validated against user needs 

There are several well-known product development methodologies, which can be implemented together to ensure product quality. Below are some of them, along with tools and technology that help simplify their adoption.

MethodologyTypes of tools and technology
User-centered design processUser experience design tools for 
Primary/secondary research 
Information architecture 
Medium/high fidelity prototypes
 
Acceptance test-driven developmentATDD/TDD tools for automation of acceptance criteria (specification by examples in tabular or gherkin style) 
Agile practices like 
Collaborative product backlog refinement 
User stories 
Specification by example 
Pair programming 
Continuous integration 
SCM tool 
Supports sharing 
Is distributed 
Allows cheap branching 
Supports multiple workflows 

CI/CD solution 
Supports building/deploying/automating any software 
Is distributed 
Easy to configure and maintain 

Subscribe

For more such exciting content and allowing us to be part of your career journey