SlideShare uma empresa Scribd logo
1 de 4
Baixar para ler 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

Mais conteúdo relacionado

Mais procurados

Ten Concrete Techniques to Split User Stories
Ten Concrete Techniques to Split User StoriesTen Concrete Techniques to Split User Stories
Ten Concrete Techniques to Split User StoriesNight Wolf
 
Kanban vs Scrum: What's the difference, and which should you use?
Kanban vs Scrum: What's the difference, and which should you use?Kanban vs Scrum: What's the difference, and which should you use?
Kanban vs Scrum: What's the difference, and which should you use?Arun Kumar
 
Certified Scrum Product Owner: class desk, posters and photos
Certified Scrum Product Owner: class desk, posters and photosCertified Scrum Product Owner: class desk, posters and photos
Certified Scrum Product Owner: class desk, posters and photosAlexey Krivitsky
 
12 Agile Principles in Pictures
12 Agile Principles in Pictures12 Agile Principles in Pictures
12 Agile Principles in PicturesIAMCP MENTORING
 
Kanban Basics for Beginners
Kanban Basics for BeginnersKanban Basics for Beginners
Kanban Basics for BeginnersZsolt Fabok
 
The Daily Scrum (The Scrum Events)
The Daily Scrum (The Scrum Events)The Daily Scrum (The Scrum Events)
The Daily Scrum (The Scrum Events)George Psistakis
 
Scrum and the agile development process
Scrum and the agile development processScrum and the agile development process
Scrum and the agile development processjhericks
 
Scrum Agile Methodlogy
Scrum Agile MethodlogyScrum Agile Methodlogy
Scrum Agile MethodlogyBahaa Farouk
 
Scrum sprint structure workshop by Nermina Durmić
Scrum sprint structure workshop by Nermina DurmićScrum sprint structure workshop by Nermina Durmić
Scrum sprint structure workshop by Nermina DurmićBosnia Agile
 
Experimental Game Prototyping and Play Testing using Iterative Design
Experimental Game Prototyping and Play Testing using Iterative DesignExperimental Game Prototyping and Play Testing using Iterative Design
Experimental Game Prototyping and Play Testing using Iterative DesignMirjam Eladhari
 
Introduction agile scrum methodology
Introduction agile scrum methodologyIntroduction agile scrum methodology
Introduction agile scrum methodologyAmit Verma
 

Mais procurados (20)

Ten Concrete Techniques to Split User Stories
Ten Concrete Techniques to Split User StoriesTen Concrete Techniques to Split User Stories
Ten Concrete Techniques to Split User Stories
 
Kanban vs Scrum: What's the difference, and which should you use?
Kanban vs Scrum: What's the difference, and which should you use?Kanban vs Scrum: What's the difference, and which should you use?
Kanban vs Scrum: What's the difference, and which should you use?
 
Scrum 101
Scrum 101 Scrum 101
Scrum 101
 
Agile Metrics 101
Agile Metrics 101Agile Metrics 101
Agile Metrics 101
 
Certified Scrum Product Owner: class desk, posters and photos
Certified Scrum Product Owner: class desk, posters and photosCertified Scrum Product Owner: class desk, posters and photos
Certified Scrum Product Owner: class desk, posters and photos
 
12 Agile Principles in Pictures
12 Agile Principles in Pictures12 Agile Principles in Pictures
12 Agile Principles in Pictures
 
Agile Scrum Framework vs Kanban Method
Agile Scrum Framework  vs Kanban MethodAgile Scrum Framework  vs Kanban Method
Agile Scrum Framework vs Kanban Method
 
Kanban Basics for Beginners
Kanban Basics for BeginnersKanban Basics for Beginners
Kanban Basics for Beginners
 
The Daily Scrum (The Scrum Events)
The Daily Scrum (The Scrum Events)The Daily Scrum (The Scrum Events)
The Daily Scrum (The Scrum Events)
 
User Flows
User FlowsUser Flows
User Flows
 
Scrum and the agile development process
Scrum and the agile development processScrum and the agile development process
Scrum and the agile development process
 
Scrum Agile Methodlogy
Scrum Agile MethodlogyScrum Agile Methodlogy
Scrum Agile Methodlogy
 
Scrum sprint structure workshop by Nermina Durmić
Scrum sprint structure workshop by Nermina DurmićScrum sprint structure workshop by Nermina Durmić
Scrum sprint structure workshop by Nermina Durmić
 
Experimental Game Prototyping and Play Testing using Iterative Design
Experimental Game Prototyping and Play Testing using Iterative DesignExperimental Game Prototyping and Play Testing using Iterative Design
Experimental Game Prototyping and Play Testing using Iterative Design
 
5S Training.ppt
5S Training.ppt5S Training.ppt
5S Training.ppt
 
What Is Agile Scrum
What Is Agile ScrumWhat Is Agile Scrum
What Is Agile Scrum
 
Introduction agile scrum methodology
Introduction agile scrum methodologyIntroduction agile scrum methodology
Introduction agile scrum methodology
 
Scrum introduction
Scrum introductionScrum introduction
Scrum introduction
 
Agile (Scrum)
Agile (Scrum)Agile (Scrum)
Agile (Scrum)
 
Scrumban
ScrumbanScrumban
Scrumban
 

Semelhante a 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
 

Semelhante a 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
 

Mais de 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 a QA Mindset
Building a QA Mindset Building a QA Mindset
Building a QA Mindset Johan 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
 

Mais de 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
 
Building a QA Mindset
Building a QA Mindset Building a QA Mindset
Building a QA Mindset
 
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
 

Último

Introduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptxIntroduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptxupamatechverse
 
Extrusion Processes and Their Limitations
Extrusion Processes and Their LimitationsExtrusion Processes and Their Limitations
Extrusion Processes and Their Limitations120cr0395
 
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICS
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICSHARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICS
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICSRajkumarAkumalla
 
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...ranjana rawat
 
Processing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptxProcessing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptxpranjaldaimarysona
 
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Serviceranjana rawat
 
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...Call Girls in Nagpur High Profile
 
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...Dr.Costas Sachpazis
 
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
 
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service Nashik
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service NashikCall Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service Nashik
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service NashikCall Girls in Nagpur High Profile
 
Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝
Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝
Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝soniya singh
 
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCollege Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCall Girls in Nagpur High Profile
 
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
 
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escortsranjana rawat
 
Porous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writingPorous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writingrakeshbaidya232001
 
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICSAPPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICSKurinjimalarL3
 
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur EscortsCall Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur High Profile
 
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...Soham Mondal
 
(TARA) Talegaon Dabhade Call Girls Just Call 7001035870 [ Cash on Delivery ] ...
(TARA) Talegaon Dabhade Call Girls Just Call 7001035870 [ Cash on Delivery ] ...(TARA) Talegaon Dabhade Call Girls Just Call 7001035870 [ Cash on Delivery ] ...
(TARA) Talegaon Dabhade Call Girls Just Call 7001035870 [ Cash on Delivery ] ...ranjana rawat
 

Último (20)

Introduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptxIntroduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptx
 
Extrusion Processes and Their Limitations
Extrusion Processes and Their LimitationsExtrusion Processes and Their Limitations
Extrusion Processes and Their Limitations
 
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICS
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICSHARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICS
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICS
 
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
 
Processing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptxProcessing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptx
 
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service
 
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
 
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
 
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
 
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service Nashik
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service NashikCall Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service Nashik
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service Nashik
 
Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝
Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝
Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝
 
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCollege Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
 
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
 
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
 
Porous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writingPorous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writing
 
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICSAPPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
 
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur EscortsCall Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
 
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
 
★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR
★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR
★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR
 
(TARA) Talegaon Dabhade Call Girls Just Call 7001035870 [ Cash on Delivery ] ...
(TARA) Talegaon Dabhade Call Girls Just Call 7001035870 [ Cash on Delivery ] ...(TARA) Talegaon Dabhade Call Girls Just Call 7001035870 [ Cash on Delivery ] ...
(TARA) Talegaon Dabhade Call Girls Just Call 7001035870 [ Cash on Delivery ] ...
 

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