SlideShare a Scribd company logo
1 of 4
Download to read offline
The Bug Backlog - An Evergrowing Mountain
If you are part of a development team working on a game, and you are working in some kind of
Agile way, you most likely have a bug backlog, or at least bugs as part of some kind of backlog.
The bug backlog looks very different during different stages of the game development cycle - it
starts out empty, and then as features and complexity is added, it grows. And in most cases it
never stops growing.
The first question to answer is why this is happening in general - why are we just not fixing the
bugs?
Let’s break it down a little bit:
● Value of fixing bug < Cost of fixing bug
○ If it costs more to fix a bug, than the value it adds to fix it, then it makes perfect
sense not to spend time on fixing it
○ We may or may not have some bugs in our bug backlog that just do not make
sense to fix because it costs too much
● Value of fixing bug < Spending your time on something else
○ If the opportunity cost is too high, and spending your time on something else
adds more value than fixing the bug, it makes sense not to spend time on fixing it
○ Maybe adding a new feature, or fixing other bugs makes more sense than fixing
a specific bug you care about
So basically we are not fixing a bug, because we are adding more value doing something else.
But there is a cost of allowing a bug backlog to grow uncontrollably. Let’s break it down.
● If you have a large number of bugs in your bug backlog, it is easy to lose visibility of what
is in the backlog
● It becomes much easier to lose track of important bugs, as they are hidden by piles and
piles of other bugs
● It takes time to go through, refine and prioritize the backlog - larger backlog, more time
● It has a psychological cost on the team as well - they get a feeling of that their work
never ends, and can cause unnecessary stress
So we don’t want to fix all bugs, because we create more value doing something else, but we
don’t want the bug backlog to grow uncontrollably. And just prioritizing the bugs will not be
enough.
How do we solve this conundrum? Basically we have to close bugs, even though we are not
fixing them. We just have to accept that some bugs we will never fix - out of sight, out of mind.
Unfortunately calculating the actual value of a bug or a feature is never simple. The more data
you have, the easier it gets, but even with all the data in the world, it is still a complex
procedure. Value also changes over time, as context changes, which makes it even more
complex.
Let’s cover the easy parts first.
● All bugs with an obvious low value and cost higher than that value can be closed
○ Should the value of fixing the bug change in the future for some reason, the bug
can be reopened
● Bugs with an extremely high cost will most likely need to be rebranded as some type of
refactoring or broader changes to the system - so we can tag them as new stories
instead of bugs
● Bugs that are critical to the game’s release we will fix, so they always stay at the top of
the backlog
But even with these parts done, most games will most likely have hundreds of bugs which would
add value if they were fixed, but are still not prioritized because there are more important things
to spend your time on. So how do we trim down the backlog to a workable state, to avoid the
problems listed above?
Basically there are three factors that come into play.
● Bug Inflow
○ How many new bugs are reported every sprint?
● Development Capacity
○ What bandwidth do we have to develop features and fix bugs?
● Game Roadmap
○ How do we expect to add value to the game over the coming time period?
If we know how many bugs are usually added to the backlog each sprint, and we know how
many we usually manage to fix, and the game roadmap looks similar to what it has before and
no major course shifts are coming, then we have some guidance to how large we should allow
the backlog to be.
Let’s look at an example.
● If we usually have 2-4 new relevant non-critical bugs each sprint, and we have a healthy
feature pipeline of high value things we want to develop
● We usually have time to fix between 2-4 of these types of bugs depending on feature
workload and how many critical bugs we have to fix
● We want to spend our time fixing the 2-4 most valuable non-critical bugs, so we
continuously prioritize them to make sure the high value ones are at the top of the
backlog
○ This of course includes all new bugs as well
○ Prioritization should be done with the entire team - the Product Owner/Producer
is the final arbiter of priority
● In the best case scenario where we fix more than we introduce, we want to have a
backlog of high value bugs to pick from that will last us a significant amount of time
● In the worst case scenario were we introduce more than we fix, we want to have some
kind of a limit to how many bugs we have in our backlog to avoid the problems
mentioned before
So let’s decide on a reasonable timeframe, say 3 months. For the bug backlog to last three
months under the most favorable conditions, with sprints lasting 2 weeks, we would have to
have 12 bugs in our bug backlog. 3 months = 6 sprints, and with -2 bugs in the backlog every
sprint.
So let’s say we originally had a bug backlog of 30 bugs. But we only need 12 for our healthy bug
backlog. What do we do?
● The most important thing is to make sure that the bug backlog is properly prioritized, and
that the top 12 bugs are indeed the most important ones
● When we start this experiment, we monitor the backlog for a few sprints to ensure that
our calculations for inflow and bandwidth are correct
● Basically we can now say with relative certainty that the bottom 18 bugs in the backlog
will never rise to the top and be fixed in any reasonable time frame
● Now we just close the bottom 18 bugs in the bug backlog, and begin our work with our
healthy bug backlog
But we need to ensure that the bug backlog remains healthy. We keep it healthy by reviewing it
at the end of each sprint. Look at the new bugs that have come in. Prioritize the backlog, and
close all bugs that exceed the threshold, in this case 12.
But what if we have 14 bugs that we know are all of high value, and something that we will fix in
the coming 3 months? What if at this moment in time we have had a high concentration of high
value bugs? Then you make an exception, and allow the bug backlog to grow ever so slightly.
But as soon as you notice that a bug has stayed in the backlog for more than 3 months, you
automatically close it, because it shows that your initial assumption that it would be fixed was
wrong.
Are there risks to closing bugs that are of moderate importance, because you think they will
never rise to the top of the backlog? Of course.
Is there a risk that a previously closed bug will become more important as time goes by and
context changes? Of course.
But it is a risk we have to take, as the gains of working with a healthy bug backlog outweighs it.
And you can always reopen bugs if you suddenly have more capacity than expected, if context
changes, and if some old bug suddenly increases in importance.
The numbers in this example (number of bugs, inflow, bandwidth, time frame, etc.) need to be
tailored to every specific project and team, and this needs to be kicked off with the entire time so
that everyone understands how and why we are doing this, and how we want to work with our
new healthy bug backlog.
Johan Hoberg

More Related Content

What's hot

Writing GREAT Agile User Stories
Writing GREAT Agile User StoriesWriting GREAT Agile User Stories
Writing GREAT Agile User StoriesAgileDad
 
Understanding the Agile Release and Sprint Planning Process
Understanding the Agile Release and Sprint Planning Process Understanding the Agile Release and Sprint Planning Process
Understanding the Agile Release and Sprint Planning Process John Derrico
 
Release planning using feature points
Release planning using feature pointsRelease planning using feature points
Release planning using feature pointsMadhur Kathuria
 
Top 10 Agile Metrics
Top 10 Agile MetricsTop 10 Agile Metrics
Top 10 Agile MetricsXBOSoft
 
Corporate Presentation | Software Testing Company USA | Indium
Corporate Presentation | Software Testing Company USA | IndiumCorporate Presentation | Software Testing Company USA | Indium
Corporate Presentation | Software Testing Company USA | IndiumIndium Software
 
Git hub plugin setup and working with Git hub on anypoint studio
Git hub plugin setup and working with Git hub on anypoint studioGit hub plugin setup and working with Git hub on anypoint studio
Git hub plugin setup and working with Git hub on anypoint studioSudha Ch
 
Bug life cycle
Bug life cycleBug life cycle
Bug life cycleBugRaptors
 
Writing Good User Stories (Hint: It's not about writing)
Writing Good User Stories (Hint: It's not about writing)Writing Good User Stories (Hint: It's not about writing)
Writing Good User Stories (Hint: It's not about writing)one80
 
Story Points Estimation And Planning Poker
Story Points Estimation And Planning PokerStory Points Estimation And Planning Poker
Story Points Estimation And Planning PokerDaniel Toader
 
How to facilitate product backlog refinement sessions
How to facilitate product backlog refinement sessionsHow to facilitate product backlog refinement sessions
How to facilitate product backlog refinement sessionsLuxoftAgilePractice
 

What's hot (20)

Writing GREAT Agile User Stories
Writing GREAT Agile User StoriesWriting GREAT Agile User Stories
Writing GREAT Agile User Stories
 
Understanding the Agile Release and Sprint Planning Process
Understanding the Agile Release and Sprint Planning Process Understanding the Agile Release and Sprint Planning Process
Understanding the Agile Release and Sprint Planning Process
 
Release planning using feature points
Release planning using feature pointsRelease planning using feature points
Release planning using feature points
 
Top 10 Agile Metrics
Top 10 Agile MetricsTop 10 Agile Metrics
Top 10 Agile Metrics
 
Corporate Presentation | Software Testing Company USA | Indium
Corporate Presentation | Software Testing Company USA | IndiumCorporate Presentation | Software Testing Company USA | Indium
Corporate Presentation | Software Testing Company USA | Indium
 
Agile Release & Iteration Planning
Agile Release & Iteration Planning   Agile Release & Iteration Planning
Agile Release & Iteration Planning
 
Agile Basics
Agile BasicsAgile Basics
Agile Basics
 
User Stories
User StoriesUser Stories
User Stories
 
Agile estimation
Agile estimationAgile estimation
Agile estimation
 
User stories in agile software development
User stories in agile software developmentUser stories in agile software development
User stories in agile software development
 
Agile Metrics V6
Agile Metrics V6Agile Metrics V6
Agile Metrics V6
 
QA metrics in Agile (GUIDE)
QA metrics in Agile (GUIDE)QA metrics in Agile (GUIDE)
QA metrics in Agile (GUIDE)
 
User Stories explained
User Stories explainedUser Stories explained
User Stories explained
 
Agile 101
Agile 101Agile 101
Agile 101
 
Git hub plugin setup and working with Git hub on anypoint studio
Git hub plugin setup and working with Git hub on anypoint studioGit hub plugin setup and working with Git hub on anypoint studio
Git hub plugin setup and working with Git hub on anypoint studio
 
Bug life cycle
Bug life cycleBug life cycle
Bug life cycle
 
Writing Good User Stories (Hint: It's not about writing)
Writing Good User Stories (Hint: It's not about writing)Writing Good User Stories (Hint: It's not about writing)
Writing Good User Stories (Hint: It's not about writing)
 
Story Points Estimation And Planning Poker
Story Points Estimation And Planning PokerStory Points Estimation And Planning Poker
Story Points Estimation And Planning Poker
 
How to facilitate product backlog refinement sessions
How to facilitate product backlog refinement sessionsHow to facilitate product backlog refinement sessions
How to facilitate product backlog refinement sessions
 
Product Backlog Management
Product Backlog ManagementProduct Backlog Management
Product Backlog Management
 

Similar to The Bug Backlog - An Evergrowing Mountain

what's blocking our way
what's blocking our waywhat's blocking our way
what's blocking our waytanvir afzal
 
A Software Tester's Travels from the Land of the Waterfall to the Land of Agi...
A Software Tester's Travels from the Land of the Waterfall to the Land of Agi...A Software Tester's Travels from the Land of the Waterfall to the Land of Agi...
A Software Tester's Travels from the Land of the Waterfall to the Land of Agi...Yuval Yeret
 
Scrum and-xp-from-the-trenches 06 testing
Scrum and-xp-from-the-trenches 06 testingScrum and-xp-from-the-trenches 06 testing
Scrum and-xp-from-the-trenches 06 testingHossam Hassan
 
Flight checks -QA for Releases that Prevent Disasters from Escaping into the ...
Flight checks -QA for Releases that Prevent Disasters from Escaping into the ...Flight checks -QA for Releases that Prevent Disasters from Escaping into the ...
Flight checks -QA for Releases that Prevent Disasters from Escaping into the ...Brie Hoblin
 
Doing agile with an ISO-20000 Telco (AgilePT 2015)
Doing agile with an ISO-20000 Telco (AgilePT 2015)Doing agile with an ISO-20000 Telco (AgilePT 2015)
Doing agile with an ISO-20000 Telco (AgilePT 2015)Manuel Padilha
 
Why all deadlines are bad for quality
Why all deadlines are bad for qualityWhy all deadlines are bad for quality
Why all deadlines are bad for qualityJohan Hoberg
 
Wait A Moment? How High Workload Kills Efficiency! - Roman Pickl
Wait A Moment? How High Workload Kills Efficiency! - Roman PicklWait A Moment? How High Workload Kills Efficiency! - Roman Pickl
Wait A Moment? How High Workload Kills Efficiency! - Roman PicklPROIDEA
 
Overcoming Waterfallacies & Agilephobias
Overcoming Waterfallacies & AgilephobiasOvercoming Waterfallacies & Agilephobias
Overcoming Waterfallacies & AgilephobiasMike Cohn
 
SFScon21 - Paolo d’Incau - Going to production in a few months – How we did it!
SFScon21 - Paolo d’Incau - Going to production in a few months – How we did it!SFScon21 - Paolo d’Incau - Going to production in a few months – How we did it!
SFScon21 - Paolo d’Incau - Going to production in a few months – How we did it!South Tyrol Free Software Conference
 
Agile basic introduction
Agile   basic introductionAgile   basic introduction
Agile basic introductionPreparationInfo
 

Similar to The Bug Backlog - An Evergrowing Mountain (20)

Beyond Agile Software
Beyond Agile SoftwareBeyond Agile Software
Beyond Agile Software
 
what's blocking our way
what's blocking our waywhat's blocking our way
what's blocking our way
 
A Software Tester's Travels from the Land of the Waterfall to the Land of Agi...
A Software Tester's Travels from the Land of the Waterfall to the Land of Agi...A Software Tester's Travels from the Land of the Waterfall to the Land of Agi...
A Software Tester's Travels from the Land of the Waterfall to the Land of Agi...
 
Scrum and-xp-from-the-trenches 06 testing
Scrum and-xp-from-the-trenches 06 testingScrum and-xp-from-the-trenches 06 testing
Scrum and-xp-from-the-trenches 06 testing
 
Flight checks -QA for Releases that Prevent Disasters from Escaping into the ...
Flight checks -QA for Releases that Prevent Disasters from Escaping into the ...Flight checks -QA for Releases that Prevent Disasters from Escaping into the ...
Flight checks -QA for Releases that Prevent Disasters from Escaping into the ...
 
Doing agile with an ISO-20000 Telco (AgilePT 2015)
Doing agile with an ISO-20000 Telco (AgilePT 2015)Doing agile with an ISO-20000 Telco (AgilePT 2015)
Doing agile with an ISO-20000 Telco (AgilePT 2015)
 
Why all deadlines are bad for quality
Why all deadlines are bad for qualityWhy all deadlines are bad for quality
Why all deadlines are bad for quality
 
Wait A Moment? How High Workload Kills Efficiency! - Roman Pickl
Wait A Moment? How High Workload Kills Efficiency! - Roman PicklWait A Moment? How High Workload Kills Efficiency! - Roman Pickl
Wait A Moment? How High Workload Kills Efficiency! - Roman Pickl
 
Overcoming Waterfallacies & Agilephobias
Overcoming Waterfallacies & AgilephobiasOvercoming Waterfallacies & Agilephobias
Overcoming Waterfallacies & Agilephobias
 
Rilasciamo rilasciamo
Rilasciamo rilasciamoRilasciamo rilasciamo
Rilasciamo rilasciamo
 
SFScon21 - Paolo d’Incau - Going to production in a few months – How we did it!
SFScon21 - Paolo d’Incau - Going to production in a few months – How we did it!SFScon21 - Paolo d’Incau - Going to production in a few months – How we did it!
SFScon21 - Paolo d’Incau - Going to production in a few months – How we did it!
 
Agile basic introduction
Agile   basic introductionAgile   basic introduction
Agile basic introduction
 
Agile
AgileAgile
Agile
 
Agile
AgileAgile
Agile
 
Agile
AgileAgile
Agile
 
Agile
AgileAgile
Agile
 
Agile
AgileAgile
Agile
 
Agile
AgileAgile
Agile
 
Agile
AgileAgile
Agile
 
Agile
AgileAgile
Agile
 

More from Johan Hoberg

Approaches to unraveling a complex test problem
Approaches to unraveling a complex test problemApproaches to unraveling a complex test problem
Approaches to unraveling a complex test problemJohan Hoberg
 
A business case for a modern QA organization
A business case for a modern QA organizationA business case for a modern QA organization
A business case for a modern QA organizationJohan Hoberg
 
Building High Quality Software
Building High Quality Software Building High Quality Software
Building High Quality Software Johan Hoberg
 
Testit 2017 - Exploratory Testing for Everyone
Testit 2017 - Exploratory Testing for EveryoneTestit 2017 - Exploratory Testing for Everyone
Testit 2017 - Exploratory Testing for EveryoneJohan Hoberg
 
Don’t celebrate failure. Don’t celebrate success. Celebrate commitment, owner...
Don’t celebrate failure. Don’t celebrate success. Celebrate commitment, owner...Don’t celebrate failure. Don’t celebrate success. Celebrate commitment, owner...
Don’t celebrate failure. Don’t celebrate success. Celebrate commitment, owner...Johan Hoberg
 
Moving from scripted regression testing to exploratory testing
Moving from scripted regression testing to exploratory testingMoving from scripted regression testing to exploratory testing
Moving from scripted regression testing to exploratory testingJohan Hoberg
 
Building High Quality Software
Building High Quality SoftwareBuilding High Quality Software
Building High Quality SoftwareJohan Hoberg
 
Quality, Testing & Agile Methodologies
Quality, Testing & Agile MethodologiesQuality, Testing & Agile Methodologies
Quality, Testing & Agile MethodologiesJohan Hoberg
 
Defining Test Competence
Defining Test CompetenceDefining Test Competence
Defining Test CompetenceJohan Hoberg
 
Do we really need game testers?
Do we really need game testers?Do we really need game testers?
Do we really need game testers?Johan Hoberg
 
Hardware/Software Integration Testing
Hardware/Software Integration TestingHardware/Software Integration Testing
Hardware/Software Integration TestingJohan Hoberg
 
Defining Test Competence
Defining Test CompetenceDefining Test Competence
Defining Test CompetenceJohan Hoberg
 
Giving feedback & Scrum
Giving feedback & ScrumGiving feedback & Scrum
Giving feedback & ScrumJohan Hoberg
 
Communicated deadlines = bad quality
Communicated deadlines = bad qualityCommunicated deadlines = bad quality
Communicated deadlines = bad qualityJohan Hoberg
 
The Tester Role & Scrum
The Tester Role & ScrumThe Tester Role & Scrum
The Tester Role & ScrumJohan Hoberg
 
How to structure testing within the Scrum Framework
How to structure testing within the Scrum FrameworkHow to structure testing within the Scrum Framework
How to structure testing within the Scrum FrameworkJohan Hoberg
 

More from Johan Hoberg (20)

Approaches to unraveling a complex test problem
Approaches to unraveling a complex test problemApproaches to unraveling a complex test problem
Approaches to unraveling a complex test problem
 
A business case for a modern QA organization
A business case for a modern QA organizationA business case for a modern QA organization
A business case for a modern QA organization
 
What is QI?
What is QI?What is QI?
What is QI?
 
Building High Quality Software
Building High Quality Software Building High Quality Software
Building High Quality Software
 
Testit 2017 - Exploratory Testing for Everyone
Testit 2017 - Exploratory Testing for EveryoneTestit 2017 - Exploratory Testing for Everyone
Testit 2017 - Exploratory Testing for Everyone
 
Don’t celebrate failure. Don’t celebrate success. Celebrate commitment, owner...
Don’t celebrate failure. Don’t celebrate success. Celebrate commitment, owner...Don’t celebrate failure. Don’t celebrate success. Celebrate commitment, owner...
Don’t celebrate failure. Don’t celebrate success. Celebrate commitment, owner...
 
Moving from scripted regression testing to exploratory testing
Moving from scripted regression testing to exploratory testingMoving from scripted regression testing to exploratory testing
Moving from scripted regression testing to exploratory testing
 
Building High Quality Software
Building High Quality SoftwareBuilding High Quality Software
Building High Quality Software
 
Quality, Testing & Agile Methodologies
Quality, Testing & Agile MethodologiesQuality, Testing & Agile Methodologies
Quality, Testing & Agile Methodologies
 
QI, not QA
QI, not QAQI, not QA
QI, not QA
 
Defining Test Competence
Defining Test CompetenceDefining Test Competence
Defining Test Competence
 
QI, not QA
QI, not QAQI, not QA
QI, not QA
 
Do we really need game testers?
Do we really need game testers?Do we really need game testers?
Do we really need game testers?
 
Hardware/Software Integration Testing
Hardware/Software Integration TestingHardware/Software Integration Testing
Hardware/Software Integration Testing
 
Defining Test Competence
Defining Test CompetenceDefining Test Competence
Defining Test Competence
 
Giving feedback & Scrum
Giving feedback & ScrumGiving feedback & Scrum
Giving feedback & Scrum
 
Communicated deadlines = bad quality
Communicated deadlines = bad qualityCommunicated deadlines = bad quality
Communicated deadlines = bad quality
 
The Tester Role & Scrum
The Tester Role & ScrumThe Tester Role & Scrum
The Tester Role & Scrum
 
Testing & Scrum
Testing & ScrumTesting & Scrum
Testing & Scrum
 
How to structure testing within the Scrum Framework
How to structure testing within the Scrum FrameworkHow to structure testing within the Scrum Framework
How to structure testing within the Scrum Framework
 

Recently uploaded

MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLSMANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLSSIVASHANKAR N
 
Introduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptxIntroduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptxupamatechverse
 
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete RecordCCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete RecordAsst.prof M.Gokilavani
 
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...ranjana rawat
 
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...Call Girls in Nagpur High Profile
 
UNIT-II FMM-Flow Through Circular Conduits
UNIT-II FMM-Flow Through Circular ConduitsUNIT-II FMM-Flow Through Circular Conduits
UNIT-II FMM-Flow Through Circular Conduitsrknatarajan
 
University management System project report..pdf
University management System project report..pdfUniversity management System project report..pdf
University management System project report..pdfKamal Acharya
 
Coefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptxCoefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptxAsutosh Ranjan
 
Introduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptxIntroduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptxupamatechverse
 
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur High Profile
 
Porous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writingPorous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writingrakeshbaidya232001
 
Russian Call Girls in Nagpur Grishma Call 7001035870 Meet With Nagpur Escorts
Russian Call Girls in Nagpur Grishma Call 7001035870 Meet With Nagpur EscortsRussian Call Girls in Nagpur Grishma Call 7001035870 Meet With Nagpur Escorts
Russian Call Girls in Nagpur Grishma Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur High Profile
 
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Bookingdharasingh5698
 
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINEMANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINESIVASHANKAR N
 
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...ranjana rawat
 
AKTU Computer Networks notes --- Unit 3.pdf
AKTU Computer Networks notes ---  Unit 3.pdfAKTU Computer Networks notes ---  Unit 3.pdf
AKTU Computer Networks notes --- Unit 3.pdfankushspencer015
 
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur High Profile
 
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdfONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdfKamal Acharya
 
Extrusion Processes and Their Limitations
Extrusion Processes and Their LimitationsExtrusion Processes and Their Limitations
Extrusion Processes and Their Limitations120cr0395
 

Recently uploaded (20)

MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLSMANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
 
Introduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptxIntroduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptx
 
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete RecordCCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
 
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
 
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
 
UNIT-II FMM-Flow Through Circular Conduits
UNIT-II FMM-Flow Through Circular ConduitsUNIT-II FMM-Flow Through Circular Conduits
UNIT-II FMM-Flow Through Circular Conduits
 
University management System project report..pdf
University management System project report..pdfUniversity management System project report..pdf
University management System project report..pdf
 
Coefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptxCoefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptx
 
Introduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptxIntroduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptx
 
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
 
Water Industry Process Automation & Control Monthly - April 2024
Water Industry Process Automation & Control Monthly - April 2024Water Industry Process Automation & Control Monthly - April 2024
Water Industry Process Automation & Control Monthly - April 2024
 
Porous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writingPorous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writing
 
Russian Call Girls in Nagpur Grishma Call 7001035870 Meet With Nagpur Escorts
Russian Call Girls in Nagpur Grishma Call 7001035870 Meet With Nagpur EscortsRussian Call Girls in Nagpur Grishma Call 7001035870 Meet With Nagpur Escorts
Russian Call Girls in Nagpur Grishma Call 7001035870 Meet With Nagpur Escorts
 
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
 
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINEMANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
 
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
 
AKTU Computer Networks notes --- Unit 3.pdf
AKTU Computer Networks notes ---  Unit 3.pdfAKTU Computer Networks notes ---  Unit 3.pdf
AKTU Computer Networks notes --- Unit 3.pdf
 
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
 
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdfONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
 
Extrusion Processes and Their Limitations
Extrusion Processes and Their LimitationsExtrusion Processes and Their Limitations
Extrusion Processes and Their Limitations
 

The Bug Backlog - An Evergrowing Mountain

  • 1. The Bug Backlog - An Evergrowing Mountain If you are part of a development team working on a game, and you are working in some kind of Agile way, you most likely have a bug backlog, or at least bugs as part of some kind of backlog. The bug backlog looks very different during different stages of the game development cycle - it starts out empty, and then as features and complexity is added, it grows. And in most cases it never stops growing. The first question to answer is why this is happening in general - why are we just not fixing the bugs? Let’s break it down a little bit: ● Value of fixing bug < Cost of fixing bug ○ If it costs more to fix a bug, than the value it adds to fix it, then it makes perfect sense not to spend time on fixing it ○ We may or may not have some bugs in our bug backlog that just do not make sense to fix because it costs too much ● Value of fixing bug < Spending your time on something else ○ If the opportunity cost is too high, and spending your time on something else adds more value than fixing the bug, it makes sense not to spend time on fixing it ○ Maybe adding a new feature, or fixing other bugs makes more sense than fixing a specific bug you care about So basically we are not fixing a bug, because we are adding more value doing something else.
  • 2. But there is a cost of allowing a bug backlog to grow uncontrollably. Let’s break it down. ● If you have a large number of bugs in your bug backlog, it is easy to lose visibility of what is in the backlog ● It becomes much easier to lose track of important bugs, as they are hidden by piles and piles of other bugs ● It takes time to go through, refine and prioritize the backlog - larger backlog, more time ● It has a psychological cost on the team as well - they get a feeling of that their work never ends, and can cause unnecessary stress So we don’t want to fix all bugs, because we create more value doing something else, but we don’t want the bug backlog to grow uncontrollably. And just prioritizing the bugs will not be enough. How do we solve this conundrum? Basically we have to close bugs, even though we are not fixing them. We just have to accept that some bugs we will never fix - out of sight, out of mind. Unfortunately calculating the actual value of a bug or a feature is never simple. The more data you have, the easier it gets, but even with all the data in the world, it is still a complex procedure. Value also changes over time, as context changes, which makes it even more complex. Let’s cover the easy parts first. ● All bugs with an obvious low value and cost higher than that value can be closed ○ Should the value of fixing the bug change in the future for some reason, the bug can be reopened ● Bugs with an extremely high cost will most likely need to be rebranded as some type of refactoring or broader changes to the system - so we can tag them as new stories instead of bugs ● Bugs that are critical to the game’s release we will fix, so they always stay at the top of the backlog But even with these parts done, most games will most likely have hundreds of bugs which would add value if they were fixed, but are still not prioritized because there are more important things to spend your time on. So how do we trim down the backlog to a workable state, to avoid the problems listed above? Basically there are three factors that come into play. ● Bug Inflow ○ How many new bugs are reported every sprint? ● Development Capacity
  • 3. ○ What bandwidth do we have to develop features and fix bugs? ● Game Roadmap ○ How do we expect to add value to the game over the coming time period? If we know how many bugs are usually added to the backlog each sprint, and we know how many we usually manage to fix, and the game roadmap looks similar to what it has before and no major course shifts are coming, then we have some guidance to how large we should allow the backlog to be. Let’s look at an example. ● If we usually have 2-4 new relevant non-critical bugs each sprint, and we have a healthy feature pipeline of high value things we want to develop ● We usually have time to fix between 2-4 of these types of bugs depending on feature workload and how many critical bugs we have to fix ● We want to spend our time fixing the 2-4 most valuable non-critical bugs, so we continuously prioritize them to make sure the high value ones are at the top of the backlog ○ This of course includes all new bugs as well ○ Prioritization should be done with the entire team - the Product Owner/Producer is the final arbiter of priority ● In the best case scenario where we fix more than we introduce, we want to have a backlog of high value bugs to pick from that will last us a significant amount of time ● In the worst case scenario were we introduce more than we fix, we want to have some kind of a limit to how many bugs we have in our backlog to avoid the problems mentioned before So let’s decide on a reasonable timeframe, say 3 months. For the bug backlog to last three months under the most favorable conditions, with sprints lasting 2 weeks, we would have to have 12 bugs in our bug backlog. 3 months = 6 sprints, and with -2 bugs in the backlog every sprint. So let’s say we originally had a bug backlog of 30 bugs. But we only need 12 for our healthy bug backlog. What do we do? ● The most important thing is to make sure that the bug backlog is properly prioritized, and that the top 12 bugs are indeed the most important ones ● When we start this experiment, we monitor the backlog for a few sprints to ensure that our calculations for inflow and bandwidth are correct ● Basically we can now say with relative certainty that the bottom 18 bugs in the backlog will never rise to the top and be fixed in any reasonable time frame ● Now we just close the bottom 18 bugs in the bug backlog, and begin our work with our healthy bug backlog
  • 4. But we need to ensure that the bug backlog remains healthy. We keep it healthy by reviewing it at the end of each sprint. Look at the new bugs that have come in. Prioritize the backlog, and close all bugs that exceed the threshold, in this case 12. But what if we have 14 bugs that we know are all of high value, and something that we will fix in the coming 3 months? What if at this moment in time we have had a high concentration of high value bugs? Then you make an exception, and allow the bug backlog to grow ever so slightly. But as soon as you notice that a bug has stayed in the backlog for more than 3 months, you automatically close it, because it shows that your initial assumption that it would be fixed was wrong. Are there risks to closing bugs that are of moderate importance, because you think they will never rise to the top of the backlog? Of course. Is there a risk that a previously closed bug will become more important as time goes by and context changes? Of course. But it is a risk we have to take, as the gains of working with a healthy bug backlog outweighs it. And you can always reopen bugs if you suddenly have more capacity than expected, if context changes, and if some old bug suddenly increases in importance. The numbers in this example (number of bugs, inflow, bandwidth, time frame, etc.) need to be tailored to every specific project and team, and this needs to be kicked off with the entire time so that everyone understands how and why we are doing this, and how we want to work with our new healthy bug backlog. Johan Hoberg