SlideShare a Scribd company logo
1 of 32
Not my Bug!
        Reasons for Software Bug Report Reassignments.


        Philip J. Guo
        Stanford University


        Thomas Zimmermann
        Nachiappan Nagappan
        Brendan Murphy
        Microsoft Research




© Microsoft Corporation
A confession…




© Microsoft Corporation
Opinions expressed on this slide are the personal opinions of the presenter, not of Microsoft. ;-)




© Microsoft Corporation
Backyard Safari Bug Vacuum   Best Ever Bug Jar
Price: $19.82                       Price: $8.12




      Big Bunch O' Bugs
      Price: $8.25



                                    Watch a Bug
                                    Price: $7.59
Found viaCorporation
 © Microsoft
© Microsoft Corporation
© Microsoft Corporation
Steps to
reproduce

Bug type

  How
 found?

Assignee

 Severity


© Microsoft Corporation
BUG TRACKING 101



© Microsoft Corporation
Your software fails…




© Microsoft Corporation
Slide provided by Sascha
© Microsoft Corporation Just
© Microsoft Corporation   Picture on the left provided by Rahul Premraj
Bugs with reassignments are more
                    likely to be fixed!

                          Windows Vista




© Microsoft Corporation
BUG REPORT
        REASSIGNMENTS


© Microsoft Corporation
Methodology
          Qualitative      • “In your experience, what are reasons why a
                             bug would be reassigned multiple times”
           survey          • 358 out of 1,773 responded. Card sort.

        Quantitative       • All bug reports for Windows Vista
                           • Logistic regression model for bugs with
          analysis           “excessive” reassignments

            Manual         • Random sample of bugs with “excessive”
                             reassignments (more than 5)
          inspection       • 50 bug reports

           Follow-up       • Reassignment patterns, bug pong
            survey         • 118 out of 397 responded


© Microsoft Corporation
What are reasons
                           for bug report
                          reassignments?




© Microsoft Corporation
#1: Finding the root cause
 Root cause in different component. “Bugs many
 times are exposed in the UI [user interface], but
 are not caused by the team writing the UI code. “
                          Not enough domain knowledge.
                          “The filer either lacked the expertise, will, or
                          time to investigate deep enough to
                          understand the issue at hand.”

                              Laziness. “People are willing to do just enough
                              to convince themselves it isn’t their problem
                              and then reassign to the person who they think
                              is closer to the right owner.”

© Microsoft Corporation
#2: Determining ownership
      Unclear ownership. “The bug falls into an area between
      two teams. Say, the USB team and the WPD (Windows
      Portable Devices) team. The bug gets kicked around many
      times while the teams decide who is actually at fault.”

                            Found in a bug report: “Dunno who gets this
                            one, but it’s not me. I don’t have anything to
                            do with this Component, as far as I know.”

                          “Playing bug pong between teams
                          who don’t agree on ownership.”

© Microsoft Corporation
#2: Determining ownership

           Bug pong /
           Hot potato

     • Majority of respondents in follow-up survey replied that bug
       pong is “uncommon”.
     • However, in some situations bug pong occurs frequently:
           – for components shared by multiple teams, high in the system
             stack, or with unclear ownership;
           – near milestones;
           – for bugs with incomplete steps to reproduce.




© Microsoft Corporation
#3: Poor bug report quality
                          “In my experience, the most important factor in
                          multiple reassignments is unclear bug reports.
                          If the person assigned to the bug doesn’t
                          understand the issue, they will either assign it
                          back to the person who opened it, or (rarely,
                          but it happens) assign it to the wrong person
                          based on misunderstood information, and then
                          it will become even worse.”




© Microsoft Corporation
#4: Determining proper fix

                          “There can be multiple possible fixes for
                          a given issue which can straddle teams,
                          so the bug can bounce back and forth
                          until the bug fix strategy is solidified.”




© Microsoft Corporation
#5: Workload balancing

                               “Once the bug has found the right team,
                               the biggest factor in reassigning is often
                               load balancing issues across team
                               members to drive down totals.
                               As bug counts become more important,
                               we’ll move issues around frequently.”




© Microsoft Corporation
Descriptive statistical analysis
     • All pre- and post-release bug reports for
       Windows Vista until July 2009.

     • Logistic regression model for bug reports with
       excessive numbers of reassignments
           – We defined “excessive” as greater than 5
             (90% of bugs had 5 or fewer reassignments)

     • Confirmed qualitative findings
           – Details see paper


© Microsoft Corporation
Quantifying reassignment cycles
           First assignee                            Last assignee




                Cycle at the beginning

           First assignee                            Last assignee




                                         Cycle at the end

© Microsoft Corporation
Quantifying reassignment cycles
     Bug reports with reassignment cycles in the
     beginning are more likely to be fixed.
                          Cycle size        Beginning                    End
                              2               1.11x                     0.96x
                              3               1.10x                     0.96x
                              4               1.12x                     0.93x
                              5               1.04x                     0.89x
                              6               1.07x                     0.97x
                              7               1.03x                     0.88x
                   x is the base probability of any Windows Vista bug
                   being successfully fixed

© Microsoft Corporation
Cycles at the beginning
     • Search for correct owner
     • Solicit additional information
             “The initial bug report is incomplete or inaccurate and
             Alice sends back to the tester (Bob) for more information,
             better repro steps, etc. This is a common cycle. Once the
             bug is improved, it has a high likelihood of being fixed.”




© Microsoft Corporation
Cycles at the end
     • Discussion on whether bug should be fixed
             “This example feels more like a triage cycle where Alice is the PM
             [program manager] (or opener) and Bob is the war team/triage
             team, etc. The war team is sending the bug back to PM/opener for
             justification why the bug should be fixed (and not punted). The fact
             that this conversation is happening at all means the bug is at risk
             and likely to be punted.”


     • Unclear ownership
             “When ABA is at the end, I think the bug is likely going back and
             forth between two developers, who either do not agree, or do not
             want the responsibility of fixing the bug.”



© Microsoft Corporation
LESSONS LEARNED



© Microsoft Corporation
Reassignments are part of bug fixing

     • Bug fixing is a highly collaborative process
       that involves many people.
     • Not all reassignments are bad.
           – Contrary to common belief in software engineering
           – Follow-up survey: developers considered only 17.6%
             of reassignments to be detrimental (median 10%)




© Microsoft Corporation
Finding root causes and owners
     • Most reassignments are related to finding
       root causes and people.
           – Bug triagers acting as information hubs can
             help to reduce unneeded reassignments.
     • Better tools for finding code ownership and
       expertise are needed.




© Microsoft Corporation
Fluid bug report assignment
     • Give developers a proactive role.
           – For example, show developers a list of bug
             reports that are related to them and let them pick.
     • Assign bug reports to multiple developers
       rather than just individuals.
     • Assign bug reports to arbitrary artifacts
           – Current bug tracking systems allow only
             assignment to people and components.



© Microsoft Corporation
Awareness and coordination
     • Increase the awareness of the changes
       happening around bug (re)assignments.
     • Visualizations of reassignment pattern.
     • Recommender systems based on past
       assignment history.




© Microsoft Corporation
Conclusions
     • Reassignments are beneficial to find the
       best person to fix a bug.
     • Excessive reassignments are harmful.
     • Primary reasons for reassignments:
           – finding the root cause, determining ownership,
             poor bug report quality, hard to determine
             proper fix, and workload balancing.
     • Role of reassignments changes over time

© Microsoft Corporation

More Related Content

Viewers also liked

Presentación1gestion de calidad
Presentación1gestion de calidadPresentación1gestion de calidad
Presentación1gestion de calidad
franciscooosssss
 
Jing Zhao_Thesis Project Lost Place_spread_2015.pdf_final_loww
Jing Zhao_Thesis Project Lost Place_spread_2015.pdf_final_lowwJing Zhao_Thesis Project Lost Place_spread_2015.pdf_final_loww
Jing Zhao_Thesis Project Lost Place_spread_2015.pdf_final_loww
Jing Zhao
 
Analytics for software development
Analytics for software developmentAnalytics for software development
Analytics for software development
Thomas Zimmermann
 

Viewers also liked (20)

Marketing plan gbu4 u
Marketing plan gbu4 uMarketing plan gbu4 u
Marketing plan gbu4 u
 
Data driven games user research
Data driven games user researchData driven games user research
Data driven games user research
 
9 reglas de la ciudadanía digital
9 reglas de la ciudadanía digital9 reglas de la ciudadanía digital
9 reglas de la ciudadanía digital
 
Presentación1gestion de calidad
Presentación1gestion de calidadPresentación1gestion de calidad
Presentación1gestion de calidad
 
Email marketing
Email marketingEmail marketing
Email marketing
 
Page One Engine Reviews
Page One Engine ReviewsPage One Engine Reviews
Page One Engine Reviews
 
Andaman Nicobar
Andaman NicobarAndaman Nicobar
Andaman Nicobar
 
Predicting Subsystem Defects using Dependency Graph Complexities
Predicting Subsystem Defects using Dependency Graph Complexities Predicting Subsystem Defects using Dependency Graph Complexities
Predicting Subsystem Defects using Dependency Graph Complexities
 
Jing Zhao_Thesis Project Lost Place_spread_2015.pdf_final_loww
Jing Zhao_Thesis Project Lost Place_spread_2015.pdf_final_lowwJing Zhao_Thesis Project Lost Place_spread_2015.pdf_final_loww
Jing Zhao_Thesis Project Lost Place_spread_2015.pdf_final_loww
 
Smart Simple Global
Smart Simple GlobalSmart Simple Global
Smart Simple Global
 
Analytics for software development
Analytics for software developmentAnalytics for software development
Analytics for software development
 
Saying numbers 5
Saying numbers 5Saying numbers 5
Saying numbers 5
 
Saying numbers 4
Saying numbers 4Saying numbers 4
Saying numbers 4
 
Saying numbers 3
Saying numbers 3Saying numbers 3
Saying numbers 3
 
Saying numbers 6
Saying numbers 6Saying numbers 6
Saying numbers 6
 
El potencial de forrajes para la ganadería sostenible y la mitigación del imp...
El potencial de forrajes para la ganadería sostenible y la mitigación del imp...El potencial de forrajes para la ganadería sostenible y la mitigación del imp...
El potencial de forrajes para la ganadería sostenible y la mitigación del imp...
 
Empirical Software Engineering at Microsoft Research
Empirical Software Engineering at Microsoft ResearchEmpirical Software Engineering at Microsoft Research
Empirical Software Engineering at Microsoft Research
 
Science of Stress and Art of preventing it
Science of Stress and Art of preventing itScience of Stress and Art of preventing it
Science of Stress and Art of preventing it
 
Power of Questions
Power of QuestionsPower of Questions
Power of Questions
 
Desarrollo del Mercado de Valores y Crecimiento Económico: ¿Existe una Relaci...
Desarrollo del Mercado de Valores y Crecimiento Económico: ¿Existe una Relaci...Desarrollo del Mercado de Valores y Crecimiento Económico: ¿Existe una Relaci...
Desarrollo del Mercado de Valores y Crecimiento Económico: ¿Existe una Relaci...
 

Similar to Not my bug! Reasons for software bug report reassignments

Classic Testing Mistakes 0226
Classic Testing Mistakes 0226Classic Testing Mistakes 0226
Classic Testing Mistakes 0226
MBA_Community
 
10 Reasons Why You Fix Bugs As Soon As You Find Them
10 Reasons Why You Fix Bugs As Soon As You Find Them10 Reasons Why You Fix Bugs As Soon As You Find Them
10 Reasons Why You Fix Bugs As Soon As You Find Them
Rosie Sherry
 
Bug best practice
Bug best practiceBug best practice
Bug best practice
gaoliang641
 
5-Ways-to-Revolutionize-Your-Software-Testing
5-Ways-to-Revolutionize-Your-Software-Testing5-Ways-to-Revolutionize-Your-Software-Testing
5-Ways-to-Revolutionize-Your-Software-Testing
Mary Clemons
 
Dan Cornell - The Real Cost of Software Remediation
Dan Cornell  - The Real Cost of Software RemediationDan Cornell  - The Real Cost of Software Remediation
Dan Cornell - The Real Cost of Software Remediation
Source Conference
 
179 black-box-software-testing-copyright-2003-cem-kaner1652
179 black-box-software-testing-copyright-2003-cem-kaner1652179 black-box-software-testing-copyright-2003-cem-kaner1652
179 black-box-software-testing-copyright-2003-cem-kaner1652
ngothanhtungth
 
Ground rules
Ground rulesGround rules
Ground rules
Lior Sion
 

Similar to Not my bug! Reasons for software bug report reassignments (20)

Characterizing and Predicting Which Bugs Get Reopened
Characterizing and Predicting Which Bugs Get ReopenedCharacterizing and Predicting Which Bugs Get Reopened
Characterizing and Predicting Which Bugs Get Reopened
 
Classic Testing Mistakes 0226
Classic Testing Mistakes 0226Classic Testing Mistakes 0226
Classic Testing Mistakes 0226
 
Analytics for smarter software development
Analytics for smarter software development Analytics for smarter software development
Analytics for smarter software development
 
Bug Advocacy
Bug AdvocacyBug Advocacy
Bug Advocacy
 
10 Reasons Why You Fix Bugs As Soon As You Find Them
10 Reasons Why You Fix Bugs As Soon As You Find Them10 Reasons Why You Fix Bugs As Soon As You Find Them
10 Reasons Why You Fix Bugs As Soon As You Find Them
 
Chaos engineering
Chaos engineering Chaos engineering
Chaos engineering
 
Bug best practice
Bug best practiceBug best practice
Bug best practice
 
The Most Important Thing: How Mozilla Does Security and What You Can Steal
The Most Important Thing: How Mozilla Does Security and What You Can StealThe Most Important Thing: How Mozilla Does Security and What You Can Steal
The Most Important Thing: How Mozilla Does Security and What You Can Steal
 
5-Ways-to-Revolutionize-Your-Software-Testing
5-Ways-to-Revolutionize-Your-Software-Testing5-Ways-to-Revolutionize-Your-Software-Testing
5-Ways-to-Revolutionize-Your-Software-Testing
 
Debugging under fire: Keeping your head when systems have lost their mind
Debugging under fire: Keeping your head when systems have lost their mindDebugging under fire: Keeping your head when systems have lost their mind
Debugging under fire: Keeping your head when systems have lost their mind
 
Vulnerability Management
Vulnerability ManagementVulnerability Management
Vulnerability Management
 
SAD15 - Maintenance
SAD15 - MaintenanceSAD15 - Maintenance
SAD15 - Maintenance
 
Dan Cornell - The Real Cost of Software Remediation
Dan Cornell  - The Real Cost of Software RemediationDan Cornell  - The Real Cost of Software Remediation
Dan Cornell - The Real Cost of Software Remediation
 
Real Cost of Software Remediation
Real Cost of Software RemediationReal Cost of Software Remediation
Real Cost of Software Remediation
 
Mergebase dont-let-vulns-run-wild
Mergebase dont-let-vulns-run-wildMergebase dont-let-vulns-run-wild
Mergebase dont-let-vulns-run-wild
 
Improving Bug Tracking Systems
Improving Bug Tracking SystemsImproving Bug Tracking Systems
Improving Bug Tracking Systems
 
Cyber security - It starts with the embedded system
Cyber security - It starts with the embedded systemCyber security - It starts with the embedded system
Cyber security - It starts with the embedded system
 
179 black-box-software-testing-copyright-2003-cem-kaner1652
179 black-box-software-testing-copyright-2003-cem-kaner1652179 black-box-software-testing-copyright-2003-cem-kaner1652
179 black-box-software-testing-copyright-2003-cem-kaner1652
 
Ground rules
Ground rulesGround rules
Ground rules
 
What if you could eliminate the hidden costs of development?
What if you could eliminate the hidden costs of development?What if you could eliminate the hidden costs of development?
What if you could eliminate the hidden costs of development?
 

More from Thomas Zimmermann

More from Thomas Zimmermann (20)

Software Analytics = Sharing Information
Software Analytics = Sharing InformationSoftware Analytics = Sharing Information
Software Analytics = Sharing Information
 
MSR 2013 Preview
MSR 2013 PreviewMSR 2013 Preview
MSR 2013 Preview
 
Predicting Method Crashes with Bytecode Operations
Predicting Method Crashes with Bytecode OperationsPredicting Method Crashes with Bytecode Operations
Predicting Method Crashes with Bytecode Operations
 
Klingon Countdown Timer
Klingon Countdown TimerKlingon Countdown Timer
Klingon Countdown Timer
 
Security trend analysis with CVE topic models
Security trend analysis with CVE topic modelsSecurity trend analysis with CVE topic models
Security trend analysis with CVE topic models
 
Changes and Bugs: Mining and Predicting Development Activities
Changes and Bugs: Mining and Predicting Development ActivitiesChanges and Bugs: Mining and Predicting Development Activities
Changes and Bugs: Mining and Predicting Development Activities
 
Cross-project defect prediction
Cross-project defect predictionCross-project defect prediction
Cross-project defect prediction
 
Changes and Bugs: Mining and Predicting Development Activities
Changes and Bugs: Mining and Predicting Development ActivitiesChanges and Bugs: Mining and Predicting Development Activities
Changes and Bugs: Mining and Predicting Development Activities
 
Predicting Defects using Network Analysis on Dependency Graphs
Predicting Defects using Network Analysis on Dependency GraphsPredicting Defects using Network Analysis on Dependency Graphs
Predicting Defects using Network Analysis on Dependency Graphs
 
Quality of Bug Reports in Open Source
Quality of Bug Reports in Open SourceQuality of Bug Reports in Open Source
Quality of Bug Reports in Open Source
 
Meet Tom and his Fish
Meet Tom and his FishMeet Tom and his Fish
Meet Tom and his Fish
 
Got Myth? Myths in Software Engineering
Got Myth? Myths in Software EngineeringGot Myth? Myths in Software Engineering
Got Myth? Myths in Software Engineering
 
Mining Workspace Updates in CVS
Mining Workspace Updates in CVSMining Workspace Updates in CVS
Mining Workspace Updates in CVS
 
Mining Software Archives to Support Software Development
Mining Software Archives to Support Software DevelopmentMining Software Archives to Support Software Development
Mining Software Archives to Support Software Development
 
Unit testing with JUnit
Unit testing with JUnitUnit testing with JUnit
Unit testing with JUnit
 
esolang: Esoterische Programmiersprachen
esolang: Esoterische Programmiersprachenesolang: Esoterische Programmiersprachen
esolang: Esoterische Programmiersprachen
 
TA-RE: An Exchange Language for Mining Software Repositories
TA-RE: An Exchange Language for Mining Software RepositoriesTA-RE: An Exchange Language for Mining Software Repositories
TA-RE: An Exchange Language for Mining Software Repositories
 
Fine-grained Processing of CVS Archives with APFEL
Fine-grained Processing of CVS Archives with APFELFine-grained Processing of CVS Archives with APFEL
Fine-grained Processing of CVS Archives with APFEL
 
DynaMine: Finding Common Error Patterns by Mining Software Revision Histories
DynaMine: Finding Common Error Patterns by Mining Software Revision HistoriesDynaMine: Finding Common Error Patterns by Mining Software Revision Histories
DynaMine: Finding Common Error Patterns by Mining Software Revision Histories
 
How History Justifies System Architecture (or Not)
How History Justifies System Architecture (or Not)How History Justifies System Architecture (or Not)
How History Justifies System Architecture (or Not)
 

Recently uploaded

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Recently uploaded (20)

Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 

Not my bug! Reasons for software bug report reassignments

  • 1. Not my Bug! Reasons for Software Bug Report Reassignments. Philip J. Guo Stanford University Thomas Zimmermann Nachiappan Nagappan Brendan Murphy Microsoft Research © Microsoft Corporation
  • 3. Opinions expressed on this slide are the personal opinions of the presenter, not of Microsoft. ;-) © Microsoft Corporation
  • 4. Backyard Safari Bug Vacuum Best Ever Bug Jar Price: $19.82 Price: $8.12 Big Bunch O' Bugs Price: $8.25 Watch a Bug Price: $7.59 Found viaCorporation © Microsoft
  • 7. Steps to reproduce Bug type How found? Assignee Severity © Microsoft Corporation
  • 8. BUG TRACKING 101 © Microsoft Corporation
  • 9. Your software fails… © Microsoft Corporation
  • 10. Slide provided by Sascha © Microsoft Corporation Just
  • 11. © Microsoft Corporation Picture on the left provided by Rahul Premraj
  • 12. Bugs with reassignments are more likely to be fixed! Windows Vista © Microsoft Corporation
  • 13. BUG REPORT REASSIGNMENTS © Microsoft Corporation
  • 14. Methodology Qualitative • “In your experience, what are reasons why a bug would be reassigned multiple times” survey • 358 out of 1,773 responded. Card sort. Quantitative • All bug reports for Windows Vista • Logistic regression model for bugs with analysis “excessive” reassignments Manual • Random sample of bugs with “excessive” reassignments (more than 5) inspection • 50 bug reports Follow-up • Reassignment patterns, bug pong survey • 118 out of 397 responded © Microsoft Corporation
  • 15. What are reasons for bug report reassignments? © Microsoft Corporation
  • 16. #1: Finding the root cause Root cause in different component. “Bugs many times are exposed in the UI [user interface], but are not caused by the team writing the UI code. “ Not enough domain knowledge. “The filer either lacked the expertise, will, or time to investigate deep enough to understand the issue at hand.” Laziness. “People are willing to do just enough to convince themselves it isn’t their problem and then reassign to the person who they think is closer to the right owner.” © Microsoft Corporation
  • 17. #2: Determining ownership Unclear ownership. “The bug falls into an area between two teams. Say, the USB team and the WPD (Windows Portable Devices) team. The bug gets kicked around many times while the teams decide who is actually at fault.” Found in a bug report: “Dunno who gets this one, but it’s not me. I don’t have anything to do with this Component, as far as I know.” “Playing bug pong between teams who don’t agree on ownership.” © Microsoft Corporation
  • 18. #2: Determining ownership Bug pong / Hot potato • Majority of respondents in follow-up survey replied that bug pong is “uncommon”. • However, in some situations bug pong occurs frequently: – for components shared by multiple teams, high in the system stack, or with unclear ownership; – near milestones; – for bugs with incomplete steps to reproduce. © Microsoft Corporation
  • 19. #3: Poor bug report quality “In my experience, the most important factor in multiple reassignments is unclear bug reports. If the person assigned to the bug doesn’t understand the issue, they will either assign it back to the person who opened it, or (rarely, but it happens) assign it to the wrong person based on misunderstood information, and then it will become even worse.” © Microsoft Corporation
  • 20. #4: Determining proper fix “There can be multiple possible fixes for a given issue which can straddle teams, so the bug can bounce back and forth until the bug fix strategy is solidified.” © Microsoft Corporation
  • 21. #5: Workload balancing “Once the bug has found the right team, the biggest factor in reassigning is often load balancing issues across team members to drive down totals. As bug counts become more important, we’ll move issues around frequently.” © Microsoft Corporation
  • 22. Descriptive statistical analysis • All pre- and post-release bug reports for Windows Vista until July 2009. • Logistic regression model for bug reports with excessive numbers of reassignments – We defined “excessive” as greater than 5 (90% of bugs had 5 or fewer reassignments) • Confirmed qualitative findings – Details see paper © Microsoft Corporation
  • 23. Quantifying reassignment cycles First assignee Last assignee Cycle at the beginning First assignee Last assignee Cycle at the end © Microsoft Corporation
  • 24. Quantifying reassignment cycles Bug reports with reassignment cycles in the beginning are more likely to be fixed. Cycle size Beginning End 2 1.11x 0.96x 3 1.10x 0.96x 4 1.12x 0.93x 5 1.04x 0.89x 6 1.07x 0.97x 7 1.03x 0.88x x is the base probability of any Windows Vista bug being successfully fixed © Microsoft Corporation
  • 25. Cycles at the beginning • Search for correct owner • Solicit additional information “The initial bug report is incomplete or inaccurate and Alice sends back to the tester (Bob) for more information, better repro steps, etc. This is a common cycle. Once the bug is improved, it has a high likelihood of being fixed.” © Microsoft Corporation
  • 26. Cycles at the end • Discussion on whether bug should be fixed “This example feels more like a triage cycle where Alice is the PM [program manager] (or opener) and Bob is the war team/triage team, etc. The war team is sending the bug back to PM/opener for justification why the bug should be fixed (and not punted). The fact that this conversation is happening at all means the bug is at risk and likely to be punted.” • Unclear ownership “When ABA is at the end, I think the bug is likely going back and forth between two developers, who either do not agree, or do not want the responsibility of fixing the bug.” © Microsoft Corporation
  • 28. Reassignments are part of bug fixing • Bug fixing is a highly collaborative process that involves many people. • Not all reassignments are bad. – Contrary to common belief in software engineering – Follow-up survey: developers considered only 17.6% of reassignments to be detrimental (median 10%) © Microsoft Corporation
  • 29. Finding root causes and owners • Most reassignments are related to finding root causes and people. – Bug triagers acting as information hubs can help to reduce unneeded reassignments. • Better tools for finding code ownership and expertise are needed. © Microsoft Corporation
  • 30. Fluid bug report assignment • Give developers a proactive role. – For example, show developers a list of bug reports that are related to them and let them pick. • Assign bug reports to multiple developers rather than just individuals. • Assign bug reports to arbitrary artifacts – Current bug tracking systems allow only assignment to people and components. © Microsoft Corporation
  • 31. Awareness and coordination • Increase the awareness of the changes happening around bug (re)assignments. • Visualizations of reassignment pattern. • Recommender systems based on past assignment history. © Microsoft Corporation
  • 32. Conclusions • Reassignments are beneficial to find the best person to fix a bug. • Excessive reassignments are harmful. • Primary reasons for reassignments: – finding the root cause, determining ownership, poor bug report quality, hard to determine proper fix, and workload balancing. • Role of reassignments changes over time © Microsoft Corporation