BuildWithRahul

← Back to blog

Published on 04/23/2023 11:38 by Rahul

Thought Experiment - 🧭 Exploring the idea of Quality Engineering

Recently, as part of Delivery to one of our customers, our team embarked on an exciting experiment with a high-level Discovery framework, where we delved into the Why, What, Where, and How aspects of our work. This approach not only streamlined our efforts but also fostered a shared understanding of our journey, leading to impressive outcomes in both the discovery and delivery phases.

Although the specific techniques employed during the discovery phase may warrant a separate discussion, the success of our experiment sparked a fascinating thought: What if we apply the same lens to evaluate Quality Engineering? In this blog post, we will explore this intriguing concept, examining how the principles of QE can be better understood and appreciated through the insightful perspectives gained from our Discovery framework experiment.

Why Quality Engineering?

The importance of maintaining quality, or striking a balance for the sustainable operation of a business, is widely acknowledged. However, In my view, the emergence of Quality Engineering (QE) as a distinct concept can be attributed to the prevalent misperceptions surrounding disciplines like Quality Assurance (QA) & Testing in the software industry.

In an insightful talk, the speaker eloquently highlighted some of these common misperceptions that led to the need for a more comprehensive and collaborative approach to ensuring software quality, embodied by QE:

By recognizing and addressing these misperceptions, Quality Engineering paves the way for a more holistic, collaborative, and effective approach to software quality, fostering a culture of shared responsibility and continuous improvement.

What is QE?

Quality Engineering (QE), as defined by Wikipedia, is an engineering discipline focused on the principles and practices of product and service quality assurance and control. While this definition may capture the essence of the concept, it’s vital to explore its practical implications within the software industry.

Quality Engineering can be thought of as an engineering discipline that serves as a catalyst, enabling teams to embrace a Product Mindset and Systems Thinking, which are central to Agile & DevOps.

By seamlessly integrating with lean and agile product and project discovery and management frameworks, QE fosters a cohesive approach to software delivery. It also complements engineering disciplines such as Site Reliability Engineering, Chaos Engineering, and Platform Engineering, empowering cross-functional teams to deliver faster while building observability across the value streams.

Quality Engineering champions continuous learning and improvement, facilitating the development of the technical, process, and cultural capabilities. Drawing upon ideas from Continuous Testing and Holistic Testing, QE promotes a “testing-as-a-way-of-thinking” mentality, transforming it into an integral aspect of the software delivery lifecycle, akin to a lifestyle.

In essence, Quality Engineering represents a paradigm shift in the software industry, merging the core principles of quality assurance with the agility and adaptability required for modern software development, ultimately driving innovation and excellence. QE helps create an environment that fosters innovation, excellence, and most importantly, a human-centred approach to delivering quality software solutions.

Where to leverage QE?

Quality Engineering (QE) is a highly adaptable discipline that plays a significant role in a wide range of ecosystems seeking to transform their ways of working or delivering value faster. By embedding testing as “a way of thinking” across the entire value stream, QE acts as a powerful catalyst for cultural change.

The importance of QE in Agile and DevOps ecosystems is evident, but its influence extends beyond these frameworks. Even in relatively traditional environments, QE can bring about much-needed change by enhancing the observability of the delivery process and encouraging teams to continuously improve.

Embracing a holistic perspective, QE recognizes and addresses the unique needs of both build and buy ecosystems, empowering teams to cultivate technical, process, and cultural capabilities. Although the methods of developing these specific capabilities may differ across various environments, the underlying ideology and philosophy of QE remain steadfast and consistent, fostering a unified approach to quality across diverse contexts.

In essence, Quality Engineering is all about empowering people, nurturing collaboration, and promoting a growth mindset, regardless of the ecosystem in which it is applied. By adopting a human-centred approach, QE paves the way for more efficient, resilient, and innovative software development processes that deliver exceptional value to end users.

How to Engineer Quality?

To engineer quality in software delivery ecosystems, it’s vital to have a deep understanding of Product Mindset, Systems Thinking, and their connection to approaches like Agile and DevOps.

One of the primary challenges in engineering quality is gaining a well-rounded understanding of the landscape, considering cultural, process, and technology aspects, and then designing and continually refining a solution tailored to these unique contexts. To help us navigate this challenge and effectively integrate quality into the management, development, operation, and maintenance of IT systems, I’ve tried compiling a list of guiding principles that take these diverse aspects into account:

By adopting these principles in your software delivery ecosystem, you can cultivate a culture of continuous improvement, collaboration, and innovation, ultimately leading to higher-quality products and services that delight your users.

Written by Rahul

← Back to blog
  • Quality ❤️ Productivity

    Quality ❤️ Productivity

    Notes and readings on the intrinsic relationship between Quality and Productivity

  • 🧭 Exploring the idea of Quality Engineering

    🧭 Exploring the idea of Quality Engineering

    In this blog post, we dive into the fascinating world of Quality Engineering through a simple discovery framework. We'll examine this concept using high-level constructs such as 'Why?', 'What?', 'Where?', and 'How?', providing a thorough understanding of the importance and application of Quality Engineering in modern software development and delivery.

  • 🤝 Driving collaboration with Delivery Canvas 🎨

    🤝 Driving collaboration with Delivery Canvas 🎨

    The blog emphasizes the importance of Capability and Delivery in consulting and introduces the Delivery Canvas as a solution to improve collaboration and communication across teams. The visual tool promotes transparency, facilitates structured conversations, and accelerates capability-building efforts, fostering a collaborative culture within the organization.

  • 🙅 Don't automate manual tests! 🙅

    🙅 Don't automate manual tests! 🙅

    In the rapidly evolving landscape of software development, test automation has become an integral component of efficient and reliable product delivery. As teams venture into the world of test automation, a common pattern emerges - transforming existing manual tests into automated ones. This strategy, while common, is not always beneficial. Infographics, recommended readings and bookmarks in this post can guide you through the transition from manual to automation testing.