SlideShare una empresa de Scribd logo
1 de 59
Descargar para leer sin conexión
Why do Automated Builds Break? 
An Empirical Study M 
C IS 
Noureddine 
Kerzazi 
Foutse 
Khomh 
Bram 
Adams 
http://imgs.steps.dragoart.com/how-to-draw-a-flying-dragon-http://www.printed-editions.com/upload/standard/Harold_Edgerton_Pigeon_Release_69.jpg dragon-in-flight-step-8_1_000000102347_5.gif
Imagine 2,000 developers working in the same 
branch, and one breaks the build, then you end 
up with 1,999 unhappy people! 
[T. Zimmermann @ SCAM 2014]
3 
What is "breaking the build"?
3 
What is "breaking the build"? 
trunk ...
branch 1 
3 
What is "breaking the build"? 
trunk ...
branch 1 
branch 2 
3 
What is "breaking the build"? 
trunk ...
branch 1 
branch 2 
3 
What is "breaking the build"? 
trunk ...
test build 
branch 1 
branch 2 
3 
What is "breaking the build"? 
integrate 
trunk 
...
test build 
branch 1 
branch 2 
3 
What is "breaking the build"? 
integrate 
trunk 
...
branch 1 
branch 2 
3 
What is "breaking the build"? 
trunk 
integrate 
test build 
...
branch 1 
branch 2 
3 
What is "breaking the build"? 
trunk 
integrate 
test build 
...
branch 1 
branch 2 
3 
What is "breaking the build"? 
trunk 
integrate 
test build 
integrate 
test build 
down-time 
...
branch 1 
branch 2 
3 
What is "breaking the build"? 
trunk 
down-time 
team-level 
breakage 
...
branch 1 
branch 2 
3 
What is "breaking the build"? 
trunk 
down-time 
integrate 
test build 
team-level 
breakage 
...
branch 1 
branch 2 
3 
What is "breaking the build"? 
trunk 
down-time 
merge 
team-level 
breakage 
...
branch 1 
branch 2 
3 
What is "breaking the build"? 
trunk 
down-time 
merge 
team-level 
breakage 
integrate 
test build 
...
branch 1 
branch 2 
3 
What is "breaking the build"? 
trunk 
down-time 
merge 
down-time 
team-level 
breakage 
integrate 
test build 
...
branch 1 
branch 2 
3 
What is "breaking the build"? 
trunk 
merge 
sync 
down-time 
down-time 
team-level 
breakage 
X 
integrate 
test build 
...
branch 1 
branch 2 
3 
What is "breaking the build"? 
trunk 
merge 
sync 
down-time 
down-time 
team-level 
breakage 
X 
integrate 
test build 
integrate 
test build 
...
branch 1 
branch 2 
3 
What is "breaking the build"? 
trunk 
merge 
sync 
down-time 
down-time 
down-time 
team-level 
breakage 
X 
integrate 
test build 
integrate 
test build 
...
branch 1 
branch 2 
3 
What is "breaking the build"? 
trunk 
merge 
sync 
down-time 
down-time 
down-time 
team-level 
breakage 
X 
integrate 
test build 
integrate 
test build 
integrate 
test build 
...
branch 1 
branch 2 
3 
What is "breaking the build"? 
trunk 
merge 
sync merge 
down-time 
down-time 
down-time 
team-level 
breakage 
X 
integrate 
test build 
...
branch 1 
branch 2 
3 
What is "breaking the build"? 
trunk 
merge 
sync merge 
down-time 
down-time 
down-time 
team-level 
breakage 
X 
integrate 
test build 
integrate 
test build 
...
branch 1 
branch 2 
3 
What is "breaking the build"? 
trunk 
merge 
sync merge 
down-time 
down-time 
down-time 
team-level 
breakage 
project-level 
breakage 
X 
...
4 
Build Breakage should 
be Avoided! 
you"are"stuck 
your"team" 
members"are"stuck 
testers"are" 
stuck 
(a0er"merge) 
other+teams" 
deadlines"slip are"stuck 
morale"drops
5 
RQ1. How does 
Build Breakage 
Impact a Project? 
RQ2. Why does 
the Build Break? 
RQ3. Which 
Factors Impact 
Build Breakage?
Web-Based, Financial System 
6 
200 employees 
>1.5 MLOC .NET 
(8,524 files) 
25 branches 
6 inter-dependent 
projects 
2 geographical 
sites 
agile development 
across different 
branches 
6 months of data
triangula9on 
measure interview 
model 7
8 
RQ1. How does 
Build Breakage 
Impact a Project? 
RQ2. Why does 
the Build Break? 
RQ3. Which 
Factors Impact 
Build Breakage?
Median of 8.3% Broken Builds 
per Day (avg. of 22.3%) 
9 
%broken builds 
100 
100" 
90 
90" 
80 
80" 
70 
70" 
60 
60" 
50 
50" 
40 
40" 
30 
30" 
20 
20" 
10 
10" 
0" 
18,07,13" 
25,07,13" 
01,08,13" 
08,08,13" 
15,08,13" 
22,08,13" 
29,08,13" 
05,09,13" 
12,09,13" 
19,09,13" 
26,09,13" 
03,10,13" 
10,10,13" 
17,10,13" 
24,10,13" 
31,10,13" 
07,11,13" 
14,11,13" 
21,11,13" 
28,11,13" 
05,12,13" 
12,12,13" 
19,12,13" 
26,12,13" 
02,01,14" 
09,01,14" 
16,01,14" 
23,01,14" 
30,01,14" 
0
1000 
1000" 
900 
900" 
800 
800" 
700 
700" 
600 
600" 
500 
500" 
400 
400" 
300 
300" 
200 
200" 
100" 
0" 
Architecture) 
Branch-2) 
Branch-3) 
Branch-4) 
Branch-5) 
Branch-6) 
Branch-7) 
Branch-8) 
Branch-9) 
QuickFix) 
Branch-18) 
PreRelease) 
Branch-10) 
Branch-11) 
Branch-12) 
Branch-13) 
Branch-14) 
Branch-15) 
Branch-16) 
Branch-20) 
Branch-21) 
Trunk) 
Branch-23) 
Branch-24) 
Branch-25) 
DownDme)by)branch)(min)) 
Average Median Downtime 
of 1 Hour per Branch 
10 
#min. 
re-architecting can 
cause very long 
downtime 
100
Estimating Cost of Team-Level 
Build Breakage for Branch 
11 
X 
integrate 
test build 
integrate 
test build time 
integrate 
test build 
integrate 
+ 
test build time 
+ 
... 
$$$(branch) 
in man-hours=
Estimating Cost of Team-Level 
Build Breakage for Project 
12 
$$$(project) 
in man-hours = 
$$$(branch 1) 
in man-hours 
+ 
$$$(branch 2) 
in man-hours 
+ 
...
Total of 
1.25 to 
2.83 
Man- 
Months 
Wasted 
(in 6 months) 
13 
0 100 200 300 400 500 
Branch−18 
Branch−2 
Branch−5 
QuickFix 
Branch−12 
Branch−21 
Branch−10 
Branch−25 
Branch−3 
Branch−11 
Branch−23 
Branch−15 
Branch−7 
Branch−14 
Branch−24 
PreRelease 
Branch−4 
Branch−6 
Branch−20 
Branch−13 
Branch−16 
Branch−8 
Arch. 
Branch−9 
Trunk 
re-architecting 
fixing trunk 
upper bound lower 
bound 
M/H
14 
1 hour of downtime 
(avg.) per branch 
>=1.25 man-months 
lost
RQ2. Why does 
the Build Break? 1 hour of downtime 
(avg.) per branch 
14 
>=1.25 man-months 
lost
Semi-Structured Interviews 
15 
architects 
technical leads 
integrator 
front-end developers 
back-end developers 
testers 
>3 years of 
experience 
20th percentile 
most successful/ 
broken builds 
50 minutes
Analysis of Interviews 
16 
awareness (Q1-Q4) 
causes (Q5-Q6) 
prevention (Q7-Q8) 
X 
Q1. 
Q2. 
... 
card sort
25% of Interviewees Track 
the Build Results 
I switched off the Build notifications 
to avoid any distraction. I check the 
results of my builds only in predefined 
time windows within the day. 
I’m always aware about the build notification, 
especially the red ones. When a build notification for 
a branch shows up, I examine not only that build, but 
also the history of build failure on that branch. 
17
Awareness of a Breakage 
Takes on Average 3 Hours 
When we see in the work items system tracker that the 
developer is done and we do not see the build result, 
then we have to communicate with the concerned 
developer to verify where the latest code to test is. 
18
Breakage Takes on Average 
1 Hour to Resolve 
> 
19 
concerned about 
project's overall 
consistency 
concerned about 
own feature/bug fix
3 Major Causes of Build 
Breakage 
20 
forgetting to commit 
certain files 
(libraries, templates, 
configuration files, ...) 
committing from 
the wrong 
workspace (branch) 
feature 
libA 1.0 
libB 2.1 
feature 
libA 1.0 
libB 1.5 
build scripts do not 
specify transitive 
library dependencies
Developers Active in 4 to 
15 Branches in Parallel 
I was assigned bugs on a specific 
project within the overall solution. I 
unload all other projects from the 
solution to focus only on one project. 
I am a nomad moving from a branch 
to another. I map one workspace by 
branch to avoid check-in work in 
progress related to other branch. 
21
Only 12% has Routine for 
Avoiding Breakages 
Before I check- in, I always compare diligently 
my pending changes with the latest version 
from the server. In this way I am not wasting 
team members’ time with broken builds. 
New developers joining a development project 
should be required to learn the basic practices 
of code committing, as part of the process 
known as onboarding 
22
23 
1 hour of downtime 
(avg.) per branch 
>=1.25 man-months 
lost 
25% track CI results 
detection takes 3 h 
caused by missing file 
(dependencie)s and 
accidental commits 
active in 4-15 
branches in parallel
23 
RQ3. Which 
Factors Impact 
Build Breakage? 
1 hour of downtime 
(avg.) per branch 
>=1.25 man-months 
lost 
25% track CI results 
detection takes 3 h 
caused by missing file 
(dependencie)s and 
accidental commits 
active in 4-15 
branches in parallel
Statistical Model of Impact 
24 
vs. vs. vs. vs. vs. 
local vs. remote 
code/file churn 
commit vs. merge 
feature vs. bug fix vs. integration 
P1 P2 P3 P4 
day of week/time of day 
breakage?
Factors having Higher Breakage 
Role 
NumberofContributors 
Work_Items 
Build_Type 
Timeline.P1_P4. 
Churn..Code. 
Churn..Files. 
Working_Day 
Working_Hour 
Geog_Distance 
● 
● 
mtcars.rf 
● 
● 
● 
● 
● 
● 
● 
● 
10 20 30 40 50 
25 
larger team 
%incMSE 
AUC: 
0.78
Factors having Higher Breakage 
Role 
NumberofContributors 
Work_Items 
Build_Type 
Timeline.P1_P4. 
Churn..Code. 
Churn..Files. 
Working_Day 
Working_Hour 
Geog_Distance 
● 
● 
mtcars.rf 
● 
● 
● 
● 
● 
● 
● 
● 
10 20 30 40 50 
25 
P1 P2 P3 P4 
larger team 
P1 
%incMSE 
AUC: 
0.78
Factors having Higher Breakage 
Role 
NumberofContributors 
Work_Items 
Build_Type 
Timeline.P1_P4. 
Churn..Code. 
Churn..Files. 
Working_Day 
Working_Hour 
Geog_Distance 
● 
● 
mtcars.rf 
● 
● 
● 
● 
● 
● 
● 
● 
10 20 30 40 50 
25 
P1 P2 P3 P4 
time of day 
larger team 
P1 
late commits, longer downtime 
%incMSE 
AUC: 
0.78
Factors having Higher Breakage 
Role 
NumberofContributors 
Work_Items 
Build_Type 
Timeline.P1_P4. 
Churn..Code. 
Churn..Files. 
Working_Day 
Working_Hour 
Geog_Distance 
● 
● 
mtcars.rf 
● 
● 
● 
● 
● 
● 
● 
● 
10 20 30 40 50 
25 
vs. vs. vs. vs. vs. 
P1 P2 P3 P4 
time of day 
larger team 
P1 
late commits, longer downtime 
%incMSE 
architects 
AUC: 
0.78
Factors having Higher Breakage 
Role 
NumberofContributors 
Work_Items 
Build_Type 
Timeline.P1_P4. 
Churn..Code. 
Churn..Files. 
Working_Day 
Working_Hour 
Geog_Distance 
● 
● 
mtcars.rf 
● 
● 
● 
larger team 
● 
● 
● 
● 
● 
10 20 30 40 50 
25 
vs. vs. vs. vs. vs. 
feature vs. bug fix vs. integration 
P1 P2 P3 P4 
time of day 
integration > feature > fix 
P1 
late commits, longer downtime 
%incMSE 
architects 
AUC: 
0.78
Factors having Higher Breakage 
Role 
NumberofContributors 
Work_Items 
Build_Type 
Timeline.P1_P4. 
Churn..Code. 
Churn..Files. 
Working_Day 
Working_Hour 
Geog_Distance 
● 
● 
mtcars.rf 
● 
● 
● 
larger team 
● 
● 
● 
● 
● 
10 20 30 40 50 
25 
vs. vs. vs. vs. vs. 
feature vs. bug fix vs. integration 
commit vs. merge 
P1 P2 P3 P4 
time of day 
integration > feature > fix 
merge > commit 
P1 
late commits, longer downtime 
%incMSE 
architects 
AUC: 
0.78
Factors having Higher Breakage 
Role 
NumberofContributors 
Work_Items 
Build_Type 
Timeline.P1_P4. 
Churn..Code. 
Churn..Files. 
Working_Day 
Working_Hour 
Geog_Distance 
● 
● 
mtcars.rf 
● 
● 
● 
larger team 
● 
● 
● 
● 
● 
10 20 30 40 50 
25 
vs. vs. vs. vs. vs. 
feature vs. bug fix vs. integration 
commit vs. merge 
P1 P2 P3 P4 
code churn 
file churn 
time of day 
integration > feature > fix 
merge > commit 
more churn 
P1 
late commits, longer downtime 
%incMSE 
architects 
AUC: 
0.78
Factors having Higher Breakage 
Role 
NumberofContributors 
Work_Items 
Build_Type 
Timeline.P1_P4. 
Churn..Code. 
Churn..Files. 
Working_Day 
time of day 
Working_Hour 
Geog_Distance 
● 
● 
mtcars.rf 
● 
● 
● 
larger team 
● 
● 
● 
● 
● 
10 20 30 40 50 
25 
vs. vs. vs. vs. vs. 
feature vs. bug fix vs. integration 
commit vs. merge 
P1 P2 P3 P4 
code churn 
file churn 
local vs. remote 
integration > feature > fix 
merge > commit 
more churn 
local teams 
P1 
late commits, longer downtime 
%incMSE 
architects 
AUC: 
0.78
Factors having Higher Breakage 
Role 
NumberofContributors 
Work_Items 
Build_Type 
Timeline.P1_P4. 
Churn..Code. 
Churn..Files. 
day of week 
time of day 
Working_Day 
Working_Hour 
Geog_Distance 
● 
● 
mtcars.rf 
● 
● 
● 
larger team 
● 
● 
● 
● 
● 
10 20 30 40 50 
25 
vs. vs. vs. vs. vs. 
feature vs. bug fix vs. integration 
commit vs. merge 
P1 P2 P3 P4 
code churn 
file churn 
local vs. remote 
integration > feature > fix 
merge > commit 
more churn 
local teams 
P1 
late commits, longer downtime 
%incMSE 
architects 
AUC: 
0.78
Factors having Higher Breakage 
Role 
NumberofContributors 
Work_Items 
Build_Type 
Timeline.P1_P4. 
Churn..Code. 
Churn..Files. 
day of week 
time of day 
Working_Day 
Working_Hour 
Geog_Distance 
● 
● 
mtcars.rf 
● 
● 
● 
larger team 
● 
● 
● 
● 
● 
10 20 30 40 50 
25 
vs. vs. vs. vs. vs. 
feature vs. bug fix vs. integration 
commit vs. merge 
P1 P2 P3 P4 
code churn 
file churn 
local vs. remote 
integration > feature > fix 
merge > commit 
more churn 
local teams 
P1 
late commits, longer downtime 
%incMSE 
architects 
AUC: 
0.78
26 
1 hour of downtime 
(avg.) per branch 
>=1.25 man-months 
lost 
25% track CI results 
detection takes 3 h 
caused by missing file 
(dependencie)s and 
accidental commits 
active in 4-15 
branches in parallel 
ro l e 
team size 
in branch 
type of 
work item/ 
build 
timeline
branch 1 
branch 2 
Trunk- vs. Branch-based 
Development 
3 
What is "breaking the build"? 
trunk 
merge 
sync merge 
down-time 
down-time 
down-time 
team-level 
breakage 
project-level 
breakage 
X 
... 
triangula9on 
measure interview 
model 7 
Total of 
1.25 to 
2.83 
Man- 
Months 
Wasted 
(in 6 months) 
upper bound lower 
13 
0 100 200 300 400 500 
bound 
Branch−18 
Branch−2 
Branch−5 
QuickFix 
Branch−12 
Branch−21 
Branch−10 
Branch−25 
Branch−3 
Branch−11 
Branch−23 
Branch−15 
Branch−7 
Branch−14 
Branch−24 
PreRelease 
Branch−4 
Branch−6 
Branch−20 
Branch−13 
Branch−16 
Branch−8 
Arch. 
Branch−9 
Trunk 
26 
1 hour of downtime 
(avg.) per branch 
>=1.25 man-months 
lost 
25% track CI results 
detection takes 3 h 
caused by missing file 
(dependencie)s and 
accidental commits 
active in 4-15 
branches in parallel 
role 
team size 
in branch 
type of 
work item/ 
build 
timeline

Más contenido relacionado

Similar a Why do Automated Builds Break? An Empirical Study (ICSME 2014)

224 - Factors Impacting Rapid Releases: An Industrial Case Study
224 - Factors Impacting Rapid Releases: An Industrial Case Study224 - Factors Impacting Rapid Releases: An Industrial Case Study
224 - Factors Impacting Rapid Releases: An Industrial Case StudyESEM 2014
 
SFScon 22 - Andrea Janes - Scalability assessment applied to microservice arc...
SFScon 22 - Andrea Janes - Scalability assessment applied to microservice arc...SFScon 22 - Andrea Janes - Scalability assessment applied to microservice arc...
SFScon 22 - Andrea Janes - Scalability assessment applied to microservice arc...South Tyrol Free Software Conference
 
10 Ways To Improve Your Code( Neal Ford)
10  Ways To  Improve  Your  Code( Neal  Ford)10  Ways To  Improve  Your  Code( Neal  Ford)
10 Ways To Improve Your Code( Neal Ford)guestebde
 
A Tale of CI Build Failures: an Open Source and a Financial Organization Pers...
A Tale of CI Build Failures: an Open Source and a Financial Organization Pers...A Tale of CI Build Failures: an Open Source and a Financial Organization Pers...
A Tale of CI Build Failures: an Open Source and a Financial Organization Pers...Sebastiano Panichella
 
How to Design a Program Repair Bot? Insights from the Repairnator Project
How to Design a Program Repair Bot? Insights from the Repairnator ProjectHow to Design a Program Repair Bot? Insights from the Repairnator Project
How to Design a Program Repair Bot? Insights from the Repairnator ProjectSimon Urli
 
Cw comp1640 211453_mo233_20131120_214054_1314
Cw comp1640 211453_mo233_20131120_214054_1314Cw comp1640 211453_mo233_20131120_214054_1314
Cw comp1640 211453_mo233_20131120_214054_1314Owen Muzi
 
Neal Ford Emergent Design And Evolutionary Architecture
Neal Ford Emergent Design And Evolutionary ArchitectureNeal Ford Emergent Design And Evolutionary Architecture
Neal Ford Emergent Design And Evolutionary ArchitectureThoughtWorks Studios
 
Neal Ford Emergent Design And Evolutionary Architecture
Neal Ford Emergent Design And Evolutionary ArchitectureNeal Ford Emergent Design And Evolutionary Architecture
Neal Ford Emergent Design And Evolutionary ArchitectureThoughtworks
 
Project Management (October - 2016) [CBSGS - Paper Solution] {Mumbai University}
Project Management (October - 2016) [CBSGS - Paper Solution] {Mumbai University}Project Management (October - 2016) [CBSGS - Paper Solution] {Mumbai University}
Project Management (October - 2016) [CBSGS - Paper Solution] {Mumbai University}Mumbai B.Sc.IT Study
 
How Atlassian's Build Engineering Team Has Scaled to 150k Builds Per Month an...
How Atlassian's Build Engineering Team Has Scaled to 150k Builds Per Month an...How Atlassian's Build Engineering Team Has Scaled to 150k Builds Per Month an...
How Atlassian's Build Engineering Team Has Scaled to 150k Builds Per Month an...Peter Leschev
 
Bounded Model Checking for C Programs in an Enterprise Environment
Bounded Model Checking for C Programs in an Enterprise EnvironmentBounded Model Checking for C Programs in an Enterprise Environment
Bounded Model Checking for C Programs in an Enterprise EnvironmentAdaCore
 
DevOps: Find Solutions, Not More Defects
DevOps: Find Solutions, Not More DefectsDevOps: Find Solutions, Not More Defects
DevOps: Find Solutions, Not More DefectsTechWell
 
How Atlassian's Build Engineering Team Has Scaled to 150k Builds Per Month an...
How Atlassian's Build Engineering Team Has Scaled to 150k Builds Per Month an...How Atlassian's Build Engineering Team Has Scaled to 150k Builds Per Month an...
How Atlassian's Build Engineering Team Has Scaled to 150k Builds Per Month an...Peter Leschev
 
An Exploration of Challenges Limiting Pragmatic Software Defect Prediction
An Exploration of Challenges Limiting Pragmatic Software Defect PredictionAn Exploration of Challenges Limiting Pragmatic Software Defect Prediction
An Exploration of Challenges Limiting Pragmatic Software Defect PredictionSAIL_QU
 
Project Management (April - 2017) [CBSGS - Paper Solution] {Mumbai University}
Project Management (April - 2017) [CBSGS - Paper Solution] {Mumbai University}Project Management (April - 2017) [CBSGS - Paper Solution] {Mumbai University}
Project Management (April - 2017) [CBSGS - Paper Solution] {Mumbai University}Mumbai B.Sc.IT Study
 
Doorsng po t_core_workbook_sse_imagev3.3.1_v6moda_final_letter
Doorsng po t_core_workbook_sse_imagev3.3.1_v6moda_final_letterDoorsng po t_core_workbook_sse_imagev3.3.1_v6moda_final_letter
Doorsng po t_core_workbook_sse_imagev3.3.1_v6moda_final_letterDarrel Rader
 
Agile Intro and 2014 trends for AgileSparks open day at John-Bryce - March 2014
Agile Intro and 2014 trends for AgileSparks open day at John-Bryce - March 2014Agile Intro and 2014 trends for AgileSparks open day at John-Bryce - March 2014
Agile Intro and 2014 trends for AgileSparks open day at John-Bryce - March 2014Yuval Yeret
 

Similar a Why do Automated Builds Break? An Empirical Study (ICSME 2014) (20)

224 - Factors Impacting Rapid Releases: An Industrial Case Study
224 - Factors Impacting Rapid Releases: An Industrial Case Study224 - Factors Impacting Rapid Releases: An Industrial Case Study
224 - Factors Impacting Rapid Releases: An Industrial Case Study
 
Ultimate Git Workflow - Seoul 2015
Ultimate Git Workflow - Seoul 2015Ultimate Git Workflow - Seoul 2015
Ultimate Git Workflow - Seoul 2015
 
10 Ways To Improve Your Code
10 Ways To Improve Your Code10 Ways To Improve Your Code
10 Ways To Improve Your Code
 
SFScon 22 - Andrea Janes - Scalability assessment applied to microservice arc...
SFScon 22 - Andrea Janes - Scalability assessment applied to microservice arc...SFScon 22 - Andrea Janes - Scalability assessment applied to microservice arc...
SFScon 22 - Andrea Janes - Scalability assessment applied to microservice arc...
 
10 Ways To Improve Your Code( Neal Ford)
10  Ways To  Improve  Your  Code( Neal  Ford)10  Ways To  Improve  Your  Code( Neal  Ford)
10 Ways To Improve Your Code( Neal Ford)
 
A Tale of CI Build Failures: an Open Source and a Financial Organization Pers...
A Tale of CI Build Failures: an Open Source and a Financial Organization Pers...A Tale of CI Build Failures: an Open Source and a Financial Organization Pers...
A Tale of CI Build Failures: an Open Source and a Financial Organization Pers...
 
How to Design a Program Repair Bot? Insights from the Repairnator Project
How to Design a Program Repair Bot? Insights from the Repairnator ProjectHow to Design a Program Repair Bot? Insights from the Repairnator Project
How to Design a Program Repair Bot? Insights from the Repairnator Project
 
Cw comp1640 211453_mo233_20131120_214054_1314
Cw comp1640 211453_mo233_20131120_214054_1314Cw comp1640 211453_mo233_20131120_214054_1314
Cw comp1640 211453_mo233_20131120_214054_1314
 
Neal Ford Emergent Design And Evolutionary Architecture
Neal Ford Emergent Design And Evolutionary ArchitectureNeal Ford Emergent Design And Evolutionary Architecture
Neal Ford Emergent Design And Evolutionary Architecture
 
Neal Ford Emergent Design And Evolutionary Architecture
Neal Ford Emergent Design And Evolutionary ArchitectureNeal Ford Emergent Design And Evolutionary Architecture
Neal Ford Emergent Design And Evolutionary Architecture
 
Project Management (October - 2016) [CBSGS - Paper Solution] {Mumbai University}
Project Management (October - 2016) [CBSGS - Paper Solution] {Mumbai University}Project Management (October - 2016) [CBSGS - Paper Solution] {Mumbai University}
Project Management (October - 2016) [CBSGS - Paper Solution] {Mumbai University}
 
Thesis_Report
Thesis_ReportThesis_Report
Thesis_Report
 
How Atlassian's Build Engineering Team Has Scaled to 150k Builds Per Month an...
How Atlassian's Build Engineering Team Has Scaled to 150k Builds Per Month an...How Atlassian's Build Engineering Team Has Scaled to 150k Builds Per Month an...
How Atlassian's Build Engineering Team Has Scaled to 150k Builds Per Month an...
 
Bounded Model Checking for C Programs in an Enterprise Environment
Bounded Model Checking for C Programs in an Enterprise EnvironmentBounded Model Checking for C Programs in an Enterprise Environment
Bounded Model Checking for C Programs in an Enterprise Environment
 
DevOps: Find Solutions, Not More Defects
DevOps: Find Solutions, Not More DefectsDevOps: Find Solutions, Not More Defects
DevOps: Find Solutions, Not More Defects
 
How Atlassian's Build Engineering Team Has Scaled to 150k Builds Per Month an...
How Atlassian's Build Engineering Team Has Scaled to 150k Builds Per Month an...How Atlassian's Build Engineering Team Has Scaled to 150k Builds Per Month an...
How Atlassian's Build Engineering Team Has Scaled to 150k Builds Per Month an...
 
An Exploration of Challenges Limiting Pragmatic Software Defect Prediction
An Exploration of Challenges Limiting Pragmatic Software Defect PredictionAn Exploration of Challenges Limiting Pragmatic Software Defect Prediction
An Exploration of Challenges Limiting Pragmatic Software Defect Prediction
 
Project Management (April - 2017) [CBSGS - Paper Solution] {Mumbai University}
Project Management (April - 2017) [CBSGS - Paper Solution] {Mumbai University}Project Management (April - 2017) [CBSGS - Paper Solution] {Mumbai University}
Project Management (April - 2017) [CBSGS - Paper Solution] {Mumbai University}
 
Doorsng po t_core_workbook_sse_imagev3.3.1_v6moda_final_letter
Doorsng po t_core_workbook_sse_imagev3.3.1_v6moda_final_letterDoorsng po t_core_workbook_sse_imagev3.3.1_v6moda_final_letter
Doorsng po t_core_workbook_sse_imagev3.3.1_v6moda_final_letter
 
Agile Intro and 2014 trends for AgileSparks open day at John-Bryce - March 2014
Agile Intro and 2014 trends for AgileSparks open day at John-Bryce - March 2014Agile Intro and 2014 trends for AgileSparks open day at John-Bryce - March 2014
Agile Intro and 2014 trends for AgileSparks open day at John-Bryce - March 2014
 

Último

Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGSujit Pal
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 

Último (20)

Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAG
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 

Why do Automated Builds Break? An Empirical Study (ICSME 2014)

  • 1. Why do Automated Builds Break? An Empirical Study M C IS Noureddine Kerzazi Foutse Khomh Bram Adams http://imgs.steps.dragoart.com/how-to-draw-a-flying-dragon-http://www.printed-editions.com/upload/standard/Harold_Edgerton_Pigeon_Release_69.jpg dragon-in-flight-step-8_1_000000102347_5.gif
  • 2. Imagine 2,000 developers working in the same branch, and one breaks the build, then you end up with 1,999 unhappy people! [T. Zimmermann @ SCAM 2014]
  • 3. 3 What is "breaking the build"?
  • 4. 3 What is "breaking the build"? trunk ...
  • 5. branch 1 3 What is "breaking the build"? trunk ...
  • 6. branch 1 branch 2 3 What is "breaking the build"? trunk ...
  • 7. branch 1 branch 2 3 What is "breaking the build"? trunk ...
  • 8. test build branch 1 branch 2 3 What is "breaking the build"? integrate trunk ...
  • 9. test build branch 1 branch 2 3 What is "breaking the build"? integrate trunk ...
  • 10. branch 1 branch 2 3 What is "breaking the build"? trunk integrate test build ...
  • 11. branch 1 branch 2 3 What is "breaking the build"? trunk integrate test build ...
  • 12. branch 1 branch 2 3 What is "breaking the build"? trunk integrate test build integrate test build down-time ...
  • 13. branch 1 branch 2 3 What is "breaking the build"? trunk down-time team-level breakage ...
  • 14. branch 1 branch 2 3 What is "breaking the build"? trunk down-time integrate test build team-level breakage ...
  • 15. branch 1 branch 2 3 What is "breaking the build"? trunk down-time merge team-level breakage ...
  • 16. branch 1 branch 2 3 What is "breaking the build"? trunk down-time merge team-level breakage integrate test build ...
  • 17. branch 1 branch 2 3 What is "breaking the build"? trunk down-time merge down-time team-level breakage integrate test build ...
  • 18. branch 1 branch 2 3 What is "breaking the build"? trunk merge sync down-time down-time team-level breakage X integrate test build ...
  • 19. branch 1 branch 2 3 What is "breaking the build"? trunk merge sync down-time down-time team-level breakage X integrate test build integrate test build ...
  • 20. branch 1 branch 2 3 What is "breaking the build"? trunk merge sync down-time down-time down-time team-level breakage X integrate test build integrate test build ...
  • 21. branch 1 branch 2 3 What is "breaking the build"? trunk merge sync down-time down-time down-time team-level breakage X integrate test build integrate test build integrate test build ...
  • 22. branch 1 branch 2 3 What is "breaking the build"? trunk merge sync merge down-time down-time down-time team-level breakage X integrate test build ...
  • 23. branch 1 branch 2 3 What is "breaking the build"? trunk merge sync merge down-time down-time down-time team-level breakage X integrate test build integrate test build ...
  • 24. branch 1 branch 2 3 What is "breaking the build"? trunk merge sync merge down-time down-time down-time team-level breakage project-level breakage X ...
  • 25. 4 Build Breakage should be Avoided! you"are"stuck your"team" members"are"stuck testers"are" stuck (a0er"merge) other+teams" deadlines"slip are"stuck morale"drops
  • 26. 5 RQ1. How does Build Breakage Impact a Project? RQ2. Why does the Build Break? RQ3. Which Factors Impact Build Breakage?
  • 27. Web-Based, Financial System 6 200 employees >1.5 MLOC .NET (8,524 files) 25 branches 6 inter-dependent projects 2 geographical sites agile development across different branches 6 months of data
  • 29. 8 RQ1. How does Build Breakage Impact a Project? RQ2. Why does the Build Break? RQ3. Which Factors Impact Build Breakage?
  • 30. Median of 8.3% Broken Builds per Day (avg. of 22.3%) 9 %broken builds 100 100" 90 90" 80 80" 70 70" 60 60" 50 50" 40 40" 30 30" 20 20" 10 10" 0" 18,07,13" 25,07,13" 01,08,13" 08,08,13" 15,08,13" 22,08,13" 29,08,13" 05,09,13" 12,09,13" 19,09,13" 26,09,13" 03,10,13" 10,10,13" 17,10,13" 24,10,13" 31,10,13" 07,11,13" 14,11,13" 21,11,13" 28,11,13" 05,12,13" 12,12,13" 19,12,13" 26,12,13" 02,01,14" 09,01,14" 16,01,14" 23,01,14" 30,01,14" 0
  • 31. 1000 1000" 900 900" 800 800" 700 700" 600 600" 500 500" 400 400" 300 300" 200 200" 100" 0" Architecture) Branch-2) Branch-3) Branch-4) Branch-5) Branch-6) Branch-7) Branch-8) Branch-9) QuickFix) Branch-18) PreRelease) Branch-10) Branch-11) Branch-12) Branch-13) Branch-14) Branch-15) Branch-16) Branch-20) Branch-21) Trunk) Branch-23) Branch-24) Branch-25) DownDme)by)branch)(min)) Average Median Downtime of 1 Hour per Branch 10 #min. re-architecting can cause very long downtime 100
  • 32. Estimating Cost of Team-Level Build Breakage for Branch 11 X integrate test build integrate test build time integrate test build integrate + test build time + ... $$$(branch) in man-hours=
  • 33. Estimating Cost of Team-Level Build Breakage for Project 12 $$$(project) in man-hours = $$$(branch 1) in man-hours + $$$(branch 2) in man-hours + ...
  • 34. Total of 1.25 to 2.83 Man- Months Wasted (in 6 months) 13 0 100 200 300 400 500 Branch−18 Branch−2 Branch−5 QuickFix Branch−12 Branch−21 Branch−10 Branch−25 Branch−3 Branch−11 Branch−23 Branch−15 Branch−7 Branch−14 Branch−24 PreRelease Branch−4 Branch−6 Branch−20 Branch−13 Branch−16 Branch−8 Arch. Branch−9 Trunk re-architecting fixing trunk upper bound lower bound M/H
  • 35. 14 1 hour of downtime (avg.) per branch >=1.25 man-months lost
  • 36. RQ2. Why does the Build Break? 1 hour of downtime (avg.) per branch 14 >=1.25 man-months lost
  • 37. Semi-Structured Interviews 15 architects technical leads integrator front-end developers back-end developers testers >3 years of experience 20th percentile most successful/ broken builds 50 minutes
  • 38. Analysis of Interviews 16 awareness (Q1-Q4) causes (Q5-Q6) prevention (Q7-Q8) X Q1. Q2. ... card sort
  • 39. 25% of Interviewees Track the Build Results I switched off the Build notifications to avoid any distraction. I check the results of my builds only in predefined time windows within the day. I’m always aware about the build notification, especially the red ones. When a build notification for a branch shows up, I examine not only that build, but also the history of build failure on that branch. 17
  • 40. Awareness of a Breakage Takes on Average 3 Hours When we see in the work items system tracker that the developer is done and we do not see the build result, then we have to communicate with the concerned developer to verify where the latest code to test is. 18
  • 41. Breakage Takes on Average 1 Hour to Resolve > 19 concerned about project's overall consistency concerned about own feature/bug fix
  • 42. 3 Major Causes of Build Breakage 20 forgetting to commit certain files (libraries, templates, configuration files, ...) committing from the wrong workspace (branch) feature libA 1.0 libB 2.1 feature libA 1.0 libB 1.5 build scripts do not specify transitive library dependencies
  • 43. Developers Active in 4 to 15 Branches in Parallel I was assigned bugs on a specific project within the overall solution. I unload all other projects from the solution to focus only on one project. I am a nomad moving from a branch to another. I map one workspace by branch to avoid check-in work in progress related to other branch. 21
  • 44. Only 12% has Routine for Avoiding Breakages Before I check- in, I always compare diligently my pending changes with the latest version from the server. In this way I am not wasting team members’ time with broken builds. New developers joining a development project should be required to learn the basic practices of code committing, as part of the process known as onboarding 22
  • 45. 23 1 hour of downtime (avg.) per branch >=1.25 man-months lost 25% track CI results detection takes 3 h caused by missing file (dependencie)s and accidental commits active in 4-15 branches in parallel
  • 46. 23 RQ3. Which Factors Impact Build Breakage? 1 hour of downtime (avg.) per branch >=1.25 man-months lost 25% track CI results detection takes 3 h caused by missing file (dependencie)s and accidental commits active in 4-15 branches in parallel
  • 47. Statistical Model of Impact 24 vs. vs. vs. vs. vs. local vs. remote code/file churn commit vs. merge feature vs. bug fix vs. integration P1 P2 P3 P4 day of week/time of day breakage?
  • 48. Factors having Higher Breakage Role NumberofContributors Work_Items Build_Type Timeline.P1_P4. Churn..Code. Churn..Files. Working_Day Working_Hour Geog_Distance ● ● mtcars.rf ● ● ● ● ● ● ● ● 10 20 30 40 50 25 larger team %incMSE AUC: 0.78
  • 49. Factors having Higher Breakage Role NumberofContributors Work_Items Build_Type Timeline.P1_P4. Churn..Code. Churn..Files. Working_Day Working_Hour Geog_Distance ● ● mtcars.rf ● ● ● ● ● ● ● ● 10 20 30 40 50 25 P1 P2 P3 P4 larger team P1 %incMSE AUC: 0.78
  • 50. Factors having Higher Breakage Role NumberofContributors Work_Items Build_Type Timeline.P1_P4. Churn..Code. Churn..Files. Working_Day Working_Hour Geog_Distance ● ● mtcars.rf ● ● ● ● ● ● ● ● 10 20 30 40 50 25 P1 P2 P3 P4 time of day larger team P1 late commits, longer downtime %incMSE AUC: 0.78
  • 51. Factors having Higher Breakage Role NumberofContributors Work_Items Build_Type Timeline.P1_P4. Churn..Code. Churn..Files. Working_Day Working_Hour Geog_Distance ● ● mtcars.rf ● ● ● ● ● ● ● ● 10 20 30 40 50 25 vs. vs. vs. vs. vs. P1 P2 P3 P4 time of day larger team P1 late commits, longer downtime %incMSE architects AUC: 0.78
  • 52. Factors having Higher Breakage Role NumberofContributors Work_Items Build_Type Timeline.P1_P4. Churn..Code. Churn..Files. Working_Day Working_Hour Geog_Distance ● ● mtcars.rf ● ● ● larger team ● ● ● ● ● 10 20 30 40 50 25 vs. vs. vs. vs. vs. feature vs. bug fix vs. integration P1 P2 P3 P4 time of day integration > feature > fix P1 late commits, longer downtime %incMSE architects AUC: 0.78
  • 53. Factors having Higher Breakage Role NumberofContributors Work_Items Build_Type Timeline.P1_P4. Churn..Code. Churn..Files. Working_Day Working_Hour Geog_Distance ● ● mtcars.rf ● ● ● larger team ● ● ● ● ● 10 20 30 40 50 25 vs. vs. vs. vs. vs. feature vs. bug fix vs. integration commit vs. merge P1 P2 P3 P4 time of day integration > feature > fix merge > commit P1 late commits, longer downtime %incMSE architects AUC: 0.78
  • 54. Factors having Higher Breakage Role NumberofContributors Work_Items Build_Type Timeline.P1_P4. Churn..Code. Churn..Files. Working_Day Working_Hour Geog_Distance ● ● mtcars.rf ● ● ● larger team ● ● ● ● ● 10 20 30 40 50 25 vs. vs. vs. vs. vs. feature vs. bug fix vs. integration commit vs. merge P1 P2 P3 P4 code churn file churn time of day integration > feature > fix merge > commit more churn P1 late commits, longer downtime %incMSE architects AUC: 0.78
  • 55. Factors having Higher Breakage Role NumberofContributors Work_Items Build_Type Timeline.P1_P4. Churn..Code. Churn..Files. Working_Day time of day Working_Hour Geog_Distance ● ● mtcars.rf ● ● ● larger team ● ● ● ● ● 10 20 30 40 50 25 vs. vs. vs. vs. vs. feature vs. bug fix vs. integration commit vs. merge P1 P2 P3 P4 code churn file churn local vs. remote integration > feature > fix merge > commit more churn local teams P1 late commits, longer downtime %incMSE architects AUC: 0.78
  • 56. Factors having Higher Breakage Role NumberofContributors Work_Items Build_Type Timeline.P1_P4. Churn..Code. Churn..Files. day of week time of day Working_Day Working_Hour Geog_Distance ● ● mtcars.rf ● ● ● larger team ● ● ● ● ● 10 20 30 40 50 25 vs. vs. vs. vs. vs. feature vs. bug fix vs. integration commit vs. merge P1 P2 P3 P4 code churn file churn local vs. remote integration > feature > fix merge > commit more churn local teams P1 late commits, longer downtime %incMSE architects AUC: 0.78
  • 57. Factors having Higher Breakage Role NumberofContributors Work_Items Build_Type Timeline.P1_P4. Churn..Code. Churn..Files. day of week time of day Working_Day Working_Hour Geog_Distance ● ● mtcars.rf ● ● ● larger team ● ● ● ● ● 10 20 30 40 50 25 vs. vs. vs. vs. vs. feature vs. bug fix vs. integration commit vs. merge P1 P2 P3 P4 code churn file churn local vs. remote integration > feature > fix merge > commit more churn local teams P1 late commits, longer downtime %incMSE architects AUC: 0.78
  • 58. 26 1 hour of downtime (avg.) per branch >=1.25 man-months lost 25% track CI results detection takes 3 h caused by missing file (dependencie)s and accidental commits active in 4-15 branches in parallel ro l e team size in branch type of work item/ build timeline
  • 59. branch 1 branch 2 Trunk- vs. Branch-based Development 3 What is "breaking the build"? trunk merge sync merge down-time down-time down-time team-level breakage project-level breakage X ... triangula9on measure interview model 7 Total of 1.25 to 2.83 Man- Months Wasted (in 6 months) upper bound lower 13 0 100 200 300 400 500 bound Branch−18 Branch−2 Branch−5 QuickFix Branch−12 Branch−21 Branch−10 Branch−25 Branch−3 Branch−11 Branch−23 Branch−15 Branch−7 Branch−14 Branch−24 PreRelease Branch−4 Branch−6 Branch−20 Branch−13 Branch−16 Branch−8 Arch. Branch−9 Trunk 26 1 hour of downtime (avg.) per branch >=1.25 man-months lost 25% track CI results detection takes 3 h caused by missing file (dependencie)s and accidental commits active in 4-15 branches in parallel role team size in branch type of work item/ build timeline