11. Build Bugs Even Affect
the End User!
Address Bar Search Bar
5
12. Build Bugs Even Affect
the End User!
Address Bar Search Bar
5
13. Build Bugs Even Affect
the End User!
Address Bar Search Bar
5
14. Build Systems Require 12%
of a Developer’s
Time (on average)
Kumfert, G., and Epperly, T.
Software in the DOE: The
Hidden Overhead of the “Build”
6
15. Build Systems Require 12%
of a Developer’s
Time (on average)
Build maintenance
slows development!
Kumfert, G., and Epperly, T.
Software in the DOE: The
Hidden Overhead of the “Build”
6
22. Identifying build maintainers
Source
Build
.c .c .c .c .ac .c .c
Change Change Change Change
list #1 list #2 list #3 list #4
23. Identifying build maintainers
Source
Build
.c .c .c .c .ac .c .c
Change Change Change Change
25% build
list #1 list #2 list #3 list #4
24. Identifying build maintainers
Source
Build
.c .c .c .c .ac .c .c
Change Change Change Change
25% build
list #1 list #2 list #3 list #4
25. Identifying build maintainers
Source
Build
.c .c .c .c .ac .c .c
Change Change Change Change
25% build
list #1 list #2 list #3 list #4
0% build
26. Identifying build maintainers
Source
Build
.c .c .c .c .ac .c .c
Change Change Change Change
25% build
list #1 list #2 list #3 list #4
0% build
27. Identifying build maintainers
Source
Build
.c .c .c .c .ac .c .c
Change Change Change Change
25% build
list #1 list #2 list #3 list #4
0% build 50% build
28. Identifying build maintainers
Source
Build
.c .c .c .c .ac .c .c
Change Change Change Change
list #1 list #2 list #3 list #4
≥
0% build 50% build
29. Identifying build maintainers
Source
Build
.c .c .c .c .ac .c .c
Change Change Change Change
list #1 list #2 list #3 list #4
≥
0% build 50% build
30. If you maintain source code,
do you maintain build code?
% of developers
79%
22% 25%
12
31. If you maintain source code,
do you maintain build code?
% of developers
79%
22% 25%
12
32. Dispersed
Ownership:
Build maintenance is
distributed amongst
most team members
13
33. Dispersed
Ownership:
Build maintenance is
distributed amongst
most team members
Concentrated
Ownership:
A small team is
responsible for most
of the build maintenance
13
34. Dispersed
Ownership:
Build maintenance is
distributed amongst
most team members
Which build ownership
style performs best?
Concentrated
Ownership:
A small team is
responsible for most
of the build maintenance
13
35. Tool Support Needed
for Build Maintenance!
Build maintenance required Build churn >>
for 27% of source code tasks source churn
14
36. Size Evolution Coupling People
.c ? .mk
9% of Build churn Tightly Dispersed or
all files >> src churn coupled concentrated
PLplot
15
37. Size Evolution Coupling People
.c ? .mk
9% of Build churn Tightly Dispersed or
all files >> src churn coupled concentrated
Questions?
PLplot
15
Hinweis der Redaktion
\n
Infrastructure that translates source code into deliverables\n
Infrastructure that translates source code into deliverables\n
Infrastructure that translates source code into deliverables\n
Infrastructure that translates source code into deliverables\n
Infrastructure that translates source code into deliverables\n
Infrastructure that translates source code into deliverables\n
Infrastructure that translates source code into deliverables\n
Infrastructure that translates source code into deliverables\n
Infrastructure that translates source code into deliverables\n
Infrastructure that translates source code into deliverables\n
Infrastructure that translates source code into deliverables\n
Infrastructure that translates source code into deliverables\n
Infrastructure that translates source code into deliverables\n
\n
devs: constantly have to rebuilt artifacts to test changes... bld sys incrementally updates builds\n\n\n
devs: constantly have to rebuilt artifacts to test changes... bld sys incrementally updates builds\n\n\n
devs: constantly have to rebuilt artifacts to test changes... bld sys incrementally updates builds\n\n\n
devs: constantly have to rebuilt artifacts to test changes... bld sys incrementally updates builds\n\n\n
devs: constantly have to rebuilt artifacts to test changes... bld sys incrementally updates builds\n\n\n
devs: constantly have to rebuilt artifacts to test changes... bld sys incrementally updates builds\n\n\n
devs: constantly have to rebuilt artifacts to test changes... bld sys incrementally updates builds\n\n\n
devs: constantly have to rebuilt artifacts to test changes... bld sys incrementally updates builds\n\n\n
devs: constantly have to rebuilt artifacts to test changes... bld sys incrementally updates builds\n\n\n
devs: constantly have to rebuilt artifacts to test changes... bld sys incrementally updates builds\n\n\n
devs: constantly have to rebuilt artifacts to test changes... bld sys incrementally updates builds\n\n\n
devs: constantly have to rebuilt artifacts to test changes... bld sys incrementally updates builds\n\n\n
devs: constantly have to rebuilt artifacts to test changes... bld sys incrementally updates builds\n\n\n
Firefox 3.0 was built and delivered incorrectly\nusers in a networked environment address/search bar broken\ndue to an incorrect version of the SQLite library being linked in build process\nFix was delivered 4 months late in a service pack (3.0.1)\n
Firefox 3.0 was built and delivered incorrectly\nusers in a networked environment address/search bar broken\ndue to an incorrect version of the SQLite library being linked in build process\nFix was delivered 4 months late in a service pack (3.0.1)\n
Firefox 3.0 was built and delivered incorrectly\nusers in a networked environment address/search bar broken\ndue to an incorrect version of the SQLite library being linked in build process\nFix was delivered 4 months late in a service pack (3.0.1)\n
Firefox 3.0 was built and delivered incorrectly\nusers in a networked environment address/search bar broken\ndue to an incorrect version of the SQLite library being linked in build process\nFix was delivered 4 months late in a service pack (3.0.1)\n
Firefox 3.0 was built and delivered incorrectly\nusers in a networked environment address/search bar broken\ndue to an incorrect version of the SQLite library being linked in build process\nFix was delivered 4 months late in a service pack (3.0.1)\n
Firefox 3.0 was built and delivered incorrectly\nusers in a networked environment address/search bar broken\ndue to an incorrect version of the SQLite library being linked in build process\nFix was delivered 4 months late in a service pack (3.0.1)\n
Firefox 3.0 was built and delivered incorrectly\nusers in a networked environment address/search bar broken\ndue to an incorrect version of the SQLite library being linked in build process\nFix was delivered 4 months late in a service pack (3.0.1)\n
Firefox 3.0 was built and delivered incorrectly\nusers in a networked environment address/search bar broken\ndue to an incorrect version of the SQLite library being linked in build process\nFix was delivered 4 months late in a service pack (3.0.1)\n
Firefox 3.0 was built and delivered incorrectly\nusers in a networked environment address/search bar broken\ndue to an incorrect version of the SQLite library being linked in build process\nFix was delivered 4 months late in a service pack (3.0.1)\n
Based on survey results...\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
Build maintenance is a nuisance for developers!\nneed tools to help them to cope!\n
\n
- devs may not commit all changes in one revision\n
- devs may not commit all changes in one revision\n
- devs may not commit all changes in one revision\n
- devs may not commit all changes in one revision\n
- devs may not commit all changes in one revision\n
- devs may not commit all changes in one revision\n
- devs may not commit all changes in one revision\n
- devs may not commit all changes in one revision\n
- devs may not commit all changes in one revision\n
- devs may not commit all changes in one revision\n
- devs may not commit all changes in one revision\n
- devs may not commit all changes in one revision\n
- devs may not commit all changes in one revision\n
- devs may not commit all changes in one revision\n
- devs may not commit all changes in one revision\n
- devs may not commit all changes in one revision\n
- devs may not commit all changes in one revision\n
- devs may not commit all changes in one revision\n
- devs may not commit all changes in one revision\n
- devs may not commit all changes in one revision\n
- devs may not commit all changes in one revision\n
- devs may not commit all changes in one revision\n
- devs may not commit all changes in one revision\n
- devs may not commit all changes in one revision\n
- devs may not commit all changes in one revision\n
- devs may not commit all changes in one revision\n
- devs may not commit all changes in one revision\n
- Jazz src devs are often responsible for build dev\n- Git and Linux are less so\n
- Jazz distributes build work...\n
- Jazz distributes build work...\n
- Jazz distributes build work...\n
- Jazz distributes build work...\n
- Jazz distributes build work...\n
\n
Build maintenance is a nuisance for developers!\nneed tools to help them to cope!\n