SlideShare une entreprise Scribd logo
1  sur  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

Contenu connexe

Tendances

Tendances (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
 

En vedette

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
 

En vedette (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
 

Similaire à ICSE2011_SRC

Icse2011 src
Icse2011 srcIcse2011 src
Icse2011 src
SAIL_QU
 

Similaire à 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
 

Dernier

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
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
 

Dernier (20)

AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
 
Quantum Leap in Next-Generation Computing
Quantum Leap in Next-Generation ComputingQuantum Leap in Next-Generation Computing
Quantum Leap in Next-Generation Computing
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Simplifying Mobile A11y Presentation.pptx
Simplifying Mobile A11y Presentation.pptxSimplifying Mobile A11y Presentation.pptx
Simplifying Mobile A11y Presentation.pptx
 
TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....
TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....
TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....
 
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
 
Introduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDMIntroduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDM
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
API Governance and Monetization - The evolution of API governance
API Governance and Monetization -  The evolution of API governanceAPI Governance and Monetization -  The evolution of API governance
API Governance and Monetization - The evolution of API governance
 
Modernizing Legacy Systems Using Ballerina
Modernizing Legacy Systems Using BallerinaModernizing Legacy Systems Using Ballerina
Modernizing Legacy Systems Using Ballerina
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
JohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptxJohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptx
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
AI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by AnitarajAI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by Anitaraj
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
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
 

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

Notes de l'éditeur

  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