SlideShare una empresa de Scribd logo
1 de 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

Más contenido relacionado

La actualidad más candente

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...Shane McIntosh
 
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 GitHubMatthew McCullough
 
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 MyMatthew McCullough
 
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 JUGMatthew McCullough
 
Gearman work queue in php
Gearman work queue in phpGearman work queue in php
Gearman work queue in phpBo-Yi Wu
 
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 Systemscorpaulbezemer
 
Madrid JAM limitaciones - dificultades
Madrid JAM limitaciones - dificultadesMadrid JAM limitaciones - dificultades
Madrid JAM limitaciones - dificultadesJavier Delgado Garrido
 
CI from scratch with Jenkins (EN)
CI from scratch with Jenkins (EN)CI from scratch with Jenkins (EN)
CI from scratch with Jenkins (EN)Borislav Traykov
 
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)Martin de Keijzer
 
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 PipelineVeaceslav Gaidarji
 
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/2019Grid Dynamics
 
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 ContainerRosemary Wang
 
Advanced Git: Functionality and Features
Advanced Git: Functionality and FeaturesAdvanced Git: Functionality and Features
Advanced Git: Functionality and FeaturesBrent Laster
 
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-TidyMarkus Werle
 
Automate Your Automation | DrupalCon Vienna
Automate Your Automation | DrupalCon ViennaAutomate Your Automation | DrupalCon Vienna
Automate Your Automation | DrupalCon ViennaPantheon
 
Drone 1.0 Feature
Drone 1.0 FeatureDrone 1.0 Feature
Drone 1.0 FeatureBo-Yi Wu
 

La actualidad más candente (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
 

Destacado

Icse2011 build maintenance
Icse2011 build maintenanceIcse2011 build maintenance
Icse2011 build maintenanceShane McIntosh
 
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 fastPtidej Team
 
Icsm2009 adams ph_d
Icsm2009 adams ph_dIcsm2009 adams ph_d
Icsm2009 adams ph_dSAIL_QU
 
Studying the Evolution of Build Systems
Studying the Evolution of Build SystemsStudying the Evolution of Build Systems
Studying the Evolution of Build SystemsSAIL_QU
 
Msr2010 mc intosh
Msr2010 mc intoshMsr2010 mc intosh
Msr2010 mc intoshSAIL_QU
 
Icse2011 build maintenance
Icse2011 build maintenanceIcse2011 build maintenance
Icse2011 build maintenanceSAIL_QU
 
Module System in Standard ML
Module System in Standard MLModule System in Standard ML
Module System in Standard MLKeheliya Gallaba
 
Unicode - What you need to know
Unicode - What you need to knowUnicode - What you need to know
Unicode - What you need to knowKeheliya Gallaba
 
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 EvolutionShane McIntosh
 
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...Igor Wiese
 
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...Igor Wiese
 
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 ...Igor Wiese
 
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 vidasElaine Naomi
 
What Makes Great Infographics
What Makes Great InfographicsWhat Makes Great Infographics
What Makes Great InfographicsSlideShare
 
Masters of SlideShare
Masters of SlideShareMasters of SlideShare
Masters of SlideShareKapost
 
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 SlideshareEmpowered Presentations
 
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 OptimizationOneupweb
 

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

Similar a ICSE2011_SRC

Icse2011 src
Icse2011 srcIcse2011 src
Icse2011 srcSAIL_QU
 
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 WorkspaceWSO2
 
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 SecurityWeaveworks
 
Relational Database CI/CD
Relational Database CI/CDRelational Database CI/CD
Relational Database CI/CDJasmin Fluri
 
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!Bram Adams
 
Reversing and Patching Machine Code
Reversing and Patching Machine CodeReversing and Patching Machine Code
Reversing and Patching Machine CodeTeodoro Cipresso
 
Makefile
MakefileMakefile
MakefileIonela
 
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 SystemsSAIL_QU
 
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 applicationsAna-Maria Mihalceanu
 
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
 
Drone Continuous Integration
Drone Continuous IntegrationDrone Continuous Integration
Drone Continuous IntegrationDaniel Cerecedo
 
Agile Bodensee - Testautomation & Continuous Delivery Workshop
Agile Bodensee - Testautomation & Continuous Delivery WorkshopAgile Bodensee - Testautomation & Continuous Delivery Workshop
Agile Bodensee - Testautomation & Continuous Delivery WorkshopMichael Palotas
 
Immutable Infrastructure & Rethinking Configuration - Interop 2019
Immutable Infrastructure & Rethinking Configuration - Interop 2019Immutable Infrastructure & Rethinking Configuration - Interop 2019
Immutable Infrastructure & Rethinking Configuration - Interop 2019RackN
 
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...SBA Research
 
The Power Of Refactoring (PHPCon Italia)
The Power Of Refactoring (PHPCon Italia)The Power Of Refactoring (PHPCon Italia)
The Power Of Refactoring (PHPCon Italia)Stefan Koopmanschap
 
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 systemGilad Garon
 

Similar a 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
 

Último

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...apidays
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
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 2024The Digital Insurer
 
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
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
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
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
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
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
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)wesley chun
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 

Último (20)

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...
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
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
 
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
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
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
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
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
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
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)
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 

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

Notas del editor

  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