top of page
  • Cotopaxi Lyon

Quality Beyond QA: Why a Comprehensive Approach in Software Development Matters



Right now in the software development industry, there's a temptation to prioritize speed over quality. How often have we heard C-level executives talk about their company's "go fast and break shit" mentality? We have seen firsthand with the Crowdstrike blackout that there is a significant human cost to such an approach.


It's crucial to understand that this mindset doesn't just deprioritize software testing - it leads organizations to neglect integrating quality throughout the entire Software Development Life Cycle (SDLC), and across the organization as a whole. Quality products cannot emerge when "quality" rests solely on the shoulders of one individual or team.


The Ripple Effect of Poor Quality

In software development, the consequences of neglecting quality extend far beyond end-user dissatisfaction. The ripple effect permeates the entire development process, creating a cascade of challenges that affect every team member and, ultimately, the organization's bottom line.

Let's examine the key areas impacted:


  1. Accumulation of Technical Debt: What begins as minor compromises—quick fixes and temporary workarounds—can rapidly escalate into a substantial technical debt. This accumulation not only complicates future development but also diverts resources from innovation and growth.

  2. Perpetual State of Urgency: When quality is not prioritized, teams often find themselves in a constant state of crisis management. This environment of constant firefighting prevents strategic thinking and proactive problem-solving.

  3. Employee Burnout and Turnover: The combination of high stress and a lack of job satisfaction leads to burnout. This, in turn, results in increased turnover, creating a cycle that's detrimental to team cohesion and institutional knowledge.


Consider a developer in this environment. Instead of crafting innovative solutions or tackling interesting challenges, they're continuously addressing critical issues in production. This reactive mode stifles creativity and hinders important future oriented decision making.


The Harvard Business Review highlights a crucial point: under stress, individuals tend to "reach for premature conclusions rather than opening ourselves to more and better options." In the complexity of product development, this stress-induced approach can significantly impair quality and innovation.


The true cost of neglecting quality extends beyond quantifiable metrics like bugs or technical debt. It manifests in the unrealized potential of your team, the innovative solutions that never materialize, and the gradual erosion of product quality as stress-induced shortcuts become standard practice.


However, this situation is not inevitable. By prioritizing quality throughout the development process, organizations invest not only in their products but also in their team's creativity, job satisfaction, and problem-solving capabilities. This holistic approach to quality is the foundation for building exceptional products and maintaining a competitive edge in the market.


As we move forward, we'll explore strategies for cultivating a culture of quality that benefits all stakeholders—from developers to end-users and everyone in between. By understanding and addressing the far-reaching impacts of quality, we can transform our approach to software development and drive sustainable success.


The Customer's Perspective: More Than Just Frustration

We've all experienced the frustration of buggy software, but the Crowdstrike incident, reported as the worst IT outage in history impacting 8.5 million computers, has shown us that deprioritizing quality can have cascading effects with serious human consequences.


On a less dramatic scale, poor quality products can lead to a busy professional dealing with a glitchy productivity app, leading to missed deadlines and damaged client relationships. Or a small business owner grappling with an unreliable e-commerce platform, resulting in lost sales and a poor reputation. These aren't just minor inconveniences – they're problems that significantly affect people's lives and businesses.


On a larger scale, the Crowdstrike incident led to canceled surgeries, downed 911 services, and flight cancellations and delays. The human impact wasn't confined to a single dispatch officer on their Microsoft computer or one Delta agent at the check-in desk. Instead, countless people felt second- and third-hand effects from this bug.


Why QA Can't Go It Alone

Unfortunately this dilemma cannot be fixed by simply hiring high-quality QA. Instead, it must be addressed organization-wide. As Vernon Richard put it on The Vernon Richard Show, in terms of QA, "We are the only people who have to fix the organization in order to do our jobs."


Quality assurance isn't just about finding bugs – it's about preventing them from happening in the first place. And that requires buy-in from the entire organization, from the C-suite to each member of the development and product teams.

As we've seen firsthand: a QA team can be the best in the business, but if developers are rushed to push out code without proper testing, if product managers are pressured to prioritize features over stability, or if the leadership team doesn't allocate resources for quality initiatives, even the most talented QA professionals find themselves fighting an uphill battle.


Building a Culture of Quality

So, how do we build a culture of quality that permeates the entire organization?


  1. Emphasize collaboration across teams: Break down silos between development, QA, and other departments. Encourage open communication and shared responsibility for quality.

  2. Make time for planning AND reflection: Don't just rush from one sprint to the next. Take time to plan thoroughly for upcoming features and to reflect on what worked and what didn't after each release.

  3. Make it the norm to ask questions: Foster an environment where team members feel comfortable questioning processes, assumptions, and decisions. If they feel like they will be heard, potential issues and gaps will be called out early.

  4. Ensure time and resources for quality throughout the SDLC: From developers getting the time they need to write clean, well-tested code, to QA not being rushed at the end of a sprint, allocate resources appropriately across the entire development lifecycle.

  5. Consider utilizing Behavior Driven Development (BDD): This approach helps align development efforts with business outcomes and user needs, ensuring quality is built-in from the start.


As noted in a 2022 Testing in DevOps Report, "When entire teams collaborate on product quality, software testing is no longer a bottleneck in the development process and teams can ask bigger questions about quality, including non-functional requirements that improve the customer experience."


This collaborative approach to quality is not just about preventing bugs – it’s about enhancing the overall development and user experience, leading to happier customers, more engaged employees, and ultimately, a stronger bottom line.


Conclusion

The human cost of neglecting quality in software development can be far-reaching and profound. From company cultures that lead to burn out and high staff turn over, to buggy products impacting end users’ livelihood and wellbeing.

Comments


bottom of page