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

Data driven games user research
Data driven games user researchData driven games user research
Data driven games user researchThomas Zimmermann
 
Presentación1gestion de calidad
Presentación1gestion de calidadPresentación1gestion de calidad
Presentación1gestion de calidadfranciscooosssss
 
Page One Engine Reviews
Page One Engine ReviewsPage One Engine Reviews
Page One Engine Reviewsamuckzero8420
 
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 Thomas Zimmermann
 
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_lowwJing Zhao
 
Smart Simple Global
Smart Simple GlobalSmart Simple Global
Smart Simple Globalprofitbomber
 
Analytics for software development
Analytics for software developmentAnalytics for software development
Analytics for software developmentThomas Zimmermann
 
Saying numbers 5
Saying numbers 5Saying numbers 5
Saying numbers 5Mrsjalland
 
Saying numbers 4
Saying numbers 4Saying numbers 4
Saying numbers 4Mrsjalland
 
Saying numbers 3
Saying numbers 3Saying numbers 3
Saying numbers 3Mrsjalland
 
Saying numbers 6
Saying numbers 6Saying numbers 6
Saying numbers 6Mrsjalland
 
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...ILRI
 
Empirical Software Engineering at Microsoft Research
Empirical Software Engineering at Microsoft ResearchEmpirical Software Engineering at Microsoft Research
Empirical Software Engineering at Microsoft ResearchThomas Zimmermann
 
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 itVishweshwar Hegde
 
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...Investigador Principal (IELAT_UAH)
 

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

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 ReopenedThomas Zimmermann
 
Classic Testing Mistakes 0226
Classic Testing Mistakes 0226Classic Testing Mistakes 0226
Classic Testing Mistakes 0226MBA_Community
 
Analytics for smarter software development
Analytics for smarter software development Analytics for smarter software development
Analytics for smarter software development Thomas Zimmermann
 
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 ThemRosie Sherry
 
Bug best practice
Bug best practiceBug best practice
Bug best practicegaoliang641
 
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 Stealmozilla.presentations
 
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-TestingMary Clemons
 
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 mindbcantrill
 
Vulnerability Management
Vulnerability ManagementVulnerability Management
Vulnerability Managementjustinkallhoff
 
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 RemediationSource Conference
 
Real Cost of Software Remediation
Real Cost of Software RemediationReal Cost of Software Remediation
Real Cost of Software RemediationDenim Group
 
Mergebase dont-let-vulns-run-wild
Mergebase dont-let-vulns-run-wildMergebase dont-let-vulns-run-wild
Mergebase dont-let-vulns-run-wildJaredHarris18
 
Improving Bug Tracking Systems
Improving Bug Tracking SystemsImproving Bug Tracking Systems
Improving Bug Tracking SystemsRahul Premraj
 
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 systemRogue Wave Software
 
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-kaner1652ngothanhtungth
 
Ground rules
Ground rulesGround rules
Ground rulesLior Sion
 
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?Rogue Wave Software
 

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

Software Analytics = Sharing Information
Software Analytics = Sharing InformationSoftware Analytics = Sharing Information
Software Analytics = Sharing InformationThomas Zimmermann
 
Predicting Method Crashes with Bytecode Operations
Predicting Method Crashes with Bytecode OperationsPredicting Method Crashes with Bytecode Operations
Predicting Method Crashes with Bytecode OperationsThomas Zimmermann
 
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 modelsThomas Zimmermann
 
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 ActivitiesThomas Zimmermann
 
Cross-project defect prediction
Cross-project defect predictionCross-project defect prediction
Cross-project defect predictionThomas Zimmermann
 
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 ActivitiesThomas Zimmermann
 
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 GraphsThomas Zimmermann
 
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 SourceThomas Zimmermann
 
Got Myth? Myths in Software Engineering
Got Myth? Myths in Software EngineeringGot Myth? Myths in Software Engineering
Got Myth? Myths in Software EngineeringThomas Zimmermann
 
Mining Workspace Updates in CVS
Mining Workspace Updates in CVSMining Workspace Updates in CVS
Mining Workspace Updates in CVSThomas Zimmermann
 
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 DevelopmentThomas Zimmermann
 
esolang: Esoterische Programmiersprachen
esolang: Esoterische Programmiersprachenesolang: Esoterische Programmiersprachen
esolang: Esoterische ProgrammiersprachenThomas Zimmermann
 
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 RepositoriesThomas Zimmermann
 
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 APFELThomas Zimmermann
 
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 HistoriesThomas Zimmermann
 
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)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

Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 

Recently uploaded (20)

Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 

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