effects of ownership on software quality

21
Paper Review on Don’t Touch My Code! Examining the Effects of Ownership on Software Quality Presented by Md. Shafiuzzaman MSSE 0310

Upload: md-shafiuzzaman-hira

Post on 15-Apr-2017

264 views

Category:

Software


4 download

TRANSCRIPT

Page 1: Effects of Ownership on Software Quality

Paper Reviewon

Don’t Touch My Code!Examining the Effects of Ownership on

Software Quality

Presented byMd. Shafiuzzaman

MSSE 0310

Page 2: Effects of Ownership on Software Quality

Introduction of the Paper

• Authors:

• Christian Bird, Nachiappan Nagappan, Brendan Murphy, Microsoft Research, Redmond, USA

• Harald Gall, University of Zurich, Switzerland

• Premkumar Devanbu, University of California, USA

• Published in: ESEC/FSE '11 Proceedings of the 19th ACM SIGSOFT symposium and the 13th

European conference on Foundations of software engineering

• Publication Year: 2011

Switzerland

Page 3: Effects of Ownership on Software Quality

Area of Inquiry

Effects of Ownership on Software Quality

Ownership in Software Engineering: one person has responsibility

for a software component

Page 4: Effects of Ownership on Software Quality

Research Questions

• How much does ownership affect quality?• Sub-questions:

• How to define and validate measures of ownership that are related to software quality?

• How to define effect of these measures of ownership on software defects in quantitative terms?

Page 5: Effects of Ownership on Software Quality

Theory & Related WorkCurtis et al.: Thin spread of application domain knowledge affect

software qualityFritz et al.: Ability of a developer to answer questions about a

piece of code is determined by whether the developer had authored some of the code and how much time was spent authoring it

Mockus et al.: A piece of code of experienced developer are less likely to induce failure

Sacks et al.: Developers gain project and component specific knowledge as they repeatedly perform tasks on the same systems

Page 6: Effects of Ownership on Software Quality

Theory & Related WorkBanker et al.: Experience increases a developer's knowledge of

the architectural domain of the systemBasili et al.: Reusing knowledge, products and experience,

companies can maintain high quality levels because developers do not need to constantly acquire new knowledge and expertise as they work on different projects

Brooks et al.: Sharing and integrating knowledge across all members delay tasks

Page 7: Effects of Ownership on Software Quality

Ownership metrics• Software Component: A unit of development that has some core

functionality• Contributor: Someone who has made commits/software changes to a

component.• Proportion of Ownership: Ratio of number of commits that the

contributor has made relative to the total number of commits for that component.

• Minor Contributor: Ownership is below 5%• Major Contributor: Ownership is at or above 5%

Page 8: Effects of Ownership on Software Quality

Hypothesis

• Hypothesis 1 - Software components with many minor contributors will have more failures than software components that have fewer.

• Hypothesis 2 - Software components with a high level of ownership will have fewer failures than components with lower top ownership levels.

• Hypothesis 3 - Minor contributors to components will be major contributors to other components that are related through dependency relationships

• Hypothesis 4 - Removal of minor contribution information from defect prediction techniques will decrease performance dramatically.

Page 9: Effects of Ownership on Software Quality

Quantitative Terminologies

• Minor: Number of minor contributors• Major: Number of major contributors• Total: Total number of contributors• Ownership: Proportion of ownership for the contributor

with the highest proportion of ownership

Page 10: Effects of Ownership on Software Quality

Example

Total Commits: 918Commits of Top contributingEngineer: 379Ownership: 41%

Page 11: Effects of Ownership on Software Quality

Data Collection

• Windows Vista and Windows 7• Software developers who contributed in those projects• Executable files (.exe), shared libraries(.dll) and drivers

(.sys)• Pre-release defects• Post-release failures

Page 12: Effects of Ownership on Software Quality

Data Types

• Commit histories• Software failures• Repositories records (Change history, change author, time

of change, log message)• Number of changes made by each developer to each

source file

Page 13: Effects of Ownership on Software Quality

Analysis Technique

• Correlation analysis:• Is there any relationship between ownership and software quality?• How strong the relationship is?

• Linear regression: • Is there any effect of ownership variables on failures?• How large the effect is?• In what direction (i.e. if failures go up when a metric goes up or when it

goes down)?• How much of the variance in the number of failures is explained by the

metrics?

Page 14: Effects of Ownership on Software Quality

Correlation analysis

The results indicate pre- and post-release defects have strong relationships with Minor, Total, and Ownership

Page 15: Effects of Ownership on Software Quality

Relationship between codeattributes and ownership metrics

B.dll has more failures than A.dll

Page 16: Effects of Ownership on Software Quality

Linear regression

**The value in parentheses indicates the percent increase in variance explained over the model without the added variable

Page 17: Effects of Ownership on Software Quality

Results of analysis• The number of minor contributors has a strong positive

relationship with both pre- and post-release failures.• Higher levels of ownership for the top contributor to a component

results in fewer failures but the effect is smaller than the number of minor contributors.

• Ownership has a stronger relationship with pre-release failures than post-release failures.

• Measures of ownership and standard code measures show a much smaller relationship to post-release failures in Windows 7.

Page 18: Effects of Ownership on Software Quality

Effects Of Minor Contributors

• Dependency Analysis

Page 19: Effects of Ownership on Software Quality

Effects Of Minor Contributors• Network

Metrics

Page 20: Effects of Ownership on Software Quality

Findings• Both versions of Windows, ownership does indeed have a relationship

with code quality.• In all projects, the addition of Minor improved the regression models for

both pre- and post-release failures to a statistically significant degree

• Minor contributors to components have a dependency relationships with major contributors to other components

• Removal of minor contribution information from defect prediction techniques decreases performance dramatically

Page 21: Effects of Ownership on Software Quality

Recommendations

• Changes made by minor contributors should be reviewed with more scrutiny

• Potential minor contributors should communicate desired changes to developers experienced with the respective binary

• Components with low ownership should be given priority by QA resources