For those obsessed with quality

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.

MethodologyType 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

Want to learn more?

At ION, our obsession with quality made us adopt such methodology and practices for product development several years ago. We offer tools to enable implementing ATDD and automate user acceptance testing of complex solutions.