2011 0709-practices andquality-annotated-weiss-alessandro

17

Click here to load reader

Upload: rodrigo-rocha

Post on 09-Jul-2015

125 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 2011 0709-practices andquality-annotated-weiss-alessandro

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

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

Rodrigo Rocha
Rodrigo Rocha
Segundo David Weiss, cada um faz de um jeito.
Page 3: 2011 0709-practices andquality-annotated-weiss-alessandro

Software Dev. Practices

• Examples:

• Four eyes principle (verifier ≠ fixer)

• Test first

• Collective vs. strong ownership

• Coding standards

• Continuous integration

• Code documentation ...

Rodrigo Rocha
Object-oriented programming vs procedural
Rodrigo Rocha
Rodrigo Rocha
How are the bugs verified? Code inspection? Automated testing? Formal verification?
Page 4: 2011 0709-practices andquality-annotated-weiss-alessandro

Software Quality

• Many definitions and metrics

• Design quality (coupling/cohesion)

• Code quality (Findbugs, Checkstyle)

• Functional quality (# of bugs)

Rodrigo Rocha
Specify # of bugs:- reported by users or devs?- pre or post release?- what criticality?Also, there is much noise: people don't report correctly the criticality etc.
Page 5: 2011 0709-practices andquality-annotated-weiss-alessandro

Do practices impact quality? What practices?

In what contexts?

Page 6: 2011 0709-practices andquality-annotated-weiss-alessandro

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

Rodrigo Rocha
Fix on the fix: about 1-2% of the bugs
Page 7: 2011 0709-practices andquality-annotated-weiss-alessandro

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.”

Rodrigo Rocha
Alessandro. Quando o verifier atua? So no final? QA?Cristina. Os verifiers sao developers? Sao core developers?
Page 8: 2011 0709-practices andquality-annotated-weiss-alessandro

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

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.

Rodrigo Rocha
Maybe verification is being done informally, and not being reported.Bugs per LOC correlates with need to reopen bug?How productivity affects quality? See "assessing the state of sw dev in a large enterprise", by Weiss, Mockus et al., j. Emp. Sw. Eng. 2009Present results to developers and see what they have to say (focus on valiation!)
Page 10: 2011 0709-practices andquality-annotated-weiss-alessandro

Next

• context

• other projects

• other practices

Page 11: 2011 0709-practices andquality-annotated-weiss-alessandro

Next: Context

Crowston & Howison (2005) - The social structure of free and open source software development

Rodrigo Rocha
Rodrigo Rocha
This is a key concept.
Rodrigo Rocha
What happens when there's turnover on the core developer team? Wrt productivity? Wrt quality? David Weiss is interested in seeing these layouts.
Page 12: 2011 0709-practices andquality-annotated-weiss-alessandro

Next: Context

Philippe Kruchten (2010) - Contextualizing Agile Software Development

Page 13: 2011 0709-practices andquality-annotated-weiss-alessandro

Next: other projects

• Available data:

• Eclipse

• Netbeans

• Firefox

• Chrome

Page 14: 2011 0709-practices andquality-annotated-weiss-alessandro

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

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

Related work

• Process mining

• Cook1998

• Poncin2011

Page 17: 2011 0709-practices andquality-annotated-weiss-alessandro

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