Does Distributed Development Affect Quality? An Empirical ... · Cross-project defect prediction...

51
Does Distributed Development Affect Quality? An Empirical Case Study of Windows Vista Christian Bird, Nachi Nagappan, Prem Devanbu, Harald Gall, Brendan Murphy

Transcript of Does Distributed Development Affect Quality? An Empirical ... · Cross-project defect prediction...

Page 1: Does Distributed Development Affect Quality? An Empirical ... · Cross-project defect prediction Thomas Zimmermann, Microsoft Research Nachiappan Nagappan, Microsoft Research Harald

Does Distributed Development Affect Quality?���An Empirical Case Study of Windows Vista

Christian Bird, Nachi Nagappan, Prem Devanbu, Harald Gall, Brendan Murphy

Page 2: Does Distributed Development Affect Quality? An Empirical ... · Cross-project defect prediction Thomas Zimmermann, Microsoft Research Nachiappan Nagappan, Microsoft Research Harald

2

Development Trends •  Global development is

becoming more widespread.

•  There are many challenges.

•  What is the effect on code quality?

Page 3: Does Distributed Development Affect Quality? An Empirical ... · Cross-project defect prediction Thomas Zimmermann, Microsoft Research Nachiappan Nagappan, Microsoft Research Harald

3

You’d think this would have been done already…

•  Multiple workshops and now a conference, ICGSE, focus on distributed development

•  Many researchers have studied it (e.g. Herbsleb, Mockus, Damian)

•  Prior research examines outcomes such as delay

We focus on the effect of globally distributed development on software quality

Page 4: Does Distributed Development Affect Quality? An Empirical ... · Cross-project defect prediction Thomas Zimmermann, Microsoft Research Nachiappan Nagappan, Microsoft Research Harald

4

Windows Vista is a perfect candidate to study

✦  A few thousand software engineers

✦  Thousands of binaries (dll’s, exe’s, sys’s)

✦  Tens of Millions LOC ✦  Developed worldwide in North

America, Asia, and Europe. 21 campuses and 59 buildings

Page 5: Does Distributed Development Affect Quality? An Empirical ... · Cross-project defect prediction Thomas Zimmermann, Microsoft Research Nachiappan Nagappan, Microsoft Research Harald

5

Data…

Employee Position and Location

Page 6: Does Distributed Development Affect Quality? An Empirical ... · Cross-project defect prediction Thomas Zimmermann, Microsoft Research Nachiappan Nagappan, Microsoft Research Harald

6

Data Timeline

Gather development and organizational data up to Vista RTM. Measure code quality as post-release failures in the

first 6 months following Vista’s release

Page 7: Does Distributed Development Affect Quality? An Empirical ... · Cross-project defect prediction Thomas Zimmermann, Microsoft Research Nachiappan Nagappan, Microsoft Research Harald

7

Levels of Distribution ✦  Building – drop in & chat

✦  Cafeteria – meet for lunch, quick walk

✦  Campus – bike, long walk or shuttle to talk

✦  Locality – travel by car for meetings

✦  Continent – similar time-zone, same culture

✦  World – fly coach, suffer

Distance makes it hard to coordinate, manage, be

aware, etc.

Page 8: Does Distributed Development Affect Quality? An Empirical ... · Cross-project defect prediction Thomas Zimmermann, Microsoft Research Nachiappan Nagappan, Microsoft Research Harald

8

Examining Binaries •  Level of distribution is the smallest entity that 75%

of the commits come from

Circles not proportional to number of binaries

Page 9: Does Distributed Development Affect Quality? An Empirical ... · Cross-project defect prediction Thomas Zimmermann, Microsoft Research Nachiappan Nagappan, Microsoft Research Harald

9

Split the binaries into ���Collocated and Distributed

Failures Failures

Distributed Collocated

Num

ber

of B

inar

ies

Num

ber

of B

inar

ies

Despite differences in scale, distributions are the same

Page 10: Does Distributed Development Affect Quality? An Empirical ... · Cross-project defect prediction Thomas Zimmermann, Microsoft Research Nachiappan Nagappan, Microsoft Research Harald

10

Step 1: Increase in Failures when Examining Only Distribution

Model 1: Split into collocated and distributed

Model 2: Levels of distribution

Use linear regression to examine effect on post-release failures

Variable % increase Std Err. Significance

(Constant) 0.30 p < 0.001

Distributed 9.2% 0.31 p < 0.001

Variable % increase Std Err. Significance

(Constant) 0.09 p < 0.001

Diff Buildings 15.1% 0.50 p < 0.001

Diff Cafeterias 16.3% 0.21 p < 0.001

Diff Campuses 12.6% 0.35 p < 0.001

Diff Localities 2.6% 1.47 p = 0.824

Diff Continents -5.1% 0.31 p = 0.045

Small, but statistically significant increase in failures.

But... Name Distributed Failures

foo.dll 1 3

bar.exe 0 2

baz.sys 0 7

hello.exe 1 8

Name Diff Buildings

Diff Cafeterias

Diff Campuses

Diff Localities

Diff Continents Failures

foo.dll 0 1 0 0 0 3

bar.exe 0 0 0 0 0 2

baz.sys 0 0 0 0 0 7

hello.exe 0 0 0 1 0 8

Page 11: Does Distributed Development Affect Quality? An Empirical ... · Cross-project defect prediction Thomas Zimmermann, Microsoft Research Nachiappan Nagappan, Microsoft Research Harald

11

Does distribution affect task duration when controlling for number of developers? [Herbsleb TSE 03]

But wait...

Page 12: Does Distributed Development Affect Quality? An Empirical ... · Cross-project defect prediction Thomas Zimmermann, Microsoft Research Nachiappan Nagappan, Microsoft Research Harald

12

Variable % increase Std Err. Significance

(Constant) 0.25 p < 0.001

Distributed 4.6% 0.25 p = 0.056

Num Devs 0.00 p < 0.001

Variable % increase Std Err. Significance

(Constant) 0.09 p < 0.001

Diff Buildings 2.6% 0.42 p = 0.493

Diff Cafeterias 3.9% 0.18 p = 0.016

Diff Campuses 6.3% 0.29 p = 0.019

Diff Localities 8.3% 1.23 p = 0.457

Diff Continents -3.9% 0.26 p = 0.101

Num Devs 0.00 p < 0.001

Model 3: Split into collocated and distributed

Model 4: Levels of distribution

Step 2: What happens when we control for team size?

Small increase, but attributed to team size

Name Distributed Number of Devs Failures

foo.dll 1 10 3

bar.exe 0 2 2

baz.sys 0 6 7

hello.exe 1 23 8

Name Diff Buildings

Diff Cafeterias

Diff Campuses

Diff Localities

Diff Continents

Number of Devs Failures

foo.dll 0 1 0 0 0 10 3

bar.exe 0 0 0 0 0 2 2

baz.sys 0 0 0 0 0 6 7

hello.exe 0 0 0 1 0 23 8

Page 13: Does Distributed Development Affect Quality? An Empirical ... · Cross-project defect prediction Thomas Zimmermann, Microsoft Research Nachiappan Nagappan, Microsoft Research Harald

13

Metric Avg. Value Correlation Significance

Num Functions 895.86 0.114 p < 0.001

Complexity 4603.20 0.069 p < 0.001

Churn Size 53430.00 0.057 p = 0.033

Edits 63.82 0.134 p < 0.001

In-Degree 13.04 -0.024 p = 0.363

Out-Degree 9.67 0.100 p < 0.001

Num Devs 0.183 p < 0.001

Are Distributed Binaries Different? We examined binaries for differences in size,

complexity, dependencies, etc.

Correlations are weak and often not statistically significant.

Distributed binaries are similar to collocated along these metrics

Logistic regression also shows that metrics are not

related to distribution

Manually inspected top 20 lists

Page 14: Does Distributed Development Affect Quality? An Empirical ... · Cross-project defect prediction Thomas Zimmermann, Microsoft Research Nachiappan Nagappan, Microsoft Research Harald

14

Why?

•  Not outsourcing

•  Liaisons and face to face meetings

•  Senior engineers started in Redmond

•  Daily synchronous communication

•  Consistent process and tools

•  End to end ownership

•  Common schedules

•  Organizational integration

Factors:

not competitive past history

similar salary & benefits transfer of expertise,

process, and contact info

lower learning curve & eased integration

clear responsibility and single point of contact no geographic isolation

consistent culture

increased trust alleviated cultural barriers

single deliverable with common milestones

increased awareness and team cohesion

Page 15: Does Distributed Development Affect Quality? An Empirical ... · Cross-project defect prediction Thomas Zimmermann, Microsoft Research Nachiappan Nagappan, Microsoft Research Harald

15

Final Conclusion Distributed development is difficult, but is possible to do with little effect

on post-release failures.

Page 16: Does Distributed Development Affect Quality? An Empirical ... · Cross-project defect prediction Thomas Zimmermann, Microsoft Research Nachiappan Nagappan, Microsoft Research Harald

Cross-project defect prediction

Thomas Zimmermann, Microsoft Research Nachiappan Nagappan, Microsoft Research

Harald Gall, University of Zurich Emanuel Giger, University of Zurich

Brendan Murphy, Microsoft Research

Page 17: Does Distributed Development Affect Quality? An Empirical ... · Cross-project defect prediction Thomas Zimmermann, Microsoft Research Nachiappan Nagappan, Microsoft Research Harald

Cross-project defect prediction

Thomas Zimmermann, Microsoft Research Nachiappan Nagappan, Microsoft Research

Harald Gall, University of Zurich Emanuel Giger, University of Zurich

Brendan Murphy, Microsoft Research

Page 18: Does Distributed Development Affect Quality? An Empirical ... · Cross-project defect prediction Thomas Zimmermann, Microsoft Research Nachiappan Nagappan, Microsoft Research Harald

Bugs are everywhere

Page 19: Does Distributed Development Affect Quality? An Empirical ... · Cross-project defect prediction Thomas Zimmermann, Microsoft Research Nachiappan Nagappan, Microsoft Research Harald

Quality assurance is limited...

...by  %me...   ...and  by  money.  

Page 20: Does Distributed Development Affect Quality? An Empirical ... · Cross-project defect prediction Thomas Zimmermann, Microsoft Research Nachiappan Nagappan, Microsoft Research Harald

Spent  QA  resources  on  the  components/files  that  need  it  most,  i.e.,  are  most  likely  to  fail.  

© Microsoft Corporation

Page 21: Does Distributed Development Affect Quality? An Empirical ... · Cross-project defect prediction Thomas Zimmermann, Microsoft Research Nachiappan Nagappan, Microsoft Research Harald

Defect prediction •  Learn a prediction model

from historic data •  Predict defects for the

same project •  Hundreds of prediction

models exist •  Models work fairly well

with precision and recall of up to 80%.

Predictor   Precision   Recall  

Pre-­‐Release  Bugs   73.80%   62.90%  

Test  Coverage   83.80%   54.40%  

Dependencies   74.40%   69.90%  

Code  Complexity   79.30%   66.00%  

Code  Churn   78.60%   79.90%  

Org.  Structure   86.20%   84.00%  

© Microsoft Corporation

From:  N.  Nagappan,  B.  Murphy,  and  V.  Basili.  The  influence  of  organiza>onal  structure  on  so@ware  quality.  ICSE  2008.  

Page 22: Does Distributed Development Affect Quality? An Empirical ... · Cross-project defect prediction Thomas Zimmermann, Microsoft Research Nachiappan Nagappan, Microsoft Research Harald

Why cross-project prediction?

•  Some projects do have not enough data to train prediction models or the data is of poor quality

•  New projects do have no data yet

•  Can such projects use models from other projects? (=cross-project prediction)

© Microsoft Corporation

Page 23: Does Distributed Development Affect Quality? An Empirical ... · Cross-project defect prediction Thomas Zimmermann, Microsoft Research Nachiappan Nagappan, Microsoft Research Harald

A first experiment: Firefox and IE

© Microsoft Corporation

Firefox   IE  

precision=0.76;  recall=0.88  

precision=0.54;  recall=0.04  

Firefox  can  predict  defects  in  IE.  But  IE  cannot  predict  Firefox.  WHY?  

Page 24: Does Distributed Development Affect Quality? An Empirical ... · Cross-project defect prediction Thomas Zimmermann, Microsoft Research Nachiappan Nagappan, Microsoft Research Harald

Comparing Firefox and IE

© Microsoft Corporation

Domain:  Browser

Size  in  LOC

Usage  Profile

Languages  C/CPP)

Team  size

Open  vs.  closed  source

Local  vs.  distributed  dev.

Systematic  vs.  more  adhoc

OS  and  environments

Dev.  Tools  and  IDE

Desktop  vs.  mobile

Features

Firefox Internet  Explorer

Page 25: Does Distributed Development Affect Quality? An Empirical ... · Cross-project defect prediction Thomas Zimmermann, Microsoft Research Nachiappan Nagappan, Microsoft Research Harald

Research questions

•  RQ 1. To which extent is it possible to use cross-project data for defect prediction?

•  RQ 2. Which kinds of systems are good predictors? What is the influence of data, domain, company, and process?

© Microsoft Corporation

Page 26: Does Distributed Development Affect Quality? An Empirical ... · Cross-project defect prediction Thomas Zimmermann, Microsoft Research Nachiappan Nagappan, Microsoft Research Harald

THE EXPERIMENT

© Microsoft Corporation

Page 27: Does Distributed Development Affect Quality? An Empirical ... · Cross-project defect prediction Thomas Zimmermann, Microsoft Research Nachiappan Nagappan, Microsoft Research Harald

Experiment outline

•  12 systems with 28 datasets – different versions – different levels of analysis (components, files)

•  Run all 622 cross-project combinations –  for example Firefox and IE is one combination –  then train model from Firefox data, test on IE –  ignore invalid combinations, e.g., do not train

from Eclipse 3.0 and test on 2.1

© Microsoft Corporation

Page 28: Does Distributed Development Affect Quality? An Empirical ... · Cross-project defect prediction Thomas Zimmermann, Microsoft Research Nachiappan Nagappan, Microsoft Research Harald

Experiment outline

•  For each combination, we record – similarities between projects – precision, recall, and accuracy values – success, i.e., are all of precision, recall, and

accuracy > 0.75

© Microsoft Corporation

Page 29: Does Distributed Development Affect Quality? An Empirical ... · Cross-project defect prediction Thomas Zimmermann, Microsoft Research Nachiappan Nagappan, Microsoft Research Harald

Systems studied Project   No.  of  versions   Total  LOC   Total  Churn  

Firefox   2   3.2  –  3.3  MLOC   0.64  –  0.95  MLOC  

Internet  Explorer   1   2.30  MLOC   2.20  MLOC  

Direct-­‐X   1   1.50  MLOC   1.00  MLOC  

Internet  InformaCon  Services  (IIS)   1   2.00  MLOC   1.20  MLOC  

Clustering   1   0.65  MLOC   0.84  MLOC  

PrinCng   1   2.40  MLOC   2.20  MLOC  

File  system   1   2.00  MLOC   2.20  MLOC  

Kernel   1   1.90  MLOC   3.20  MLOC  

SQL  Server  2005   1   4.6  MLOC   7.2  MLOC  

Eclipse   3   0.79  –  1.3  MLOC     1.0  -­‐  2.1  MLOC  

Apache  Derby   4   0.49  –  0.53  MLOC     4  –  23  KLOC  

Apache  Tomcat   6   0.25  –  0.26  MLOC   8  –  98  KLOC  

© Microsoft Corporation

Page 30: Does Distributed Development Affect Quality? An Empirical ... · Cross-project defect prediction Thomas Zimmermann, Microsoft Research Nachiappan Nagappan, Microsoft Research Harald

Data used in prediction models

Relative code measures on churn, complexity and pre-release bugs

–  Added LOC / Total LOC –  Deleted LOC / Total LOC –  Modified LOC / Total LOC –  (Added + deleted + modified LOC) / (Commits + 1) –  Cyclomatic Complexity / Total LOC –  Pre-release bugs / Total LOC

© Microsoft Corporation

Page 31: Does Distributed Development Affect Quality? An Empirical ... · Cross-project defect prediction Thomas Zimmermann, Microsoft Research Nachiappan Nagappan, Microsoft Research Harald

RESULTS

© Microsoft Corporation

Page 32: Does Distributed Development Affect Quality? An Empirical ... · Cross-project defect prediction Thomas Zimmermann, Microsoft Research Nachiappan Nagappan, Microsoft Research Harald

Success rate

Any guesses?

© Microsoft Corporation

3.4%  

Page 33: Does Distributed Development Affect Quality? An Empirical ... · Cross-project defect prediction Thomas Zimmermann, Microsoft Research Nachiappan Nagappan, Microsoft Research Harald

Successful cross-project predictions

© Microsoft Corporation

Page 34: Does Distributed Development Affect Quality? An Empirical ... · Cross-project defect prediction Thomas Zimmermann, Microsoft Research Nachiappan Nagappan, Microsoft Research Harald

Characterizing projects

Domain  Domain  name  Product  uses  database  Product  is  localized  Type  of  user  interface  

© Microsoft Corporation

Page 35: Does Distributed Development Affect Quality? An Empirical ... · Cross-project defect prediction Thomas Zimmermann, Microsoft Research Nachiappan Nagappan, Microsoft Research Harald

Characterizing projects

Domain   Product  Domain  name   Name  Product  uses  database   Company  Product  is  localized   Intended  audience  Type  of  user  interface   Opera%ng  system  

Programming  language  Single  prog.  language  Project  uses  C/C++  Project  uses  C#  Project  uses  Java  First  version  Total  lines  of  code  

© Microsoft Corporation

Page 36: Does Distributed Development Affect Quality? An Empirical ... · Cross-project defect prediction Thomas Zimmermann, Microsoft Research Nachiappan Nagappan, Microsoft Research Harald

Characterizing projects

Domain   Product   Process  Domain  name   Name   Open  source  Product  uses  database   Company   Global  development  Product  is  localized   Intended  audience   Code  reviews  Type  of  user  interface   Opera%ng  system   Sta%c  checkers  

Programming  language   Number  of  developers  Single  prog.  language  Project  uses  C/C++  Project  uses  C#  Project  uses  Java  First  version  Total  lines  of  code  

© Microsoft Corporation

Page 37: Does Distributed Development Affect Quality? An Empirical ... · Cross-project defect prediction Thomas Zimmermann, Microsoft Research Nachiappan Nagappan, Microsoft Research Harald

Characterizing projects

Domain   Product   Process   Data  Domain  name   Name   Open  source   Level  of  analysis  Product  uses  database   Company   Global  development   Number  of  observa%ons  Product  is  localized   Intended  audience   Code  reviews   Median,  maxium,  and  

standard  devia%on  of  the  metrics  (18  metrics)  

Type  of  user  interface   Opera%ng  system   Sta%c  checkers  Programming  language   Number  of  developers  Single  prog.  language  Project  uses  C/C++  Project  uses  C#  Project  uses  Java  First  version  Total  lines  of  code  

© Microsoft Corporation

Page 38: Does Distributed Development Affect Quality? An Empirical ... · Cross-project defect prediction Thomas Zimmermann, Microsoft Research Nachiappan Nagappan, Microsoft Research Harald

Comparing projects

•  If characteristic is “Domain”, “Product”, “Prog. languages”, or “Level of analysis” – Same, Different

•  If nominal (for example “Open Source”) – Both X, Both Y, Both Z, …, Different

•  If numeric (for example “LOC”) – Less, Same, More

© Microsoft Corporation

Page 39: Does Distributed Development Affect Quality? An Empirical ... · Cross-project defect prediction Thomas Zimmermann, Microsoft Research Nachiappan Nagappan, Microsoft Research Harald

Comparing projects

CharacterisCcs  

Project   Domain   Open  source   Code  reviews  LOC  

Train:  Firefox    Browser   Yes   Yes   3.2M  

Test:  IE   Browser   No   Yes   2.3M  

Similarity  

© Microsoft Corporation

Page 40: Does Distributed Development Affect Quality? An Empirical ... · Cross-project defect prediction Thomas Zimmermann, Microsoft Research Nachiappan Nagappan, Microsoft Research Harald

Comparing projects

CharacterisCcs  

Project   Domain   Open  source   Code  reviews  LOC  

Train:  Firefox    Browser   Yes   Yes   3.2M  

Test:  IE   Browser   No   Yes   2.3M  

Similarity   Same  

© Microsoft Corporation

Page 41: Does Distributed Development Affect Quality? An Empirical ... · Cross-project defect prediction Thomas Zimmermann, Microsoft Research Nachiappan Nagappan, Microsoft Research Harald

Comparing projects

CharacterisCcs  

Project   Domain   Open  source   Code  reviews  LOC  

Train:  Firefox    Browser   Yes   Yes   3.2M  

Test:  IE   Browser   No   Yes   2.3M  

Similarity   Same   Different  

© Microsoft Corporation

Page 42: Does Distributed Development Affect Quality? An Empirical ... · Cross-project defect prediction Thomas Zimmermann, Microsoft Research Nachiappan Nagappan, Microsoft Research Harald

Comparing projects

CharacterisCcs  

Project   Domain   Open  source   Code  reviews  LOC  

Train:  Firefox    Browser   Yes   Yes   3.2M  

Test:  IE   Browser   No   Yes   2.3M  

Similarity   Same   Different   Both  Yes  

© Microsoft Corporation

Page 43: Does Distributed Development Affect Quality? An Empirical ... · Cross-project defect prediction Thomas Zimmermann, Microsoft Research Nachiappan Nagappan, Microsoft Research Harald

Comparing projects

CharacterisCcs  

Project   Domain   Open  source   Code  reviews  LOC  

Train:  Firefox    Browser   Yes   Yes   3.2M  

Test:  IE   Browser   No   Yes   2.3M  

Similarity   Same   Different   Both  Yes   Less  

© Microsoft Corporation

Page 44: Does Distributed Development Affect Quality? An Empirical ... · Cross-project defect prediction Thomas Zimmermann, Microsoft Research Nachiappan Nagappan, Microsoft Research Harald

Comparing projects

CharacterisCcs  

Project   Domain   Open  source   Code  reviews  LOC  

Train:  Firefox    Browser   Yes   Yes   3.2M  

Test:  IE   Browser   No   Yes   2.3M  

Similarity   Same   Different   Both  Yes   Less  

© Microsoft Corporation

How  are  these  similari%es  related  to  precision,  recall,  and  accuracy?  

Page 45: Does Distributed Development Affect Quality? An Empirical ... · Cross-project defect prediction Thomas Zimmermann, Microsoft Research Nachiappan Nagappan, Microsoft Research Harald

Influence of individual factors

•  For each characteristic and level –  check with t-tests whether they influence

precision, recall, accuracy –  in total 375 tests; account for multiple hypothesis

testing with Bonferroni correction

•  Possible effects on precision, recall, accuracy –  Increase – Decrease – No significant effect

© Microsoft Corporation

Page 46: Does Distributed Development Affect Quality? An Empirical ... · Cross-project defect prediction Thomas Zimmermann, Microsoft Research Nachiappan Nagappan, Microsoft Research Harald

Influence of individual factors

CharacterisCcs  

Project   Domain   Open  source   Code  reviews  LOC  

Train:  Firefox    Browser   Yes   Yes   3.2M  

Test:  IE   Browser   No   Yes   2.3M  

Similarity   Same   Different   Both  Yes   Less  

© Microsoft Corporation

Accuracy  UP   Recall  UP  Accuracy  DOWN  

Precision  UP  Recall  UP  Accuracy  DOWN  

Precision  DOWN  

Page 47: Does Distributed Development Affect Quality? An Empirical ... · Cross-project defect prediction Thomas Zimmermann, Microsoft Research Nachiappan Nagappan, Microsoft Research Harald

 

Table 2. Nominal characteristics and how they influence precision, recall, and accuracy.

Factor   Both   Precision   Recall   Accuracy     Precision   Recall   Accuracy  

Domain   Same:   —   —   UP   Different:   —   —   DOWN  

Company  Apache:  

Microsoft:  —  UP  

DOWN  —  

—  DOWN  

Different:   DOWN   —   —  

Product                  

Open  source  Yes:  No:  

—  UP  

DOWN  —  

UP  DOWN  

Different:   —   UP   DOWN  

Global  development  Yes:  No:  

—  UP  

DOWN  —  

UP  —  

Different:   —   UP   DOWN  

Code  reviews  Yes:  No:  

UP  —  

UP  DOWN  

DOWN  UP  

       

Static  checkers  Yes:  No:  

UP  —  

—  DOWN  

DOWN  UP  

Different:   —   UP   DOWN  

Intended  audience  Developer:  End-­‐user  

DOWN  UP  

DOWN  UP  

—  —  

       

Operating  system  Multi:  

Windows:  —  UP  

DOWN  —  

UP  DOWN  

Different:   —   UP   DOWN  

Type  of  user  interface                  

Product  uses  database   No:   UP   UP   —   Different:   DOWN   —   —  Product  is  localized   Yes:   UP   —   DOWN          

Programming  languages   Same:   —   DOWN   UP   Different:   —   UP   DOWN  Project  uses  a  single  programming  language  

Yes:  No:  

—  UP  

DOWN  —  

—  —  

       

Project  uses  C/CPP  Yes:  No:  

UP  —  

UP  DOWN  

DOWN  UP  

       

Project  uses  C#   No:   —   DOWN   UP   Different:   —   UP   DOWN  

Project  uses  Java  Yes:  No:  

—  UP  

DOWN  UP  

UP  DOWN  

       

First  version  Yes:  No:  

UP  —  

—  DOWN  

—  UP  

Different:   —   UP   DOWN  

Level  of  analysis   Same:   —   DOWN   UP   Different:   —   UP   DOWN  

 Table 3. Numerical characteristics and how they influence precision, recall, and accuracy.

  Factor  is  Less     Factor  is  the  Same     Factor  is  More  

Factor   Precision   Recall   Accuracy     Precision   Recall   Accuracy     Precision   Recall   Accuracy  

Number  of  lines  of  code   DOWN   —   —     —   —   —     —   —   —  Number  of  developers   —   —   —     —   —   —     —   —   —  

Number  of  observations   UP   —   —     —   —   —     DOWN   —   —  

median_added_rel   —   —   —     —   —   —     —   UP   DOWN  

median_average_churn   DOWN   —   —     —   —   —     UP   —   —  

median_bugs_rel   DOWN   —   DOWN     —   DOWN   UP     UP   UP   DOWN  median_cyclomatic_rel   —   DOWN   UP     —   —   —     —   UP   DOWN  

median_deleted_rel   DOWN   —   —     —   DOWN   UP     UP   UP   DOWN  median_modified_rel   DOWN   —   —     —   —   —     UP   UP   —  

sd_added_rel   —   DOWN   —     —   —   —     —   UP   —  sd_average_churn   DOWN   —   —     —   —   —     UP   —   —  

sd_bugs_rel   —   DOWN   —     —   —   —     —   UP   —  sd_cyclomatic_rel   —   —   —     —   —   —     —   —   —  

Influence of individual factors

For full list see Table 2 and 3 in the paper.

Page 48: Does Distributed Development Affect Quality? An Empirical ... · Cross-project defect prediction Thomas Zimmermann, Microsoft Research Nachiappan Nagappan, Microsoft Research Harald

Decision tree for precision

Project  A  

Project  C  

Project  B  

Page 49: Does Distributed Development Affect Quality? An Empirical ... · Cross-project defect prediction Thomas Zimmermann, Microsoft Research Nachiappan Nagappan, Microsoft Research Harald

Additional decision trees

•  Recall –  highest observed value 0.728 for –  global development (differs or both no), –  median of relative number of pre-release bugs (more for

test project), and –  intended audience (different or both end-user).

•  Accuracy –  highest observed value 0.843 for –  median of relative number of pre-release bugs (same), –  operating system (both support multiple systems), and –  median of relative added LOC (fewer or same in the

test project).

© Microsoft Corporation

Page 50: Does Distributed Development Affect Quality? An Empirical ... · Cross-project defect prediction Thomas Zimmermann, Microsoft Research Nachiappan Nagappan, Microsoft Research Harald

Future work

•  Replicate: more projects + characteristics •  Address further research questions:

– Why are cross-project predictions sometimes not transitive?

– How does the set of metrics influence the predictions? Does IE predict Firefox when different metrics are used?

© Microsoft Corporation

Page 51: Does Distributed Development Affect Quality? An Empirical ... · Cross-project defect prediction Thomas Zimmermann, Microsoft Research Nachiappan Nagappan, Microsoft Research Harald

Summary

•  Out of the box, only 3.4% of cross-project defect predictions worked

•  But we can do better! Precision + recall > 0.70 –  Idenitify factors that influence the success of

cross-project predictions – Decision trees help to select the right projects

•  http://research.microsoft.com/projects/esm •  MSR 2010: Mining Software Repositories

http://msrconf.org

© Microsoft Corporation