33. Build Systems Require 12%
of a Developer’s
Time (on average)
10
Kumfert, G., and Epperly,T.
Software in the DOE: The
Hidden Overhead of the “Build”
34. Build Systems Require 12%
of a Developer’s
Time (on average)
10
Kumfert, G., and Epperly,T.
Software in the DOE: The
Hidden Overhead of the “Build”
Build maintenance
slows development!
50. Build File Churn is on Par
with the Source Churn
ML Hibernate−core Eclipse−core Jazz
19
PLplot
GCC Git Linux Mozilla PLplot P
Projects
0.00.20.40.60.81.0
ArgoUML Hibernate Eclipse Jazz GCC Git
Projects
NormalizedChurn
Source
Build
File
020406080100
(%)
51. Build File Churn is on Par
with the Source Churn
ML Hibernate−core Eclipse−core Jazz
19
PLplot
GCC Git Linux Mozilla PLplot P
Projects
0.00.20.40.60.81.0
ArgoUML Hibernate Eclipse Jazz GCC Git
Projects
NormalizedChurn
Source
Build
Build technology
migration
File
020406080100
(%)
52. Line Churn Adjusted by
System Size (# files)
20
x.cb.ca.c
3 source files
Feb 1Jan 1
53. Line Churn Adjusted by
System Size (# files)
20
x.cb.ca.c
3 source files
Feb 1Jan 1
65 4 5
54. Line Churn Adjusted by
System Size (# files)
20
x.cb.ca.c
3 source files
Feb 1Jan 1
65 4
Source Lines per Change list
(5+6+4+5) ÷ 4 = 5
5
55. Line Churn Adjusted by
System Size (# files)
20
x.cb.ca.c
3 source files
Feb 1Jan 1
65 4
Source Lines per Change list
(5+6+4+5) ÷ 4 = 5
Adjust for system size
5 ÷ 3
= 1.67
5
56. Build Line Churn is Higher
than the Source Churn
21
0
0.175
0.35
0.525
0.7
0.52
0.62
0.33
0.37
0.28
0.19
AverageLinesperChangeList(normalizedbysystemsize)
Source
Build
71. Change List Coupling is Below
12% Estimate
26
4%
7%7%
3%
5%5%
4%
7%
4%
3%
5%
2%
Source Build
Test Build
.mk?.c
12%
72. Work Item Coupling is High
27
8%
20%
44%
4%
16%
27%
Source Build
Test Build
.mk?.c
12%
73. Work Item Coupling is High
27
8%
20%
44%
4%
16%
27%
Source Build
Test Build
Mozilla’s build coupling is very high!
.mk?.c
12%
74. Work Item Coupling is High
27
8%
20%
44%
4%
16%
27%
Source Build
Test Build
Mozilla’s build coupling is very high!
Very low due to
use of higher level
build abstraction
.mk?.c
12%
75. 28
People
How Tightly Coupled are
Build and Source Code?
.mk?.c
Size
9% of
all files
Evolution Coupling
Tightly
coupled
Build churn
>> source
76. 29
How Do Projects Distribute
Build Maintenance Work?
.mk?.c
Size
9% of
all files
Evolution Coupling
Tightly
coupled
People
Build churn
>> source
90. 33
How Do Projects Distribute
Build Maintenance Work?
.mk?.c
Size
9% of
all files
Evolution Coupling
Tightly
coupled
People
Dispersed or
concentrated
Build churn
>> source
91. Tool support needed
for build maintenance!
34
Build churn >>
source churn
Build maintenance required
for 27% of source code tasks