2011 0709-practices andquality-annotated-weiss-alessandro
TRANSCRIPT
![Page 1: 2011 0709-practices andquality-annotated-weiss-alessandro](https://reader037.vdocument.in/reader037/viewer/2022100606/559e980f1a28abfc1f8b4615/html5/thumbnails/1.jpg)
Impact of Software Development Practices on
Software QualityRodrigo Rocha G. e Souza <[email protected]>
2011-07-09
![Page 2: 2011 0709-practices andquality-annotated-weiss-alessandro](https://reader037.vdocument.in/reader037/viewer/2022100606/559e980f1a28abfc1f8b4615/html5/thumbnails/2.jpg)
Software Dev. Practices
“Practices are contained, repeatable, and transferable techniques used to improve some aspect of the performance of a software organization that is pertinent to the creation of its products.”Jorge Aranda (2010) - A Theory of Shared Understanding for Software Organizations [PhD Thesis], p. 123
![Page 3: 2011 0709-practices andquality-annotated-weiss-alessandro](https://reader037.vdocument.in/reader037/viewer/2022100606/559e980f1a28abfc1f8b4615/html5/thumbnails/3.jpg)
Software Dev. Practices
• Examples:
• Four eyes principle (verifier ≠ fixer)
• Test first
• Collective vs. strong ownership
• Coding standards
• Continuous integration
• Code documentation ...
![Page 4: 2011 0709-practices andquality-annotated-weiss-alessandro](https://reader037.vdocument.in/reader037/viewer/2022100606/559e980f1a28abfc1f8b4615/html5/thumbnails/4.jpg)
Software Quality
• Many definitions and metrics
• Design quality (coupling/cohesion)
• Code quality (Findbugs, Checkstyle)
• Functional quality (# of bugs)
![Page 5: 2011 0709-practices andquality-annotated-weiss-alessandro](https://reader037.vdocument.in/reader037/viewer/2022100606/559e980f1a28abfc1f8b4615/html5/thumbnails/5.jpg)
Do practices impact quality? What practices?
In what contexts?
![Page 6: 2011 0709-practices andquality-annotated-weiss-alessandro](https://reader037.vdocument.in/reader037/viewer/2022100606/559e980f1a28abfc1f8b4615/html5/thumbnails/6.jpg)
Observational study #1
• Nonconformance to four eyes principle ⇒
bug is not 100% fixed and needs to be reopened?
• Data: bug reports on Eclipse’s Bugzilla
![Page 7: 2011 0709-practices andquality-annotated-weiss-alessandro](https://reader037.vdocument.in/reader037/viewer/2022100606/559e980f1a28abfc1f8b4615/html5/thumbnails/7.jpg)
http://wiki.eclipse.org/Development_Resources/HOWTO/Bugzilla_Use
“It is important that the verifier be a different person than the fixer because the fixer is too close to the code and thus may not be as diligent at testing the corner cases.”
![Page 8: 2011 0709-practices andquality-annotated-weiss-alessandro](https://reader037.vdocument.in/reader037/viewer/2022100606/559e980f1a28abfc1f8b4615/html5/thumbnails/8.jpg)
Methods
• Selected only verified bugs with last modification ≤ December, 2009.
Eclipse/JDT ¬reopened reopened
¬conform 6838 167
conform 9707 94
• Fisher’s exact test
![Page 9: 2011 0709-practices andquality-annotated-weiss-alessandro](https://reader037.vdocument.in/reader037/viewer/2022100606/559e980f1a28abfc1f8b4615/html5/thumbnails/9.jpg)
Results
• In some subprojects, bugs verified by the fixer were more likely to be reopened.
• 5x more likely on Eclipse/JDT
• 2.5x more likely on Eclipse/Platform
• In some subprojects, the difference was not statistically significant. (why?)
• BIRT, EMF etc.
![Page 10: 2011 0709-practices andquality-annotated-weiss-alessandro](https://reader037.vdocument.in/reader037/viewer/2022100606/559e980f1a28abfc1f8b4615/html5/thumbnails/10.jpg)
Next
• context
• other projects
• other practices
![Page 11: 2011 0709-practices andquality-annotated-weiss-alessandro](https://reader037.vdocument.in/reader037/viewer/2022100606/559e980f1a28abfc1f8b4615/html5/thumbnails/11.jpg)
Next: Context
Crowston & Howison (2005) - The social structure of free and open source software development
![Page 12: 2011 0709-practices andquality-annotated-weiss-alessandro](https://reader037.vdocument.in/reader037/viewer/2022100606/559e980f1a28abfc1f8b4615/html5/thumbnails/12.jpg)
Next: Context
Philippe Kruchten (2010) - Contextualizing Agile Software Development
![Page 13: 2011 0709-practices andquality-annotated-weiss-alessandro](https://reader037.vdocument.in/reader037/viewer/2022100606/559e980f1a28abfc1f8b4615/html5/thumbnails/13.jpg)
Next: other projects
• Available data:
• Eclipse
• Netbeans
• Firefox
• Chrome
![Page 14: 2011 0709-practices andquality-annotated-weiss-alessandro](https://reader037.vdocument.in/reader037/viewer/2022100606/559e980f1a28abfc1f8b4615/html5/thumbnails/14.jpg)
Related work
• Collective ownership vs. quality: enough eyeballs or too many cooks?
• Bird2010: high ownership and few minor contributors ⇒
less defects (mostly in commercial projects)
• Rahman2011: “implicated” code* more often associated with a single developer’s contribution. Experience in the modified files is more important than general experience. (context: FOSS)* Code that was changed in a bug fix.
• Maruping2008: collective ownership improves software quality (in low expertise teams)
![Page 15: 2011 0709-practices andquality-annotated-weiss-alessandro](https://reader037.vdocument.in/reader037/viewer/2022100606/559e980f1a28abfc1f8b4615/html5/thumbnails/15.jpg)
Related work
• Coding conventions vs. quality:
• Butler2010: low quality identifiers ⇒ low quality code
(Findbugs)
• Maruping2008: coding conventions improve software quality
![Page 16: 2011 0709-practices andquality-annotated-weiss-alessandro](https://reader037.vdocument.in/reader037/viewer/2022100606/559e980f1a28abfc1f8b4615/html5/thumbnails/16.jpg)
Related work
• Process mining
• Cook1998
• Poncin2011
![Page 17: 2011 0709-practices andquality-annotated-weiss-alessandro](https://reader037.vdocument.in/reader037/viewer/2022100606/559e980f1a28abfc1f8b4615/html5/thumbnails/17.jpg)
References
• Bird2010 - An Analysis of the Effect of Code Ownership on Software Quality across Windows, Eclipse, and Firefox
• Rahman2011 - Ownership, Experience and Defects- A fine-grained study of Authorship
• Maruping2008 - Role of collective ownership and coding standards in coordinating expertise in software project teams-annotated
• Butler2010 - Exploring the Influence of Identifier Names on Code Quality_ an empirical study
• Cook1998 - Discovering models of software processes from event-based data-annotated
• Poncin2011 - Process mining software repositories