With the rise of digitalization, software quality has emerged one of the major competitive differentiators for businesses. Quite simply, the ability of the development organization to deliver the highest quality software has become foundational to business success. Within most organizations, teams view quality as being driven by engineering, focusing on the question "Did we build things right?"
Approaches like continuous integration, continuous deployment, and continuous testing are becoming pervasive, but these disciplines all tend to be focused on the implementation stage of the development lifecycle, and on answering, “Did we build the right things?”
While these concepts are invaluable, they need to be augmented by another key concept: continuous validation. In order to understand what continuous validation is about, it is helpful to return to the origins of quality as stated by Gerald Weinberg:
"Quality is some value to some person."
This definition helps to underscore the integral connection between quality and value, and within this context, customer value specifically. Starting with this as a perspective, we look at the question “Did we build the right things?” and enhance it by asking “Did we build the things right?”
When discussing user journeys with customers, teams rarely focus on verifying quality. This remains a persistent gap between engineering and the business. Ultimately, the risk is that engineering loses the critical context: Why should a certain feature or product even be built for the customer?
Aiming for an extended approach bridging the gap between quality engineering and business, continuous validation addresses the following concepts:
The basic idea is to establish feedback loops along the entire development path, from gathering the initial idea until final delivery to production. Throughout, we’re validating that we still deliver value to some person. This feedback is only valuable if it is received in a timely manner and it can be related to a specific value being delivered. This is aligned with the fail-fast approach, which is well known among engineers managing CI/CD pipelines.
Let's have a closer look at what it actually means to establish feedback loops along the development journey.
Using Scaled Agile Framework (SAFe) as a foundation for the development journey stages, continuous validation proposes feedback measures for each stage. It is key to ensure that the context about why we build something of value is kept in mind and regularly validated to ensure it is still of value to some person. Following is information on each stage:
Multiple measures have been mentioned and each team has to figure out which of the continuous validation measures are appropriate for their environment. In order to know where to start, you only need to ask a few questions:
Answering these questions helps guide you to the corresponding stages mentioned above. Any of these activities help you to get closer to delivering customer value and therefore improves the day-one quality perceived by the customer.
Following are the key takeaways for successfully pursuing continuous validation:
In order to establish basic continuous validation, one option would be to consistently implement behavior-driven development (BDD) within the development path. This will be a topic we’ll dive into in an upcoming blog post.
Stefan Heil has over 17 years of experience in the IT industry, having worked for global leaders in the domains of financial services, public safety or oil & gas as developer, architect, consultant and development manager. Currently working as Manager R&D for Broadcom his main focus is to boost agility, emphasize new trends and to ensure that customers get software that solves their business needs.
bizops.com is sponsored by Broadcom, a leading provider of solutions that empower teams to maximize the value of BizOps approaches.