From the Old French “definer”, definitions structure concepts by clarifying its boundaries, elements, and interactions—three elements we will cover in this article dedicated to Quality Engineering in the software industry.
The Quality Engineering definition you will find in this article builds upon the evolution of Lean, Agile and DevOps, but is not a mere rebranding of Quality Assurance to try selling you testing tools for your CI/CD pipeline.
Quality Engineering is a paradigm shift in how we act on our software production system to create a lasting business competitive advantage of Quality at Speed software with focused and pragmatic transformations.
Why Quality Engineering
Pressuring challenges with strong constraints
Accelerated changes, disruptive innovations, and a globalized competition in a BANI world are key traits of the so-called “digital transformation”. In that context where best practices are easily replicated, competitive advantages through operational excellence are at best, temporary.
Organizations are therefore facing numerous digital challenges to survive:
- Continuously deliver value to remain competitive
- Make investments and choices with low predictability
- Deliver successful experiences to “users” we don’t directly interact with
- Deliver abstract increments fast, and adapt them through experiments
- Streamline end-to-end complex and interdependent processes.
At the same time, our ecosystem evolves adding more constraints:
- Empowered customers want real-time solutions, else switch
- Positions are unfilled at 25% while employees rotate at 30%
- Resources are becoming more scarce at all levels.
Digital business speed is mandatory
Many organizations have the only choice to go digital to survive, but face many problems when trying to deliver software with always more speed: increased lead-time, rework, and recurring problems complex to understand where it is not only a matter or adopting DevOps, Agile, or a specific tooling.
Industrial models of economies of scale are not sufficient anymore. New actors with a better value proposition improving faster can completely disrupt an existing business in a matter of months. Fast business adaptation with sustainable speed has become the most valuable competitive advantage.
Short-term speed results in business failure
Confronted with the speed imperative, many organizations focus their effort in “accelerating” the rhythm of value delivery. While this tactic can result in short-term with significant cost, the accumulation of debt will end up by slowing down the rhythm of iteration without quick-fix to reverse the situation.
This model fails to survive in an competitive, unpredictable and complex digital environment where sustainable software speed is the only competitive advantage that can keep a continuous flow of value delivery.
Siloed initiatives tend to end up as waste
In the dynamic landscape of software development, a plethora of improvement initiatives abound – from Agile methodologies to DevOps practices, platform engineering to SRE principles, and beyond. The true challenge lies in discerning the initiatives that will yield the most impactful and lasting results.
In a world where time and resources are finite, organizations must carefully select and concentrate their efforts on the most valuable priorities. The key is not merely to adopt fashionable practices for the sake of trendiness, but to strategically invest in initiatives that can create a significant and sustainable transformation.
Siloed endeavors risk scattering resources without delivering commensurate gains, underscoring the critical importance of a focused, holistic approach to achieve substantial and enduring business improvement, ensuring that resources are utilized efficiently and wastage is minimized.
Defining Quality Engineering
What Quality Engineering is not
Quality Engineering is not Quality Assurance Engineering.
“Quality Engineering” can make us think that the goal is to engineer quality into the software delivery process with more testing automation and integration within the pipeline. While these improvements are needed, they are clearly not sufficient to address non-technical topics such as organization or collaboration.
Software production results from the collaboration of interdependent parts of its system composed by people, processes, and technology. The injection of Quality can therefore not be limited to the software delivery pipeline and must cover the entire areas altogether composing the software production system.
What is Quality Engineering
The definition of Quality Engineering is:
“Quality Engineering applies total quality management to software production through a systemic approach that builds Quality at Speed capabilities for sustainable business speed.”
—Antoine CRASKE
Quality Engineering is the application of Total Quality Management to the software industry, consolidating matured practices of different domains as part of the software production system leveraging the power of architecture to assemble the most valuable parts.
The value of Quality Engineering
The essence of Quality Engineering lies in optimizing investments for maximum returns. A focused approach enables businesses to concentrate their efforts on what truly matters, thereby amplifying the impact of every endeavor. This strategic alignment not only streamlines processes but also addresses the persistent Quality at Speed pains that have been impeding progress.
In a context where the business environment is even-more competitive with scarce resources, organizations can prepare for uncertainty building their software production system as their lasting competitive advantage over competitors with slower adaptation, learning, and innovation.
Understanding Quality Engineering
The understanding of Quality Engineering requires to frame the core principles, boundaries, and concepts enabling to inject quality in every element of the software production system.
Quality Engineering philosophy
The underlying logic of Quality Engineering is summarized in the mantra “Build Better, Build Faster” which represents the need to focus on building better on every aspect of software production to unlock sustainable speed.
The paradigm shift of Quality Engineering relies on the following principles:
- Business depends on software Quality and Speed
- Quality embraces the entire software production system
- Speed is sustainable only through built-in quality.
The north star of sustainable business speed requires focus on the second point to make quality a first-class citizen in the entire software production system. It consequently requires setting the boundaries of Quality Engineering.
Quality Engineering boundaries
With a systemic view, Quality Engineering acts on the software production system taking as input digital business ideas and creating as output a software increment actually in operations, and ideally, valuable.
On the broader big picture, the left and right boundaries of Quality Engineering start once there is a minimal software production system, usually at a start-up stage with 2-3 people, and up the remaining business maturity stages through serie-A and serie-E with about 500 FTEs dedicated to software production.
At the bottom, Quality Engineering identifies the necessary software production elements but doesn’t detail their complete implementation, left to the existing body of knowledge in each area. On the upper boundary, Quality Engineering does not cover what the software production system is used for, that is the features.
Quality Engineering body of knowledge
From an implementation perspective, Quality Engineering requires an understanding of the big picture to discover systemic issues and architect focused solutions that effectively solve key causes and limiting factors.
The key areas of knowledge of Quality Engineering are:
- Lean, Agile, DevOps for consolidating the software production areas
- Systemic-thinking and architecture as core to the systemic approach
- Organizational and human behavior for the actors’ collaboration.
Lean practices, known for their efficiency and waste reduction principles, are interwoven into the fabric of Quality Engineering. The integration of Transformational Leadership and Transition Management principles ensures a smooth evolution towards a more optimized software production system.
Quality Engineering builds the big picture of the software production system upon multiple software industry practices acquired through years of experience, knowledge-acquisition and community sharing in the QE Unit.
The simplified elements and framework of Quality Engineering enables you to leverage that body of knowledge without having to learn them all.
Key Elements of Quality Engineering
The foundation of Quality Engineering is built on understanding and addressing both Quality and Speed-related challenges.
The systemic approach of Quality Engineering supports a global view of the software production system considering it as a sum of parts whose inputs and outputs are improved building up Quality at Speed capabilities.
Quality Engineering Building Blocks
The concept of building blocks are essential elements of Quality Engineering that collectively pave the way for effective software production.
Quality Engineering structures these 3 core building blocks:
- Quality at Speed Pains
- MAMOS System Areas
- Outputs and Outcomes.
Quality at Speed Pains
The first two critical dimensions are Quality Pains and Speed Pains. Quality Pains encompass challenges related to the different facets of software production quality, while Speed Pains address the hurdles of achieving rapid and efficient software delivery at different levels of the organization.
Quality Pains are more subjective but can more easily talk to multiple stakeholders that are not necessarily familiar with the internals of software production. They can have different forms from dependency on one person, or lack of usability.
Speed Pains are more easily supported by metrics and numbers being more factual. The challenge in that case relies more on consolidating and framing correctly the value in perspective and compared to others.
MAMOS System Areas
At the heart of Quality Engineering is the MAMOS software production system that encapsulates the key principles and practices for building Quality at Speed capabilities, ensuring alignment and coherence across various aspects of software development through three levels.
MAMOS areas
MAMOS structures the software production system into key areas that all together represent the sum of the parts, but allow to focus in each context with cohesion.
The 5 areas of MAMOS are:
- Methods: streamline collaboration for lean value delivery
- Architecture: structure the quality-driven technology platform
- Management: enable actors and teams to deliver value
- Organization: align teams structure and boundaries for quality
- Skills: ensure competencies availability to support capabilities.
The following points are important in the alignment of the model:
- Culture is not a dedicated system area in itself as it is shaped and results from the interactions and dynamics of the other areas of MAMOS
- Architecture area encompasses the entire set of technology matters, from upstream design, security, up to the operations management
- Skills area represent the competencies mapping, acquisition and retention strategy including internal and external means.
MAMOS sub-areas
The MAMOS framework is composed of distinct areas, each containing a set of sub-areas shaping the software production system. These sub-areas provide a detailed blueprint for addressing various aspects of development, ensuring that Quality Engineering principles are effectively integrated into every area.
MAMOS sub-areas can be retrieve from this list:
- Methods: Focus, Plan, Design, Specify, Implement, Deliver, Deploy, Operate, Learn, Improve
- Architecture: Urbanization, Make or Buy, Modularity, Integration, Security, Self-service, Observability, Resilience, Experimentation, Flexibility
- Management: Vision, Alignment, Choices, Collaboration, Empowerment, Performance, Risks, Fail fast, Measurement, Development
- Organization: Design Choices, Commitment, Organizational Structure, Communication, Leadership, Management, Engagement, Workforce Planning, Organizational Learning, Organizational Culture
- Skills: Expertise Mapping, Strategic Partnerships, Remote Enablement, Development Facilitation, Talent Attraction, Talent Retention, Teamwork, External Communication, Community Building, Continuous Learning.
MAMOS units
Units further break down the sub-areas into actionable components providing a granular understanding of how each sub-area can be practically implemented to enhance the software production process.
Let’s illustrate this with a specific example from the Methods area & Focus sub-area:
- Strategy Definition: Establishing a clear roadmap for the development process, aligning it with the overall business objectives
- Priority Definition: Identifying the most critical tasks and features that require immediate attention, ensuring efficient resource allocation
- Scope Definition: Clearly outlining the boundaries and extent of the project to avoid scope creep and ensure focused execution
- Goals Definition: Setting specific and measurable goals that guide the team’s efforts towards successful outcomes.
Each of these units is used for assessing the level and improving its level if revealed as being a key limiting factor in the software production system. The exhaustive list of MAMOS units can be used for a Quality Engineering transformation.
Outputs and Outcomes
The connection between efforts and results is pivotal in Quality Engineering and put in actions through the ‘link outputs to outcomes‘ mantra. The two elements are key system outputs that validate the efficacy of the entire process.
The 2 keys elements in these measurement building blocks are:
- Outputs encompass factual production results
- Outcomes are more qualitative valuable points stemming from outputs.
Both empowers you to comprehensively assess the impact of your actions. Consider employing Accelerate metrics, such as the four key measures widely recognized in the industry and more easily known by the entire team.
Moreover, outcomes can be directly linked to the quality and speed pains initially identified. This strategic alignment not only streamlines your Quality Engineering endeavors but also ensures that the outcomes achieved align with your organization’s overarching goals and aspirations.
The MAMOS Framework for Quality Engineering
The MAMOS framework provides a structured way to leverage the building blocks of Quality Engineering to drive valuable and focused transformation of the software production system. It relies on core principles and the AAA 3-step iterative process.
MAMOS 3-step iterative process with AAA
The MAMOS 3-step process is centered around AAA–Assess, Architect, and Accelerate–standing as the guiding iterative framework that encapsulates a methodical approach encompassing comprehensive evaluation, strategic design, and transformational acceleration.
The AAA process overview covers 3 steps that:
- Assess Quality and Speed Pains
- Architect MAMOS solutions for systemic issues
- Accelerate Delivering outputs and outcomes.
Assess
The Assess phases consist of an in-depth evaluation of Quality and Speed Pains to identify bottlenecks, inefficiencies, and pain points in the software production process. It requires a thorough analysis of the current state to uncover underlying challenges.
Architect
The Architect phases crafting holistic solutions leveraging the MAMOS Framework to address systemic issues identified in the Assess phase. The end-to-end architecture is applied to the software production system in the five areas of Methods, Architecture, Management, Organization, Skills.
Accelerate
The Accelerate phases transform solutions into tangible outcomes implementing strategies and activities identified in the Architect phase delivering measurable outputs and outcomes that align with business objectives and develop Quality at Speed capabilities.
MAMOS Framework Principles
Effective transformations are based on a good understanding of the context, strong decisions, and focused actions in a system that sustain an initial change impulse and align the system elements to avoid going back to the inertia.
Quality Engineering transformation requires to follow these key principles:
- Step back to see the big picture, involve relevant stakeholders, and other actions to better understand better the system
- Emphasis over completeness to organize properly your diagnosis and actions on key areas without getting lost in the details
- Focus on limiting factors to prioritize efforts where there is more leverage for improving outcomes and outcomes.
- Timebox delivery to maintain focused actions that will avoid the addition of waste and force to find valuable incremental steps.
- Link output to outcomes to make sure efforts are delivering expected value and still relevant to maintain on the current focus.
Implementing Quality Engineering in Your Organization
The implementation of Quality Engineering requires a systemic and strategic approach to organizational transformation that will gain sufficient initial support, grow a guiding coalition, and deliver value over the initial impulse building sustainable Quality at Speed capabilities.
Quality Engineering Transformation Model
Quality Engineering transformation resides on these 5 activities:
- Link software pains to business impacts
- Create awareness and gain buy-in
- Understand key issues and pain points
- Co-architect Quality Engineering solutions
- Drive a Lean enabling transformation.
Link software pains to business impacts
The first crucial step in this journey is establishing a strong connection between the software-related challenges your organization faces and its overarching business priorities. This alignment sets the foundation for Quality Engineering to be positioned as a powerful driver of value and competitive advantage.
Create awareness and gain buy-in
To successfully introduce Quality Engineering, creating awareness and gaining buy-in from stakeholders is pivotal. This involves communicating the value proposition of Quality Engineering and illustrating how it can address pain points, optimize processes, and contribute to achieving strategic business goals.
Understand key issues and pain points
A deep understanding of your organization’s key issues and pain points is essential. This involves comprehensive analysis and assessment to identify bottlenecks, inefficiencies, and areas that require improvement. By pinpointing these pain points, you can tailor your Quality Engineering initiatives to directly address them.
Co-architect Quality Engineering solutions
Collaboration is at the heart of Quality Engineering. The process of co-architecting solutions involves cross-functional teamwork, where experts from various domains come together to design strategies, processes, and frameworks that enhance the quality of software products while maintaining speed and efficiency.
Drive a Lean enabling transformation
Quality Engineering is not just about implementing new processes; it’s a holistic transformation that impacts the entire organization. As a leader, you’ll play a crucial role in driving this transformation. This involves fostering a culture of quality, facilitating skill development, and supporting the adoption of new practices across teams.
Leverage MAMOS Blueprints
The challenges faced by companies across different locations and timeframes often share common points. While contexts may differ, patterns of problems and solutions emerge that can be leveraged for impactful outcomes.
MAMOS Blueprints are packaged software production systems across the five areas of MAMOS to common use-cases. They can be used to learn about how a particular use-cases works, to then use it to perform more quickly a gap analysis or define a transformational action plan.
MAMOS Blueprints use-cases range from adapting to different stages of growth, such as Series A, B, C, D, E funding rounds, or catering to specific operational models like start-ups, scale-ups, scale-ins, scale-outs, and global scalability. Specific practice models like FinOps are in construction within the community.
Quality Engineering or Die Trying
Quality Engineering represents the need for transversality in our industry to effectively support the business in its continuous reinvention.
The future of every organization depends on its capability to develop the supporting Quality at Speed capabilities to effectively build the most valuable asset of their digital business : their software production system.
Making things happen requires to effectively lead on the big picture over organizational boundaries channeling efforts and resources on the most important priorities.
Wherever your the Head of, Director, C-level of Engineering, Quality or Technology, the choice is yours to start having an impact by embracing the Quality Engineering philosophy of “Build Better, Build Faster” architecting Quality at Speed.
License
MAMOS and all QE Unit content under the CC-Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0)
References
Antoine CRASKE, On Defining Quality Engineering (2022). QE Unit.
Jeroen Kraaijenbrink (2022), What BANI Really Means (And How It Corrects Your World View). Forbes.
The State of Organizations 2023, Mc Kinsey & Company.
Sunil Luthra, Dixit Garg, Ashish Agarwal, Sachin K. Mangla (2020), Total Quality Management (TQM): Principles, Methods, and Applications (Mathematical Engineering, Manufacturing, and Management Sciences). CRC Press.
Nicole Forsgren, Jez Humble, Gene Kim (2018), Accelerate: The Science of Lean Software and DevOps. IT Revolution Press.