Bug Chaos to Confidence: A Multiplayer Release

Bug Chaos to Confidence: A Multiplayer Release

Bug Chaos to Confidence: A Multiplayer Release

Bug Chaos to Confidence: A Multiplayer Release

Bug Chaos to Confidence: A Multiplayer Release

Bug Chaos to Confidence: A Multiplayer Release

February 2025

A table clearing showing the achievement category and the weight assigned based on the difficult of the achievement.
A table clearing showing the achievement category and the weight assigned based on the difficult of the achievement.
A table clearing showing the achievement category and the weight assigned based on the difficult of the achievement.
A table clearing showing the achievement category and the weight assigned based on the difficult of the achievement.
A table clearing showing the achievement category and the weight assigned based on the difficult of the achievement.

The Challenge: A Mountain of Bugs Threatening Release

In February 2024, I was asked to run the Multiplayer Engine organisation, one of the biggest concerns I immediately acknowledged was the overwhelming number of bugs and regressions. The organisation was dealing with a significant backlog, high user pain (HUP) bugs, and regressions at alarming numbers. This is a major problem.

The numbers painted a concerning picture:

  • 150 bugs in the Multiplayer backlog, 108 in Netcode, and 20 in Transport, Multiplayer Playmode.

  • 31 regressions in Multiplayer and 23 of those in Netcode— fixes were often introducing new issues.

  • Aged issues were stacking up, with 94 open for over three months and 22 over a year old.

I needed a strategy—fast. Without intervention, my confidence in quality, our ability to ship a stable release, and trust from stakeholders, and customers would erode.

The Challenge: A Mountain of Bugs Threatening Release

In February 2024, I was asked to run the Multiplayer Engine organisation, one of the biggest concerns I immediately acknowledged was the overwhelming number of bugs and regressions. The organisation was dealing with a significant backlog, high user pain (HUP) bugs, and regressions at alarming numbers. This is a major problem.

The numbers painted a concerning picture:

  • 150 bugs in the Multiplayer backlog, 108 in Netcode, and 20 in Transport, Multiplayer Playmode.

  • 31 regressions in Multiplayer and 23 of those in Netcode— fixes were often introducing new issues.

  • Aged issues were stacking up, with 94 open for over three months and 22 over a year old.

I needed a strategy—fast. Without intervention, my confidence in quality, our ability to ship a stable release, and trust from stakeholders, and customers would erode.

A table clearing showing the achievement category and the weight assigned based on the difficult of the achievement.
A table clearing showing the achievement category and the weight assigned based on the difficult of the achievement.
A table clearing showing the achievement category and the weight assigned based on the difficult of the achievement.
A table clearing showing the achievement category and the weight assigned based on the difficult of the achievement.
A table clearing showing the achievement category and the weight assigned based on the difficult of the achievement.
A table clearing showing the achievement category and the weight assigned based on the difficult of the achievement.

The Strategy: Attack on Quality Debt

Instead of treating this as just another bug triage effort, I reframed the approach into a quality-first culture shift.

Phase 1: Setting a KPI Driven Path (March 2024)
The first step was tackling untriaged issues and improving the visibility of regressions. I introduced a new KPI to reduce untriaged bugs older than two weeks and prioritised regressions. The immediate results were promising:

  • Triage efforts reduced lingering bugs significantly, from 30 untriaged to just 5 by March.

  • The backlog saw a slight reduction, with total bugs decreasing from 150 to 123.

However, we still had a long way to go! Aged bugs and regressions remained notoriously high.

The Strategy: Attack on Quality Debt

Instead of treating this as just another bug triage effort, I reframed the approach into a quality-first culture shift.

Phase 1: Setting a KPI Driven Path (March 2024)
The first step was tackling untriaged issues and improving the visibility of regressions. I introduced a new KPI to reduce untriaged bugs older than two weeks and prioritised regressions. The immediate results were promising:

  • Triage efforts reduced lingering bugs significantly, from 30 untriaged to just 5 by March.

  • The backlog saw a slight reduction, with total bugs decreasing from 150 to 123.

However, we still had a long way to go! Aged bugs and regressions remained notoriously high.

A table clearing showing the achievement category and the weight assigned based on the difficult of the achievement.
A table clearing showing the achievement category and the weight assigned based on the difficult of the achievement.
A table clearing showing the achievement category and the weight assigned based on the difficult of the achievement.
A table clearing showing the achievement category and the weight assigned based on the difficult of the achievement.
A table clearing showing the achievement category and the weight assigned based on the difficult of the achievement.
A table clearing showing the achievement category and the weight assigned based on the difficult of the achievement.

Phase 2: Establishing Triage Consistency, Regression and HUP Vigilance (April - June 2024)
By April, the KPI approach was gaining traction. I saw consistency in how teams are triaging new bugs, ensuring no issue was left unaddressed for over a month. This was a critical milestone as we prevented bug stagnation.

From April to June:

  • Untriaged issues older than 1 month were eliminated.

  • HUP bugs dropped from 13 in February to 0 in June.

  • Regressions started declining, from 35 in April to 27 in June.

With cleaner backlogs and proactive triaging, the team could focus more on reducing aged bugs and stabilising the software packages.

Phase 2: Establishing Triage Consistency, Regression and HUP Vigilance (April - June 2024)
By April, the KPI approach was gaining traction. I saw consistency in how teams are triaging new bugs, ensuring no issue was left unaddressed for over a month. This was a critical milestone as we prevented bug stagnation.

From April to June:

  • Untriaged issues older than 1 month were eliminated.

  • HUP bugs dropped from 13 in February to 0 in June.

  • Regressions started declining, from 35 in April to 27 in June.

With cleaner backlogs and proactive triaging, the team could focus more on reducing aged bugs and stabilising the software packages.

A table clearing showing the achievement category and the weight assigned based on the difficult of the achievement.
A table clearing showing the achievement category and the weight assigned based on the difficult of the achievement.
A table clearing showing the achievement category and the weight assigned based on the difficult of the achievement.
A table clearing showing the achievement category and the weight assigned based on the difficult of the achievement.
A table clearing showing the achievement category and the weight assigned based on the difficult of the achievement.
A table clearing showing the achievement category and the weight assigned based on the difficult of the achievement.

Phase 3: Reducing Bug Count & Building Release Confidence (July - September 2024)
By the summer, we had turned a corner. With HUP bugs near zero and regressions declining, we focused on bringing down total bug counts. The momentum was clear:

  • The Netcode bug count dropped from 102 in April to 61 in July.

  • The total Multiplayer backlog fell from 137 in April to 95 in July.

  • Regression bugs across the board dropped to just 15.

By August, I truly felt teams were in control and with higher vigilance. Bugs were being fixed faster than they were being reported, and confidence in quality was rising. We were finally crushing it.

Phase 3: Reducing Bug Count & Building Release Confidence (July - September 2024)
By the summer, we had turned a corner. With HUP bugs near zero and regressions declining, we focused on bringing down total bug counts. The momentum was clear:

  • The Netcode bug count dropped from 102 in April to 61 in July.

  • The total Multiplayer backlog fell from 137 in April to 95 in July.

  • Regression bugs across the board dropped to just 15.

By August, I truly felt teams were in control and with higher vigilance. Bugs were being fixed faster than they were being reported, and confidence in quality was rising. We were finally crushing it.

A table clearing showing the achievement category and the weight assigned based on the difficult of the achievement.
A table clearing showing the achievement category and the weight assigned based on the difficult of the achievement.
A table clearing showing the achievement category and the weight assigned based on the difficult of the achievement.
A table clearing showing the achievement category and the weight assigned based on the difficult of the achievement.
A table clearing showing the achievement category and the weight assigned based on the difficult of the achievement.
A table clearing showing the achievement category and the weight assigned based on the difficult of the achievement.

The Impact: Shipping Multiplayer with Confidence

September is upon us, we were just weeks away from release, and the numbers spoke for themselves:

  • The Multiplayer backlog had been slashed from 150 to just 60.

  • Netcode regressions had dropped from 23 in February to just 1.

  • HUP bugs remained at zero for the final three months leading up to release.

On October 17, 2024, Unity 6 launched! With zero HUP bugs and only 2 known regressions, down from 35 earlier in the year. We had turned what initially seemed like an overwhelming quality challenge into a success story of engineering focus, altered what culture on quality looked like, and disciplined triaging.

The Impact: Shipping Multiplayer with Confidence

September is upon us, we were just weeks away from release, and the numbers spoke for themselves:

  • The Multiplayer backlog had been slashed from 150 to just 60.

  • Netcode regressions had dropped from 23 in February to just 1.

  • HUP bugs remained at zero for the final three months leading up to release.

On October 17, 2024, Unity 6 launched! With zero HUP bugs and only 2 known regressions, down from 35 earlier in the year. We had turned what initially seemed like an overwhelming quality challenge into a success story of engineering focus, altered what culture on quality looked like, and disciplined triaging.

A table clearing showing the achievement category and the weight assigned based on the difficult of the achievement.
A table clearing showing the achievement category and the weight assigned based on the difficult of the achievement.
A table clearing showing the achievement category and the weight assigned based on the difficult of the achievement.
A table clearing showing the achievement category and the weight assigned based on the difficult of the achievement.
A table clearing showing the achievement category and the weight assigned based on the difficult of the achievement.
A table clearing showing the achievement category and the weight assigned based on the difficult of the achievement.

Reflection and Takeaways

Reflecting on this time, here are some of my takeaways:

  • KPI approach – Without a metric to rally around, bug reduction efforts can feel endless. The triage KPI created focus and accountability.

  • Consistency beats intensity – A one-time bug bash wouldn't have worked; sustained, methodical triaging delivered a lasting impact.

  • Cultural change – Making quality a shared responsibility, not just a QA function, helped maintain long-term improvements.

This was more than just fixing bugs. It was a cultural shift towards a quality first mindset and about instilling confidence in our ability to ship a stable, high-quality end to end offering.

I strive for efforts such as this, I feel a deep sense of satisfaction from those achievements. Quality is rooted in me and it is especially rewarding when you see it recognised by users as well as colleagues.

A massive shoutout to all who contributed, my directs and the partner functions: QA, Docs, and Program Management.

Reflection and Takeaways

Reflecting on this time, here are some of my takeaways:

  • KPI approach – Without a metric to rally around, bug reduction efforts can feel endless. The triage KPI created focus and accountability.

  • Consistency beats intensity – A one-time bug bash wouldn't have worked; sustained, methodical triaging delivered a lasting impact.

  • Cultural change – Making quality a shared responsibility, not just a QA function, helped maintain long-term improvements.

This was more than just fixing bugs. It was a cultural shift towards a quality first mindset and about instilling confidence in our ability to ship a stable, high-quality end to end offering.

I strive for efforts such as this, I feel a deep sense of satisfaction from those achievements. Quality is rooted in me and it is especially rewarding when you see it recognised by users as well as colleagues.

A massive shoutout to all who contributed, my directs and the partner functions: QA, Docs, and Program Management.

Buy Me A Coffee

Related posts

November 2024

The 40-70 Rule: Making Effective Engineering Decisions

November 2024

The 40-70 Rule: Making Effective Engineering Decisions

November 2024

The 40-70 Rule: Making Effective Engineering Decisions

© Christopher Pope

© Christopher Pope

© Christopher Pope

© Christopher Pope