SlideShare ist ein Scribd-Unternehmen logo
1 von 37
Build System Maintenance



       Shane McIntosh
What is the build system?

.c


.c


            2
What is the build system?
      .c   .c




                .o       .o


                              .exe




                     2
Build code is complex...




           3
Build Maintenance is a
Nuisance for Developers




           4
Build Maintenance is a
Nuisance for Developers




           4
Build Maintenance is a
   Nuisance for Developers


    Make




Autotools     4
Build Maintenance is a
   Nuisance for Developers


    Make
            Migration to
            newer build
            technology
Autotools        4
Build Bugs Even Affect
    the End User!




           5
Build Bugs Even Affect
      the End User!


Address Bar




              5
Build Bugs Even Affect
      the End User!


Address Bar        Search Bar




              5
Build Bugs Even Affect
      the End User!


Address Bar        Search Bar




              5
Build Bugs Even Affect
      the End User!


Address Bar        Search Bar




              5
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
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
Four Dimensional Study of
    Build Maintenance
 Size   Evolution       Coupling     People

                        .c   ? .mk




                    7
8
PLplot



8
Size        Evolution        Coupling         People

                              .c   ? .mk



 9% of      Build churn        Tightly      Dispersed or
all files   >> src churn       coupled       concentrated



                                   PLplot



                          9
Size        Evolution         Coupling         People

                               .c   ? .mk



 9% of      Build churn         Tightly      Dispersed or
all files   >> src churn        coupled       concentrated



                                    PLplot



                          10
Identifying build maintainers
     Source
     Build
.c     .c     .c   .c   .ac   .c   .c
Identifying build maintainers
     Source
     Build
.c     .c       .c       .c   .ac   .c   .c




Change        Change    Change      Change
list #1       list #2   list #3     list #4
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
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
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
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
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
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
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
If you maintain source code,
do you maintain build code?
   % of developers


       79%




                     22%   25%




                     12
If you maintain source code,
do you maintain build code?
   % of developers


       79%




                     22%   25%




                     12
Dispersed
   Ownership:
Build maintenance is
distributed amongst
most team members




                       13
Dispersed
    Ownership:
 Build maintenance is
 distributed amongst
 most team members



    Concentrated
     Ownership:
     A small team is
  responsible for most
of the build maintenance

                           13
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
Tool Support Needed
    for Build Maintenance!
 Build maintenance required    Build churn >>
for 27% of source code tasks    source churn




                                                14
Size        Evolution         Coupling         People

                               .c   ? .mk



 9% of      Build churn         Tightly      Dispersed or
all files   >> src churn        coupled       concentrated



                                    PLplot



                          15
Size        Evolution         Coupling         People

                               .c   ? .mk



 9% of      Build churn         Tightly      Dispersed or
all files   >> src churn        coupled       concentrated

                 Questions?

                                    PLplot



                          15

Weitere ähnliche Inhalte

Was ist angesagt?

Was ist angesagt? (20)

Collecting and Leveraging a Benchmark of Build System Clones to Aid in Qualit...
Collecting and Leveraging a Benchmark of Build System Clones to Aid in Qualit...Collecting and Leveraging a Benchmark of Build System Clones to Aid in Qualit...
Collecting and Leveraging a Benchmark of Build System Clones to Aid in Qualit...
 
Migrating from Subversion to Git and GitHub
Migrating from Subversion to Git and GitHubMigrating from Subversion to Git and GitHub
Migrating from Subversion to Git and GitHub
 
Git Graphs, Hashes, and Compression, Oh My
Git Graphs, Hashes, and Compression, Oh MyGit Graphs, Hashes, and Compression, Oh My
Git Graphs, Hashes, and Compression, Oh My
 
Git and GitHub at the San Francisco JUG
 Git and GitHub at the San Francisco JUG Git and GitHub at the San Francisco JUG
Git and GitHub at the San Francisco JUG
 
Gearman work queue in php
Gearman work queue in phpGearman work queue in php
Gearman work queue in php
 
An Empirical Study of Unspecified Dependencies in Make-Based Build Systems
An Empirical Study of Unspecified Dependencies in Make-Based Build SystemsAn Empirical Study of Unspecified Dependencies in Make-Based Build Systems
An Empirical Study of Unspecified Dependencies in Make-Based Build Systems
 
Madrid JAM limitaciones - dificultades
Madrid JAM limitaciones - dificultadesMadrid JAM limitaciones - dificultades
Madrid JAM limitaciones - dificultades
 
CI from scratch with Jenkins (EN)
CI from scratch with Jenkins (EN)CI from scratch with Jenkins (EN)
CI from scratch with Jenkins (EN)
 
groovy & grails - lecture 10
groovy & grails - lecture 10groovy & grails - lecture 10
groovy & grails - lecture 10
 
groovy & grails - lecture 9
groovy & grails - lecture 9groovy & grails - lecture 9
groovy & grails - lecture 9
 
Improving code quality with continuous integration (PHPBenelux Conference 2011)
Improving code quality with continuous integration (PHPBenelux Conference 2011)Improving code quality with continuous integration (PHPBenelux Conference 2011)
Improving code quality with continuous integration (PHPBenelux Conference 2011)
 
Docker In the Bank
Docker In the BankDocker In the Bank
Docker In the Bank
 
CI/CD on Android project via Jenkins Pipeline
CI/CD on Android project via Jenkins PipelineCI/CD on Android project via Jenkins Pipeline
CI/CD on Android project via Jenkins Pipeline
 
Gradle in 45min
Gradle in 45minGradle in 45min
Gradle in 45min
 
MPL: modular pipeline library - Dynamic Talks Milwaukee 4/11/2019
MPL: modular pipeline library - Dynamic Talks Milwaukee 4/11/2019MPL: modular pipeline library - Dynamic Talks Milwaukee 4/11/2019
MPL: modular pipeline library - Dynamic Talks Milwaukee 4/11/2019
 
All Things Open 2017: How to Treat a Network as a Container
All Things Open 2017: How to Treat a Network as a ContainerAll Things Open 2017: How to Treat a Network as a Container
All Things Open 2017: How to Treat a Network as a Container
 
Advanced Git: Functionality and Features
Advanced Git: Functionality and FeaturesAdvanced Git: Functionality and Features
Advanced Git: Functionality and Features
 
Semi-Automatic Code Cleanup with Clang-Tidy
Semi-Automatic Code Cleanup with Clang-TidySemi-Automatic Code Cleanup with Clang-Tidy
Semi-Automatic Code Cleanup with Clang-Tidy
 
Automate Your Automation | DrupalCon Vienna
Automate Your Automation | DrupalCon ViennaAutomate Your Automation | DrupalCon Vienna
Automate Your Automation | DrupalCon Vienna
 
Drone 1.0 Feature
Drone 1.0 FeatureDrone 1.0 Feature
Drone 1.0 Feature
 

Andere mochten auch

Icsm2009 adams ph_d
Icsm2009 adams ph_dIcsm2009 adams ph_d
Icsm2009 adams ph_d
SAIL_QU
 
Msr2010 mc intosh
Msr2010 mc intoshMsr2010 mc intosh
Msr2010 mc intosh
SAIL_QU
 
Icse2011 build maintenance
Icse2011 build maintenanceIcse2011 build maintenance
Icse2011 build maintenance
SAIL_QU
 
Unicode - What you need to know
Unicode - What you need to knowUnicode - What you need to know
Unicode - What you need to know
Keheliya Gallaba
 

Andere mochten auch (20)

Icse2011 build maintenance
Icse2011 build maintenanceIcse2011 build maintenance
Icse2011 build maintenance
 
130426 yujuan jiang - will my patch make it and how fast
130426   yujuan jiang - will my patch make it and how fast130426   yujuan jiang - will my patch make it and how fast
130426 yujuan jiang - will my patch make it and how fast
 
Icsm2009 adams ph_d
Icsm2009 adams ph_dIcsm2009 adams ph_d
Icsm2009 adams ph_d
 
Studying the Evolution of Build Systems
Studying the Evolution of Build SystemsStudying the Evolution of Build Systems
Studying the Evolution of Build Systems
 
Msr2010 mc intosh
Msr2010 mc intoshMsr2010 mc intosh
Msr2010 mc intosh
 
Icse2011 build maintenance
Icse2011 build maintenanceIcse2011 build maintenance
Icse2011 build maintenance
 
Module System in Standard ML
Module System in Standard MLModule System in Standard ML
Module System in Standard ML
 
Unicode - What you need to know
Unicode - What you need to knowUnicode - What you need to know
Unicode - What you need to know
 
Orchestrating Change: An Artistic Representation of Software Evolution
Orchestrating Change: An Artistic Representation of Software EvolutionOrchestrating Change: An Artistic Representation of Software Evolution
Orchestrating Change: An Artistic Representation of Software Evolution
 
UM ESTUDO EMPÍRICO DO USO DA COMUNICAÇÃO PARA CARACTERIZAR A OCORRÊNCIA DE DE...
UM ESTUDO EMPÍRICO DO USO DA COMUNICAÇÃO PARA CARACTERIZAR A OCORRÊNCIA DE DE...UM ESTUDO EMPÍRICO DO USO DA COMUNICAÇÃO PARA CARACTERIZAR A OCORRÊNCIA DE DE...
UM ESTUDO EMPÍRICO DO USO DA COMUNICAÇÃO PARA CARACTERIZAR A OCORRÊNCIA DE DE...
 
SOCIAL METRICS INCLUDED IN PREDICTION MODELS ON SOFTWARE ENGINEERING: A MAPPI...
SOCIAL METRICS INCLUDED IN PREDICTION MODELS ON SOFTWARE ENGINEERING: A MAPPI...SOCIAL METRICS INCLUDED IN PREDICTION MODELS ON SOFTWARE ENGINEERING: A MAPPI...
SOCIAL METRICS INCLUDED IN PREDICTION MODELS ON SOFTWARE ENGINEERING: A MAPPI...
 
USING STRUCTURAL HOLES METRICS FROM COMMUNICATION NETWORKS TO PREDICT CHANGE ...
USING STRUCTURAL HOLES METRICS FROM COMMUNICATION NETWORKS TO PREDICT CHANGE ...USING STRUCTURAL HOLES METRICS FROM COMMUNICATION NETWORKS TO PREDICT CHANGE ...
USING STRUCTURAL HOLES METRICS FROM COMMUNICATION NETWORKS TO PREDICT CHANGE ...
 
Qt Apresentação
Qt ApresentaçãoQt Apresentação
Qt Apresentação
 
Sonar Metrics
Sonar MetricsSonar Metrics
Sonar Metrics
 
O que é BIG DATA e como pode influenciar nossas vidas
O que é BIG DATA e como pode influenciar nossas vidasO que é BIG DATA e como pode influenciar nossas vidas
O que é BIG DATA e como pode influenciar nossas vidas
 
What Makes Great Infographics
What Makes Great InfographicsWhat Makes Great Infographics
What Makes Great Infographics
 
Masters of SlideShare
Masters of SlideShareMasters of SlideShare
Masters of SlideShare
 
STOP! VIEW THIS! 10-Step Checklist When Uploading to Slideshare
STOP! VIEW THIS! 10-Step Checklist When Uploading to SlideshareSTOP! VIEW THIS! 10-Step Checklist When Uploading to Slideshare
STOP! VIEW THIS! 10-Step Checklist When Uploading to Slideshare
 
You Suck At PowerPoint!
You Suck At PowerPoint!You Suck At PowerPoint!
You Suck At PowerPoint!
 
10 Ways to Win at SlideShare SEO & Presentation Optimization
10 Ways to Win at SlideShare SEO & Presentation Optimization10 Ways to Win at SlideShare SEO & Presentation Optimization
10 Ways to Win at SlideShare SEO & Presentation Optimization
 

Ähnlich wie ICSE2011_SRC

Icse2011 src
Icse2011 srcIcse2011 src
Icse2011 src
SAIL_QU
 

Ähnlich wie ICSE2011_SRC (20)

Icse2011 src
Icse2011 srcIcse2011 src
Icse2011 src
 
WSO2Con EU 2015: Keynote - The Containerization of the Developer Workspace
WSO2Con EU 2015: Keynote - The Containerization of the Developer WorkspaceWSO2Con EU 2015: Keynote - The Containerization of the Developer Workspace
WSO2Con EU 2015: Keynote - The Containerization of the Developer Workspace
 
Hardening Your CI/CD Pipelines with GitOps and Continuous Security
Hardening Your CI/CD Pipelines with GitOps and Continuous SecurityHardening Your CI/CD Pipelines with GitOps and Continuous Security
Hardening Your CI/CD Pipelines with GitOps and Continuous Security
 
Relational Database CI/CD
Relational Database CI/CDRelational Database CI/CD
Relational Database CI/CD
 
Modern Release Engineering in a Nutshell - Why Researchers should Care!
Modern Release Engineering in a Nutshell - Why Researchers should Care!Modern Release Engineering in a Nutshell - Why Researchers should Care!
Modern Release Engineering in a Nutshell - Why Researchers should Care!
 
Reversing and Patching Machine Code
Reversing and Patching Machine CodeReversing and Patching Machine Code
Reversing and Patching Machine Code
 
Makefile
MakefileMakefile
Makefile
 
Kubernetes 1001
Kubernetes 1001Kubernetes 1001
Kubernetes 1001
 
Studying the Software Development Overhead of Build Systems
Studying the Software Development Overhead of Build SystemsStudying the Software Development Overhead of Build Systems
Studying the Software Development Overhead of Build Systems
 
Stability anti patterns in cloud-native applications
Stability anti patterns in cloud-native applicationsStability anti patterns in cloud-native applications
Stability anti patterns in cloud-native applications
 
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
 
Drone Continuous Integration
Drone Continuous IntegrationDrone Continuous Integration
Drone Continuous Integration
 
Introducing CQ 5.1
Introducing CQ 5.1Introducing CQ 5.1
Introducing CQ 5.1
 
Keeping Master Green at Scale
Keeping Master Green at ScaleKeeping Master Green at Scale
Keeping Master Green at Scale
 
Agile Bodensee - Testautomation & Continuous Delivery Workshop
Agile Bodensee - Testautomation & Continuous Delivery WorkshopAgile Bodensee - Testautomation & Continuous Delivery Workshop
Agile Bodensee - Testautomation & Continuous Delivery Workshop
 
Immutable Infrastructure & Rethinking Configuration - Interop 2019
Immutable Infrastructure & Rethinking Configuration - Interop 2019Immutable Infrastructure & Rethinking Configuration - Interop 2019
Immutable Infrastructure & Rethinking Configuration - Interop 2019
 
Tools & techniques, building a dev secops culture at mozilla sba live a...
Tools & techniques, building a dev secops culture at mozilla   sba live a...Tools & techniques, building a dev secops culture at mozilla   sba live a...
Tools & techniques, building a dev secops culture at mozilla sba live a...
 
Source Control Concepts
Source Control ConceptsSource Control Concepts
Source Control Concepts
 
The Power Of Refactoring (PHPCon Italia)
The Power Of Refactoring (PHPCon Italia)The Power Of Refactoring (PHPCon Italia)
The Power Of Refactoring (PHPCon Italia)
 
JavaEdge 2008: Your next version control system
JavaEdge 2008: Your next version control systemJavaEdge 2008: Your next version control system
JavaEdge 2008: Your next version control system
 

Kürzlich hochgeladen

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Kürzlich hochgeladen (20)

ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 

ICSE2011_SRC

  • 1. Build System Maintenance Shane McIntosh
  • 2. What is the build system? .c .c 2
  • 3. What is the build system? .c .c .o .o .exe 2
  • 4. Build code is complex... 3
  • 5. Build Maintenance is a Nuisance for Developers 4
  • 6. Build Maintenance is a Nuisance for Developers 4
  • 7. Build Maintenance is a Nuisance for Developers Make Autotools 4
  • 8. Build Maintenance is a Nuisance for Developers Make Migration to newer build technology Autotools 4
  • 9. Build Bugs Even Affect the End User! 5
  • 10. Build Bugs Even Affect the End User! Address Bar 5
  • 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
  • 16. Four Dimensional Study of Build Maintenance Size Evolution Coupling People .c ? .mk 7
  • 17. 8
  • 19. Size Evolution Coupling People .c ? .mk 9% of Build churn Tightly Dispersed or all files >> src churn coupled concentrated PLplot 9
  • 20. Size Evolution Coupling People .c ? .mk 9% of Build churn Tightly Dispersed or all files >> src churn coupled concentrated PLplot 10
  • 21. Identifying build maintainers Source Build .c .c .c .c .ac .c .c
  • 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

  1. \n
  2. Infrastructure that translates source code into deliverables\n
  3. Infrastructure that translates source code into deliverables\n
  4. Infrastructure that translates source code into deliverables\n
  5. Infrastructure that translates source code into deliverables\n
  6. Infrastructure that translates source code into deliverables\n
  7. Infrastructure that translates source code into deliverables\n
  8. Infrastructure that translates source code into deliverables\n
  9. Infrastructure that translates source code into deliverables\n
  10. Infrastructure that translates source code into deliverables\n
  11. Infrastructure that translates source code into deliverables\n
  12. Infrastructure that translates source code into deliverables\n
  13. Infrastructure that translates source code into deliverables\n
  14. Infrastructure that translates source code into deliverables\n
  15. \n
  16. devs: constantly have to rebuilt artifacts to test changes... bld sys incrementally updates builds\n\n\n
  17. devs: constantly have to rebuilt artifacts to test changes... bld sys incrementally updates builds\n\n\n
  18. devs: constantly have to rebuilt artifacts to test changes... bld sys incrementally updates builds\n\n\n
  19. devs: constantly have to rebuilt artifacts to test changes... bld sys incrementally updates builds\n\n\n
  20. devs: constantly have to rebuilt artifacts to test changes... bld sys incrementally updates builds\n\n\n
  21. devs: constantly have to rebuilt artifacts to test changes... bld sys incrementally updates builds\n\n\n
  22. devs: constantly have to rebuilt artifacts to test changes... bld sys incrementally updates builds\n\n\n
  23. devs: constantly have to rebuilt artifacts to test changes... bld sys incrementally updates builds\n\n\n
  24. devs: constantly have to rebuilt artifacts to test changes... bld sys incrementally updates builds\n\n\n
  25. devs: constantly have to rebuilt artifacts to test changes... bld sys incrementally updates builds\n\n\n
  26. devs: constantly have to rebuilt artifacts to test changes... bld sys incrementally updates builds\n\n\n
  27. devs: constantly have to rebuilt artifacts to test changes... bld sys incrementally updates builds\n\n\n
  28. devs: constantly have to rebuilt artifacts to test changes... bld sys incrementally updates builds\n\n\n
  29. 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
  30. 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
  31. 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
  32. 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
  33. 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
  34. 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
  35. 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
  36. 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
  37. 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
  38. Based on survey results...\n
  39. \n
  40. \n
  41. \n
  42. \n
  43. \n
  44. \n
  45. \n
  46. \n
  47. \n
  48. \n
  49. \n
  50. Build maintenance is a nuisance for developers!\nneed tools to help them to cope!\n
  51. \n
  52. - devs may not commit all changes in one revision\n
  53. - devs may not commit all changes in one revision\n
  54. - devs may not commit all changes in one revision\n
  55. - devs may not commit all changes in one revision\n
  56. - devs may not commit all changes in one revision\n
  57. - devs may not commit all changes in one revision\n
  58. - devs may not commit all changes in one revision\n
  59. - devs may not commit all changes in one revision\n
  60. - devs may not commit all changes in one revision\n
  61. - devs may not commit all changes in one revision\n
  62. - devs may not commit all changes in one revision\n
  63. - devs may not commit all changes in one revision\n
  64. - devs may not commit all changes in one revision\n
  65. - devs may not commit all changes in one revision\n
  66. - devs may not commit all changes in one revision\n
  67. - devs may not commit all changes in one revision\n
  68. - devs may not commit all changes in one revision\n
  69. - devs may not commit all changes in one revision\n
  70. - devs may not commit all changes in one revision\n
  71. - devs may not commit all changes in one revision\n
  72. - devs may not commit all changes in one revision\n
  73. - devs may not commit all changes in one revision\n
  74. - devs may not commit all changes in one revision\n
  75. - devs may not commit all changes in one revision\n
  76. - devs may not commit all changes in one revision\n
  77. - devs may not commit all changes in one revision\n
  78. - devs may not commit all changes in one revision\n
  79. - Jazz src devs are often responsible for build dev\n- Git and Linux are less so\n
  80. - Jazz distributes build work...\n
  81. - Jazz distributes build work...\n
  82. - Jazz distributes build work...\n
  83. - Jazz distributes build work...\n
  84. - Jazz distributes build work...\n
  85. \n
  86. Build maintenance is a nuisance for developers!\nneed tools to help them to cope!\n