Quality Control Challenges with Product Management

In an agile environment, where speed and adaptability are highly valued, maintaining high-quality standards throughout the product development process presents unique challenges to all roles; especially Product Owners. The iterative/incremental nature of agile development, with its emphasis on rapid releases and responsiveness to change, can sometimes make it seem like quality control is at odds with project timelines.

However, quality issues in agile teams can have profound implications, including product defects, damage to reputation, and significant financial losses, just as in more traditional development environments. I've been researching and have experience on how quality control affects agile environments, but wanted to explore ways to ensure high-quality standards are met by agile teams and what we can do about it.

The Impact of Quality Control Challenges in Agile

Reputation Damage

In the fast-paced agile environment, releasing a product with quality issues can quickly tarnish a brand's image, especially in today's digital world where users quickly share feedback online.

Increased Costs

Identifying and fixing defects after product release is significantly more expensive than catching them early in the development cycle. Agile teams face the challenge of balancing rapid development with the need to incorporate thorough testing phases.

User Dissatisfaction

Agile aims to meet customer needs continuously. Quality issues not only undermine this goal but can also lead to user dissatisfaction, impacting customer loyalty and retention.

Reduced Team Morale

Frequent quality issues can demoralize the development team, reducing productivity and undermining the collaborative spirit essential for agile success.

Ensuring High Quality Control in Agile Teams

Incorporate Continuous Testing

  • Implement automated testing as part of the continuous integration and continuous deployment (CI/CD) pipeline to identify and fix issues early.
  • Encourage practices like TDD (or its cousins), where tests are written before code, ensuring that code meets quality standards from the start.

Foster a Quality-centric Culture

  • Make quality a collective responsibility of the entire agile team, not just QA engineers. This includes developers, designers, and product managers.
  • Promote a culture of continuous learning and improvement, encouraging teams to learn from past mistakes and enhance their quality control practices.

Leverage User Feedback

  • Use sprint reviews and user testing sessions as opportunities to gather feedback and identify quality issues from the user's perspective.
  • Agile teams must be prepared to quickly address feedback, prioritizing user-reported issues to maintain trust and satisfaction.

Collaborative Coding

  • Pair programming, where two developers work together at one workstation, can significantly improve code quality and reduce bugs, as real-time peer review helps catch issues early.
  • Often this looks unproductive, but the goal is to write as little code as possible and as simple code as possible. More eyes on the code can help simplify a solution.

Adopt Definition of Done (DoD)

  • Establish a clear and comprehensive DoD for each backlog item and sprint deliverable, including quality benchmarks that must be met before considering a task complete.

Regular Retrospectives

  • Use sprint retrospectives to reflect on quality issues encountered during the sprint, discussing what went well, what didn’t, and how processes can be improved in the next cycle.

Risk Management

  • Regularly assess potential risks to product quality and develop mitigation strategies, incorporating risk management into sprint planning and reviews.
  • Begin each sprint with a risk identification session as part of the sprint planning. Discuss potential risks related to the upcoming work, including technical challenges, dependencies, resource constraints, and any external factors that could impact the sprint goals.
  • Involve stakeholders early in the process to identify risks from different perspectives, including business, user experience, and technical viewpoints.
  • Create backlog items for significant risks identified during planning. This ensures that risk mitigation activities are planned, estimated, and tracked just like any other work in the sprint.
  • Prioritize risks based on their potential impact and likelihood of occurring. This helps the team focus on mitigating the most critical risks first.
  • Use daily stand-ups to briefly discuss any new risks that have emerged and the status of ongoing risk mitigation efforts. This keeps the entire team informed and engaged in risk management.
  • Maintain a visible risk board (physically or digitally) where team members can add new risks, update the status of existing risks, and see at a glance what risks are being actively managed.
Agile Risk Board

Let's Respond to Defects

Managing quality in the beginning of our processes can ensure we will have a much better chance to mitigate the time and expense of defects.

The time it takes to fix software defects once they are live in a production system can vary widely, but there are some industry insights and data points that can provide a general understanding of the timelines involved as we try to craft the message of importance related to quality across the organization.

According to the IBM System Sciences Institute, the cost and time to fix a bug increase exponentially the later it is found in the development lifecycle. Specifically, defects identified during the implementation phase can be up to 6 times more expensive to fix than those identified during the design phase. Those found during the testing phase can be up to 15 times more expensive, and defects found in production can be up to 100 times more expensive to fix.

The "2021 State of DevOps Report" by Puppet emphasizes the impact of DevOps practices on improving the speed and efficiency of addressing software defects. Organizations with mature DevOps practices report significantly shorter times to remediate security vulnerabilities and other critical issues, often capable of deploying fixes within days or even hours of identification.

A study by the Consortium for Information & Software Quality (CISQ) highlights that the average time to fix critical software vulnerabilities can range from several days to several weeks, depending on the severity of the issue and the organization's software development maturity.

While specific data on the exact time to fix live defects can be hard to pinpoint due to these varying factors, it's clear that:

  1. Defects identified and fixed earlier in the development process take significantly less time to resolve than those found in production.
  2. Organizations with advanced DevOps and agile practices are better positioned to quickly address and remediate defects in production environments.

To minimize the time required to fix defects in production, organizations are encouraged to invest in continuous integration and continuous deployment (CI/CD) pipelines, automated testing, and robust monitoring and alerting systems. These practices not only help in identifying issues early but also facilitate quicker fixes by automating parts of the deployment and testing processes which obviously speeds up our response time to defects.

I often think in my own software companies that I have managed, it might actually be ok to have defects as long as we can quickly resolve them for the users. It might build more trust than simply having no defects ironically. Regardless of that thought, we must strive to adapt to practices that allow us a quick response to defect resolution. They will happen, zero defect is nearly impossible to reach, but it is a great goal.

Want to learn more?

We can help you in your journey for continuous improvement at scale in your organization. Join us in one of our upcoming workshops or we can evaluate if a private workshop for your team is more appropriate.


Related Articles

How a Product Owner is Like a Business Owner

If you’ve ever wanted to own a business or think like a Chief Financial Officer (CFO), being a product owner has many similarities. A good product owner has to think carefully about how to spend money and what kind of return on investment she’ll get. In most companies, we forget...

Read More

Understanding Customer Needs

In the ever-evolving world of product development, understanding what your customers truly want stands as a cornerstone for success. This crucial insight not only shapes innovative products but also ensures they resonate deeply with your target audience. Let's dig a bit deeper on a few of the best practices for...

Read More

Stakeholder Identification and Management

Bringing the right stakeholders together and effective stakeholder management are essential requirements for leading a project to success. In Agile/Scrum, how can we identify the right stakeholders and ensure we are informing them at the rate/type of information they want?. This article attempts to answer these questions by discussing how...

Read More

Reach-Impact-Confidence-Effort (RICE)

Welcome back (or just welcome) to our series on prioritization techniques. As I work with teams and organizations, I notice a huge component of planning missing in their endeavors; prioritization. I often say that a Product Owner's job is to maximize the amount business value delivered of a Scrum Team...

Read More

Prioritizing with the Kano Model

Welcome! (or welcome back!). As promised we discussing a series of topics related to prioritization techniques. This one is definitely in my top 10 when working with my clients as well as being a Product Owner myself. Often our stakeholders have what I like to call "opinion data". I certainly...

Read More

Adapting to Market Changes in a Hyper-competitive Market

I recall one of the best advice I received as a Product Owner when trying to determine what we should build next for our product that was trying to compete in a ferocious market. I invited my mentor to our brainstorming session I was facilitating in order to get ideas...

Read More

Impact mapping: Business goals to product backlog

Are you struggling with how to create your product backlog? You have a business goal but you are still unsure how to continue? Let me introduce you to impact mapping and why this is beneficial for building a backlog based on your business goals in no time. Impact mapping is...

Read More

RVCE Prioritization Matrix

For product managers working in Agile/Scrum organizations, featuring and task prioritization is important for effective roadmap planning. Out of all the features you consider, prioritization helps identify the order of importance and drives the delivery of the work that achieves organizational goals. We are continuing our series this year on...

Read More

How To Lead Innovation Workshops

As a product owner, it’s important that you’re always leading the team through product innovation ideas or your product can quickly become stale and boring! Without true innovation, your team just builds and builds, but doesn’t get to use their brains creatively, which can stagnant product innovation. In this article...

Read More

Introducing the Top 10 Challenges of Product Delivery

Product Development is an exciting space and the sky is the limit on the products we can choose to develop. Naturally, the market for your product determines its success. You always have to have a great product idea, but then have to have a plan to execute better than your...

Read More

Product Management vs. Product Ownership

Every now and then you have the opportunity to work with a client that becomes a friend that becomes a partner in some industries. TJ Thinakaran is just such a person I had the pleasure of coaching/training his teams at a company in which he was an executive. They had...

Read More

Challenges with Supply Chain Management

Given that most of my work is related to software products in the agile space, I was surprised when researching our Top 10 Challenges to Product Delivery, that supply chain made the list. As I looked into it more, it made sense. In addition, my background working at FedEx Express...

Read More

Integration of New Technologies

I recall the days when one of our biggest challenges in building software products was serving up data from the database through to the end-user. In concert with that struggle was making software deployments with accompanying database changes without breaking the user experience. I am probably showing my age here...

Read More

MoSCoW Prioritization

No, we aren't talking about Russia or their Capitol. We are exploring quite a few techniques that some may not be aware of when trying to prioritize the infinite list of ideas a business can generate vs. the finite amount of time and capacity to do them. Over the next...

Read More