📓 Cabinet of Ideas

Designing the Gateways of Quality in the Software Development Process

Designing the Gateways of Quality in the Software Development Process #

Excerpt #

For over 20 years, I have been deeply immersed in software development, witnessing firsthand the complexities and challenges of managing quality throughout the Software Development Life Cycle (SDLC). My journey into refining these processes began during my MBA in Process and Quality Management when


Valéria De Albuquerque Valéria De Albuquerque

Valéria De Albuquerque #

Senior + Project Portfolio, Process, Product, Quality & Innovation Manager | Scrum Master & Product Owner | Circle Community Manager at BairesDev | MBA & MSc #

Published Sep 2, 2024

For over 20 years, I have been deeply immersed in software development, witnessing firsthand the complexities and challenges of managing quality throughout the Software Development Life Cycle (SDLC). My journey into refining these processes began during my MBA in Process and Quality Management when I started identifying the pain points in the projects I handled. One project, in particular—at a Nigerian bank with a branch in England—exposed the structural, cultural, and procedural gaps that made software development especially difficult. I continued my studies and experiments through my MSc, where my thesis focused on the official Design of the Gateways of Quality applied in the SDLC including  the concept of hybridization. The question arises: how do multicultural and structural challenges relate to quality? By mapping out the processes, I realized something that seems obvious but is often overlooked in practice—quality must be integrated into the software development process from day one, starting with product creation and continuing through to final delivery in production.

Identifying Pain Points #

In that specific project, we faced a combination of issues typical in international and cross-cultural environments. We had three teams located in Lagos, London, and globally dispersed members from our own company. Each team had a different approach, communication style, and understanding of the requirements, leading to misalignment and inefficiencies. The lack of clear processes and real ownership meant that quality assurance and consistency suffered across all teams.

This experience drove me to start collecting data from various projects I worked on during and after my MBA. I began to adapt and implement changes in our processes to ensure consistency, clear communication, and better quality outcomes. One crucial step was the realization that quality needs to be embedded in every phase of the development process, not just during testing or QA stages.

The Inception of Gateways of Quality #

The idea for “Gateways” was born out of the need to protect and guarantee the quality of every incremental piece of software we delivered. I collaborated with the Product Owner (P.O.) on the client side, who was facing similar challenges. By working together, we were able to design a series of checkpoints or gateways that acted as quality filters throughout the entire SDLC. These gateways aimed to catch issues early, promote cross-team collaboration, and ensure that each phase of development adhered to stringent quality standards.

The Gateways of Quality, in essence, are structured checkpoints placed at critical stages of the SDLC to validate that the work meets predefined standards before moving forward.

Defining the Flow with Quality Gateways #

Here’s a breakdown of how we integrated quality gates into each step of the process:

  1. Requirement Gathering:
  2. Solution Design and Technical Specification:
  3. User Story Presentation and Design Inclusion:
  4. Sprint Planning & Execution:
  5. Development & Unit Testing:
  6. Code Integration and Quality Assurance:
  7. User Acceptance Testing (UAT):

Benefits of Implementing Quality Gateways #

  1. Catching Issues Early: By integrating gateways early in the process—during requirements gathering, design, and planning stages—many issues were caught before they snowballed into larger, more complex problems later in the pipeline. This proactive approach drastically reduced rework and enhanced quality at every stage.
  2. Cross-Team Collaboration: Each gateway acted as a point where all teams—developers, testers, analysts, and designers—came together to validate the next steps. This promoted a shared understanding, reducing the silos that often lead to misaligned expectations.
  3. Cost Efficiency: Bugs caught in early stages are much cheaper to fix than those found during later testing or production. By integrating quality checks early, we drastically reduced the overall cost of software development.
  4. Clear Roles and Responsibilities: Establishing these quality gateways clarified the roles and responsibilities of each team member. Every team knew when and how to contribute, ensuring that nothing was overlooked and no assumptions were made.

Lessons Learned: Ensuring Continuous Quality #

One of the key takeaways from this experience is that quality cannot be confined to just one part of the development process. It must be embedded across every stage—from requirements gathering to final delivery. Another important aspect is the need for constant measurement. We created dashboards to monitor progress, assess quality metrics, and provide transparency across teams.

We also implemented a Testathon—an exploratory testing activity performed by all team members to identify bugs and areas for improvement in new functionalities. This created a sense of shared responsibility for the product’s success, not just relying on the QA team but involving the entire squad.

Finally, ensuring proper bug management processes and ticket prioritization ensured that we stayed focused on delivering value, without getting bogged down by low-priority issues during the sprint.

Conclusion: Gateways of Quality as a Continuous Process #

The development and implementation of the Gateways of Quality was not an overnight process. It required continuous adaptation and learning, as well as close collaboration across teams and cultures. However, it ultimately led to higher quality software, reduced costs, and smoother development cycles.

The key takeaway is that quality should not be left solely to the testing phase. Instead, it should be respected and implemented throughout the entire SDLC, with clear roles, responsibilities, and checkpoints ensuring that each step of the process contributes to the overall success of the project. By doing so, we not only improve the quality of the work but also ensure a more fluid and efficient process for everyone involved.

Explore topics #