SlideShare une entreprise Scribd logo
1  sur  31
Télécharger pour lire hors ligne
Continuous Integration
            - A Framework for Better Quality Software
            Richmond SPIN




                                             Richmond
Eric Pugh
                                             May 13th, 2009



                                                              1
Who am I?



  Principal of OpenSource Connections
 Contributer to CruiseControl and
 Continuum CI projects
 Member of Apache Software Foundation
 Presenter at many conferences
 including OSCON, ApacheCON, jTDS,
 ExpoQA
 Fascinated by the art of software
 development




 Continuous Integration                  RICHMOND, May 13, 2009


                                                                  2
What are we talking about?



   What is CI?
   Why does it matter to me?
   What do I need to use CI?
   Demonstration of Hudson
   Where does CI fit into the SPIN World?
   Questions!




                                                                      3
   Continuous Integration                    RICHMOND, May 13, 2009


                                                                      3
What is Continuous Integration?




         From Martin Fowler:


         “a fully automated and reproducible build,
         including testing, that runs many times a day”.




          http://martinfowler.com/articles/continuousIntegration.html




                                                                                       4
   Continuous Integration                                     RICHMOND, May 13, 2009


                                                                                       4
Rapid Feedback




                            < 10 minutos




   Continuous Integration                  RICHMOND, May 13, 2009


                                                                    5
How is CI important to different members of a team?




                                                                               6
   Continuous Integration                             RICHMOND, May 13, 2009


                                                                               6
Life of a programmer without CI...



   Unstable code, integration is difficult
  Many build errors reported
  Only one person on the team can build the entire
  project
  Demonstrations require extensive planning
  Feedback cycle is long




    Every day is a struggle to be productive


                                                                               7
    Continuous Integration                            RICHMOND, May 13, 2009


                                                                               7
Life of a programmer with CI...



     The build process is simple and repeatable
    Elimination of Human Error
    Demo’s are quick and easy
    Feedback cycle is very rapid




    Every day you know you can code!


                                                                            8
    Continuous Integration                         RICHMOND, May 13, 2009


                                                                            8
For a tester




      control
  


     What is in the build?
     What has changed between builds?
     How do I verify functionality?




                                                                  9
    Continuous Integration               RICHMOND, May 13, 2009


                                                                  9
For a Project Manager




      Visibility
  




                                                     10
   Continuous Integration   RICHMOND, May 13, 2009


                                                     10
For a Project Manager




                                                     11
   Continuous Integration   RICHMOND, May 13, 2009


                                                     11
For a development team




      security
  




                                                     12
   Continuous Integration   RICHMOND, May 13, 2009


                                                     12
For a development team




                                                     13
   Continuous Integration   RICHMOND, May 13, 2009


                                                     13
For a development team




                                                     14
   Continuous Integration   RICHMOND, May 13, 2009


                                                     14
For a development team




                                                     15
   Continuous Integration   RICHMOND, May 13, 2009


                                                     15
What is needed to get started?



   A dedicated machine
   Source Control
   Automated Build Script
   Method of notification




                                                          16
   Continuous Integration        RICHMOND, May 13, 2009


                                                          16
What are the challenges to using CI?




                                                                17
    Continuous Integration             RICHMOND, May 13, 2009


                                                                17
Challenge One: Cultural Change



    CI needs a champion who acts as the ambassador to the leaders of the
   organization.
   Thought leaders in the organization who can help encourage
   developers to accept the process changes that CI brings

    A very successful test case
     ¿A greenfield project if possible?




                                                                                 18
   Continuous Integration                               RICHMOND, May 13, 2009


                                                                                 18
Challenge Two: Environmental Difficulties




 All the tests should be true unit tests, not
integration tests
 Few or no external dependencies
 A beefy build server...
 A strategy for deploying code into the CI
environment
Database changes are SIMPLE




                                                                          19
     Continuous Integration                      RICHMOND, May 13, 2009


                                                                          19
Challenge Three: Project Characteristics



   Fewer branches to the code makes life easier
   Many small code changes. Code is committed throughout the day.
   There are good unit test coverage.
   The code is ready for deployment, not in pieces.




                                                                                20
   Continuous Integration                              RICHMOND, May 13, 2009


                                                                                20
Challenge Four: Stability of CI Tool




                                                      X
    The CI system must be as well maintained as
    the Source Control system.
    The CI system performs builds very quickly.
    Who has responsibility for CI? It’s very
    important to have a “throat to choke”.
    No false alarms. If there are false alarms
    then the developers lose confidence in the CI




                                                      ✓
    system.




                                                                             21
    Continuous Integration                          RICHMOND, May 13, 2009


                                                                             21
Demo of Hudson




                                                     22
   Continuous Integration   RICHMOND, May 13, 2009


                                                     22
Where does CI fit into the SPIN World?




                                                                                   23
Continuous Integration                                    RICHMOND, May 13, 2009


                                                                                   23
CI Maturity Model?



   Fewer branches to the code makes life easier
   Many small code changes. Code is committed throughout the day.
   There are good unit test coverage.
   The code is ready for deployment, not in pieces.




http://www.anthillpro.com/blogs/anthillpro-blog/2009/05/05/1241542860000.html


                                                                                  24
   Continuous Integration                                RICHMOND, May 13, 2009


                                                                                  24
Virtuous Circle?



    Metrics are hard to get
    Developers rebel against on high management
    Need good processes that support and encourage other good
    processes




                                                                                25
    Continuous Integration                             RICHMOND, May 13, 2009


                                                                                25
HackyStat




                                                     26
   Continuous Integration   RICHMOND, May 13, 2009


                                                     26
Test Automation



   CI increases the rewards for doing test automation
      unit
      integration
      functional?
      system?




                                                                                  27
   Continuous Integration                                RICHMOND, May 13, 2009


                                                                                  27
Where to next?



    Continuous Integration: Improving Software Quality
   and Reducing Risk
   CITConf is the conference for CI. This year it was
   April 24, 25 in Minneapolis, MN.




    Take a handout with reference links!




                                                                                   28
   Continuous Integration                                 RICHMOND, May 13, 2009


                                                                                   28
Matrix of 22 differences in CI systems

  http://confluence.public.thoughtworks.org/display/CC/CI+Feature+Matrix




                                                                               29
    Continuous Integration                            RICHMOND, May 13, 2009


                                                                               29
Why CI?



   Eliminate human errors
   Tests that run frequently are more valuable
   A CI system is the foundation of a project status dashboard
   Eliminate integration problems!




                                                                                  30
   Continuous Integration                                RICHMOND, May 13, 2009


                                                                                  30
RICHMOND
Eric Pugh epugh@opensourceconnections.com
                                            May 13th, 2009



                                                             31

Contenu connexe

Similaire à Ci Presentation for SPIN

What Is Visualization?
What Is Visualization?What Is Visualization?
What Is Visualization?OneSpring LLC
 
Continuous integration CloudParty 21 may 2014 - Milan
Continuous integration CloudParty 21 may 2014 - MilanContinuous integration CloudParty 21 may 2014 - Milan
Continuous integration CloudParty 21 may 2014 - MilanSimone Pasquini
 
Agility With Care: Managing Requirements Change with Agility In A Regulated P...
Agility With Care: Managing Requirements Change with Agility In A Regulated P...Agility With Care: Managing Requirements Change with Agility In A Regulated P...
Agility With Care: Managing Requirements Change with Agility In A Regulated P...Ken Wong
 
Introduction to lean
Introduction to leanIntroduction to lean
Introduction to leanMichel Baudin
 
Joe Little - What's Lean got to do with it - The Lean within Scrum
Joe Little - What's Lean got to do with it - The Lean within ScrumJoe Little - What's Lean got to do with it - The Lean within Scrum
Joe Little - What's Lean got to do with it - The Lean within ScrumSFA
 
Lean within Scrum @ Charlotte SFA July 2010
Lean within Scrum @ Charlotte SFA July 2010Lean within Scrum @ Charlotte SFA July 2010
Lean within Scrum @ Charlotte SFA July 2010LeanAgileTraining
 
DevOps - Succeed by Planning for Failures
DevOps - Succeed by Planning for FailuresDevOps - Succeed by Planning for Failures
DevOps - Succeed by Planning for FailuresDevOps.com
 
Software Modernization and Legacy Migration Primer
Software Modernization and Legacy Migration PrimerSoftware Modernization and Legacy Migration Primer
Software Modernization and Legacy Migration PrimerProbal DasGupta
 
Fariz Saracevic, IBM | Agile Turkey Summit 2013
Fariz Saracevic, IBM | Agile Turkey Summit 2013Fariz Saracevic, IBM | Agile Turkey Summit 2013
Fariz Saracevic, IBM | Agile Turkey Summit 2013Agile Turkey
 
FORO_FINANCIERO: Performance Management In Turbulent Times
FORO_FINANCIERO: Performance Management In Turbulent TimesFORO_FINANCIERO: Performance Management In Turbulent Times
FORO_FINANCIERO: Performance Management In Turbulent TimesLKS, S. Coop.
 
Real insights real_results-steve_robinson
Real insights real_results-steve_robinsonReal insights real_results-steve_robinson
Real insights real_results-steve_robinsonIBM
 
Real Insights Real Results - Steve Robinson
Real Insights Real Results - Steve RobinsonReal Insights Real Results - Steve Robinson
Real Insights Real Results - Steve RobinsonRoopa Nadkarni
 
Real insights real_results-steve_robinson
Real insights real_results-steve_robinsonReal insights real_results-steve_robinson
Real insights real_results-steve_robinsonIBM
 
Ibm software network2012 claudio cinquepalmi #ibmsocialbiz
Ibm software network2012 claudio cinquepalmi  #ibmsocialbiz Ibm software network2012 claudio cinquepalmi  #ibmsocialbiz
Ibm software network2012 claudio cinquepalmi #ibmsocialbiz Claudio Cinquepalmi
 
The Lean within Scrum
The Lean within ScrumThe Lean within Scrum
The Lean within ScrumOctav Druta
 
Advertising Networks & Exchanges - ad:tech, Singapore
Advertising Networks & Exchanges - ad:tech, SingaporeAdvertising Networks & Exchanges - ad:tech, Singapore
Advertising Networks & Exchanges - ad:tech, SingaporeChris Schaumann
 
jenkins.pptx
jenkins.pptxjenkins.pptx
jenkins.pptxOrco1
 

Similaire à Ci Presentation for SPIN (20)

What Is Visualization?
What Is Visualization?What Is Visualization?
What Is Visualization?
 
Continuous integration CloudParty 21 may 2014 - Milan
Continuous integration CloudParty 21 may 2014 - MilanContinuous integration CloudParty 21 may 2014 - Milan
Continuous integration CloudParty 21 may 2014 - Milan
 
Agility With Care: Managing Requirements Change with Agility In A Regulated P...
Agility With Care: Managing Requirements Change with Agility In A Regulated P...Agility With Care: Managing Requirements Change with Agility In A Regulated P...
Agility With Care: Managing Requirements Change with Agility In A Regulated P...
 
Introduction to lean
Introduction to leanIntroduction to lean
Introduction to lean
 
Joe Little - What's Lean got to do with it - The Lean within Scrum
Joe Little - What's Lean got to do with it - The Lean within ScrumJoe Little - What's Lean got to do with it - The Lean within Scrum
Joe Little - What's Lean got to do with it - The Lean within Scrum
 
Lean within Scrum @ Charlotte SFA July 2010
Lean within Scrum @ Charlotte SFA July 2010Lean within Scrum @ Charlotte SFA July 2010
Lean within Scrum @ Charlotte SFA July 2010
 
How Automation Reveals Technical Debt
How Automation Reveals Technical DebtHow Automation Reveals Technical Debt
How Automation Reveals Technical Debt
 
Unicom Software Corporate Profile
Unicom Software Corporate ProfileUnicom Software Corporate Profile
Unicom Software Corporate Profile
 
DevOps - Succeed by Planning for Failures
DevOps - Succeed by Planning for FailuresDevOps - Succeed by Planning for Failures
DevOps - Succeed by Planning for Failures
 
Agile Bill.Lean Primer.0906a
Agile Bill.Lean Primer.0906aAgile Bill.Lean Primer.0906a
Agile Bill.Lean Primer.0906a
 
Software Modernization and Legacy Migration Primer
Software Modernization and Legacy Migration PrimerSoftware Modernization and Legacy Migration Primer
Software Modernization and Legacy Migration Primer
 
Fariz Saracevic, IBM | Agile Turkey Summit 2013
Fariz Saracevic, IBM | Agile Turkey Summit 2013Fariz Saracevic, IBM | Agile Turkey Summit 2013
Fariz Saracevic, IBM | Agile Turkey Summit 2013
 
FORO_FINANCIERO: Performance Management In Turbulent Times
FORO_FINANCIERO: Performance Management In Turbulent TimesFORO_FINANCIERO: Performance Management In Turbulent Times
FORO_FINANCIERO: Performance Management In Turbulent Times
 
Real insights real_results-steve_robinson
Real insights real_results-steve_robinsonReal insights real_results-steve_robinson
Real insights real_results-steve_robinson
 
Real Insights Real Results - Steve Robinson
Real Insights Real Results - Steve RobinsonReal Insights Real Results - Steve Robinson
Real Insights Real Results - Steve Robinson
 
Real insights real_results-steve_robinson
Real insights real_results-steve_robinsonReal insights real_results-steve_robinson
Real insights real_results-steve_robinson
 
Ibm software network2012 claudio cinquepalmi #ibmsocialbiz
Ibm software network2012 claudio cinquepalmi  #ibmsocialbiz Ibm software network2012 claudio cinquepalmi  #ibmsocialbiz
Ibm software network2012 claudio cinquepalmi #ibmsocialbiz
 
The Lean within Scrum
The Lean within ScrumThe Lean within Scrum
The Lean within Scrum
 
Advertising Networks & Exchanges - ad:tech, Singapore
Advertising Networks & Exchanges - ad:tech, SingaporeAdvertising Networks & Exchanges - ad:tech, Singapore
Advertising Networks & Exchanges - ad:tech, Singapore
 
jenkins.pptx
jenkins.pptxjenkins.pptx
jenkins.pptx
 

Plus de OpenSource Connections

How To Structure Your Search Team for Success
How To Structure Your Search Team for SuccessHow To Structure Your Search Team for Success
How To Structure Your Search Team for SuccessOpenSource Connections
 
The right path to making search relevant - Taxonomy Bootcamp London 2019
The right path to making search relevant  - Taxonomy Bootcamp London 2019The right path to making search relevant  - Taxonomy Bootcamp London 2019
The right path to making search relevant - Taxonomy Bootcamp London 2019OpenSource Connections
 
Haystack 2019 Lightning Talk - The Future of Quepid - Charlie Hull
Haystack 2019 Lightning Talk - The Future of Quepid - Charlie HullHaystack 2019 Lightning Talk - The Future of Quepid - Charlie Hull
Haystack 2019 Lightning Talk - The Future of Quepid - Charlie HullOpenSource Connections
 
Haystack 2019 Lightning Talk - State of Apache Tika - Tim Allison
Haystack 2019 Lightning Talk - State of Apache Tika - Tim AllisonHaystack 2019 Lightning Talk - State of Apache Tika - Tim Allison
Haystack 2019 Lightning Talk - State of Apache Tika - Tim AllisonOpenSource Connections
 
Haystack 2019 Lightning Talk - Relevance on 17 million full text documents - ...
Haystack 2019 Lightning Talk - Relevance on 17 million full text documents - ...Haystack 2019 Lightning Talk - Relevance on 17 million full text documents - ...
Haystack 2019 Lightning Talk - Relevance on 17 million full text documents - ...OpenSource Connections
 
Haystack 2019 Lightning Talk - Solr Cloud on Kubernetes - Manoj Bharadwaj
Haystack 2019 Lightning Talk - Solr Cloud on Kubernetes - Manoj BharadwajHaystack 2019 Lightning Talk - Solr Cloud on Kubernetes - Manoj Bharadwaj
Haystack 2019 Lightning Talk - Solr Cloud on Kubernetes - Manoj BharadwajOpenSource Connections
 
Haystack 2019 Lightning Talk - Quaerite a Search relevance evaluation toolkit...
Haystack 2019 Lightning Talk - Quaerite a Search relevance evaluation toolkit...Haystack 2019 Lightning Talk - Quaerite a Search relevance evaluation toolkit...
Haystack 2019 Lightning Talk - Quaerite a Search relevance evaluation toolkit...OpenSource Connections
 
Haystack 2019 - Search-based recommendations at Politico - Ryan Kohl
Haystack 2019 - Search-based recommendations at Politico - Ryan KohlHaystack 2019 - Search-based recommendations at Politico - Ryan Kohl
Haystack 2019 - Search-based recommendations at Politico - Ryan KohlOpenSource Connections
 
Haystack 2019 - Search with Vectors - Simon Hughes
Haystack 2019 - Search with Vectors - Simon HughesHaystack 2019 - Search with Vectors - Simon Hughes
Haystack 2019 - Search with Vectors - Simon HughesOpenSource Connections
 
Haystack 2019 - Natural Language Search with Knowledge Graphs - Trey Grainger
Haystack 2019 - Natural Language Search with Knowledge Graphs - Trey GraingerHaystack 2019 - Natural Language Search with Knowledge Graphs - Trey Grainger
Haystack 2019 - Natural Language Search with Knowledge Graphs - Trey GraingerOpenSource Connections
 
Haystack 2019 - Search Logs + Machine Learning = Auto-Tagging Inventory - Joh...
Haystack 2019 - Search Logs + Machine Learning = Auto-Tagging Inventory - Joh...Haystack 2019 - Search Logs + Machine Learning = Auto-Tagging Inventory - Joh...
Haystack 2019 - Search Logs + Machine Learning = Auto-Tagging Inventory - Joh...OpenSource Connections
 
Haystack 2019 - Improving Search Relevance with Numeric Features in Elasticse...
Haystack 2019 - Improving Search Relevance with Numeric Features in Elasticse...Haystack 2019 - Improving Search Relevance with Numeric Features in Elasticse...
Haystack 2019 - Improving Search Relevance with Numeric Features in Elasticse...OpenSource Connections
 
Haystack 2019 - Architectural considerations on search relevancy in the conte...
Haystack 2019 - Architectural considerations on search relevancy in the conte...Haystack 2019 - Architectural considerations on search relevancy in the conte...
Haystack 2019 - Architectural considerations on search relevancy in the conte...OpenSource Connections
 
Haystack 2019 - Custom Solr Query Parser Design Option, and Pros & Cons - Ber...
Haystack 2019 - Custom Solr Query Parser Design Option, and Pros & Cons - Ber...Haystack 2019 - Custom Solr Query Parser Design Option, and Pros & Cons - Ber...
Haystack 2019 - Custom Solr Query Parser Design Option, and Pros & Cons - Ber...OpenSource Connections
 
Haystack 2019 - Establishing a relevance focused culture in a large organizat...
Haystack 2019 - Establishing a relevance focused culture in a large organizat...Haystack 2019 - Establishing a relevance focused culture in a large organizat...
Haystack 2019 - Establishing a relevance focused culture in a large organizat...OpenSource Connections
 
Haystack 2019 - Solving for Satisfaction: Introduction to Click Models - Eliz...
Haystack 2019 - Solving for Satisfaction: Introduction to Click Models - Eliz...Haystack 2019 - Solving for Satisfaction: Introduction to Click Models - Eliz...
Haystack 2019 - Solving for Satisfaction: Introduction to Click Models - Eliz...OpenSource Connections
 
2019 Haystack - How The New York Times Tackles Relevance - Jeremiah Via
2019 Haystack - How The New York Times Tackles Relevance - Jeremiah Via2019 Haystack - How The New York Times Tackles Relevance - Jeremiah Via
2019 Haystack - How The New York Times Tackles Relevance - Jeremiah ViaOpenSource Connections
 

Plus de OpenSource Connections (20)

Encores
EncoresEncores
Encores
 
Test driven relevancy
Test driven relevancyTest driven relevancy
Test driven relevancy
 
How To Structure Your Search Team for Success
How To Structure Your Search Team for SuccessHow To Structure Your Search Team for Success
How To Structure Your Search Team for Success
 
The right path to making search relevant - Taxonomy Bootcamp London 2019
The right path to making search relevant  - Taxonomy Bootcamp London 2019The right path to making search relevant  - Taxonomy Bootcamp London 2019
The right path to making search relevant - Taxonomy Bootcamp London 2019
 
Payloads and OCR with Solr
Payloads and OCR with SolrPayloads and OCR with Solr
Payloads and OCR with Solr
 
Haystack 2019 Lightning Talk - The Future of Quepid - Charlie Hull
Haystack 2019 Lightning Talk - The Future of Quepid - Charlie HullHaystack 2019 Lightning Talk - The Future of Quepid - Charlie Hull
Haystack 2019 Lightning Talk - The Future of Quepid - Charlie Hull
 
Haystack 2019 Lightning Talk - State of Apache Tika - Tim Allison
Haystack 2019 Lightning Talk - State of Apache Tika - Tim AllisonHaystack 2019 Lightning Talk - State of Apache Tika - Tim Allison
Haystack 2019 Lightning Talk - State of Apache Tika - Tim Allison
 
Haystack 2019 Lightning Talk - Relevance on 17 million full text documents - ...
Haystack 2019 Lightning Talk - Relevance on 17 million full text documents - ...Haystack 2019 Lightning Talk - Relevance on 17 million full text documents - ...
Haystack 2019 Lightning Talk - Relevance on 17 million full text documents - ...
 
Haystack 2019 Lightning Talk - Solr Cloud on Kubernetes - Manoj Bharadwaj
Haystack 2019 Lightning Talk - Solr Cloud on Kubernetes - Manoj BharadwajHaystack 2019 Lightning Talk - Solr Cloud on Kubernetes - Manoj Bharadwaj
Haystack 2019 Lightning Talk - Solr Cloud on Kubernetes - Manoj Bharadwaj
 
Haystack 2019 Lightning Talk - Quaerite a Search relevance evaluation toolkit...
Haystack 2019 Lightning Talk - Quaerite a Search relevance evaluation toolkit...Haystack 2019 Lightning Talk - Quaerite a Search relevance evaluation toolkit...
Haystack 2019 Lightning Talk - Quaerite a Search relevance evaluation toolkit...
 
Haystack 2019 - Search-based recommendations at Politico - Ryan Kohl
Haystack 2019 - Search-based recommendations at Politico - Ryan KohlHaystack 2019 - Search-based recommendations at Politico - Ryan Kohl
Haystack 2019 - Search-based recommendations at Politico - Ryan Kohl
 
Haystack 2019 - Search with Vectors - Simon Hughes
Haystack 2019 - Search with Vectors - Simon HughesHaystack 2019 - Search with Vectors - Simon Hughes
Haystack 2019 - Search with Vectors - Simon Hughes
 
Haystack 2019 - Natural Language Search with Knowledge Graphs - Trey Grainger
Haystack 2019 - Natural Language Search with Knowledge Graphs - Trey GraingerHaystack 2019 - Natural Language Search with Knowledge Graphs - Trey Grainger
Haystack 2019 - Natural Language Search with Knowledge Graphs - Trey Grainger
 
Haystack 2019 - Search Logs + Machine Learning = Auto-Tagging Inventory - Joh...
Haystack 2019 - Search Logs + Machine Learning = Auto-Tagging Inventory - Joh...Haystack 2019 - Search Logs + Machine Learning = Auto-Tagging Inventory - Joh...
Haystack 2019 - Search Logs + Machine Learning = Auto-Tagging Inventory - Joh...
 
Haystack 2019 - Improving Search Relevance with Numeric Features in Elasticse...
Haystack 2019 - Improving Search Relevance with Numeric Features in Elasticse...Haystack 2019 - Improving Search Relevance with Numeric Features in Elasticse...
Haystack 2019 - Improving Search Relevance with Numeric Features in Elasticse...
 
Haystack 2019 - Architectural considerations on search relevancy in the conte...
Haystack 2019 - Architectural considerations on search relevancy in the conte...Haystack 2019 - Architectural considerations on search relevancy in the conte...
Haystack 2019 - Architectural considerations on search relevancy in the conte...
 
Haystack 2019 - Custom Solr Query Parser Design Option, and Pros & Cons - Ber...
Haystack 2019 - Custom Solr Query Parser Design Option, and Pros & Cons - Ber...Haystack 2019 - Custom Solr Query Parser Design Option, and Pros & Cons - Ber...
Haystack 2019 - Custom Solr Query Parser Design Option, and Pros & Cons - Ber...
 
Haystack 2019 - Establishing a relevance focused culture in a large organizat...
Haystack 2019 - Establishing a relevance focused culture in a large organizat...Haystack 2019 - Establishing a relevance focused culture in a large organizat...
Haystack 2019 - Establishing a relevance focused culture in a large organizat...
 
Haystack 2019 - Solving for Satisfaction: Introduction to Click Models - Eliz...
Haystack 2019 - Solving for Satisfaction: Introduction to Click Models - Eliz...Haystack 2019 - Solving for Satisfaction: Introduction to Click Models - Eliz...
Haystack 2019 - Solving for Satisfaction: Introduction to Click Models - Eliz...
 
2019 Haystack - How The New York Times Tackles Relevance - Jeremiah Via
2019 Haystack - How The New York Times Tackles Relevance - Jeremiah Via2019 Haystack - How The New York Times Tackles Relevance - Jeremiah Via
2019 Haystack - How The New York Times Tackles Relevance - Jeremiah Via
 

Dernier

DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 

Dernier (20)

DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 

Ci Presentation for SPIN

  • 1. Continuous Integration - A Framework for Better Quality Software Richmond SPIN Richmond Eric Pugh May 13th, 2009 1
  • 2. Who am I?  Principal of OpenSource Connections Contributer to CruiseControl and Continuum CI projects Member of Apache Software Foundation Presenter at many conferences including OSCON, ApacheCON, jTDS, ExpoQA Fascinated by the art of software development Continuous Integration RICHMOND, May 13, 2009 2
  • 3. What are we talking about? What is CI? Why does it matter to me? What do I need to use CI? Demonstration of Hudson Where does CI fit into the SPIN World? Questions! 3 Continuous Integration RICHMOND, May 13, 2009 3
  • 4. What is Continuous Integration? From Martin Fowler: “a fully automated and reproducible build, including testing, that runs many times a day”. http://martinfowler.com/articles/continuousIntegration.html 4 Continuous Integration RICHMOND, May 13, 2009 4
  • 5. Rapid Feedback < 10 minutos Continuous Integration RICHMOND, May 13, 2009 5
  • 6. How is CI important to different members of a team? 6 Continuous Integration RICHMOND, May 13, 2009 6
  • 7. Life of a programmer without CI...  Unstable code, integration is difficult Many build errors reported Only one person on the team can build the entire project Demonstrations require extensive planning Feedback cycle is long Every day is a struggle to be productive 7 Continuous Integration RICHMOND, May 13, 2009 7
  • 8. Life of a programmer with CI...  The build process is simple and repeatable Elimination of Human Error Demo’s are quick and easy Feedback cycle is very rapid Every day you know you can code! 8 Continuous Integration RICHMOND, May 13, 2009 8
  • 9. For a tester control   What is in the build?  What has changed between builds?  How do I verify functionality? 9 Continuous Integration RICHMOND, May 13, 2009 9
  • 10. For a Project Manager Visibility  10 Continuous Integration RICHMOND, May 13, 2009 10
  • 11. For a Project Manager 11 Continuous Integration RICHMOND, May 13, 2009 11
  • 12. For a development team security  12 Continuous Integration RICHMOND, May 13, 2009 12
  • 13. For a development team 13 Continuous Integration RICHMOND, May 13, 2009 13
  • 14. For a development team 14 Continuous Integration RICHMOND, May 13, 2009 14
  • 15. For a development team 15 Continuous Integration RICHMOND, May 13, 2009 15
  • 16. What is needed to get started? A dedicated machine Source Control Automated Build Script Method of notification 16 Continuous Integration RICHMOND, May 13, 2009 16
  • 17. What are the challenges to using CI? 17 Continuous Integration RICHMOND, May 13, 2009 17
  • 18. Challenge One: Cultural Change  CI needs a champion who acts as the ambassador to the leaders of the organization. Thought leaders in the organization who can help encourage developers to accept the process changes that CI brings  A very successful test case ¿A greenfield project if possible? 18 Continuous Integration RICHMOND, May 13, 2009 18
  • 19. Challenge Two: Environmental Difficulties  All the tests should be true unit tests, not integration tests  Few or no external dependencies  A beefy build server...  A strategy for deploying code into the CI environment Database changes are SIMPLE 19 Continuous Integration RICHMOND, May 13, 2009 19
  • 20. Challenge Three: Project Characteristics Fewer branches to the code makes life easier Many small code changes. Code is committed throughout the day. There are good unit test coverage. The code is ready for deployment, not in pieces. 20 Continuous Integration RICHMOND, May 13, 2009 20
  • 21. Challenge Four: Stability of CI Tool X The CI system must be as well maintained as the Source Control system. The CI system performs builds very quickly. Who has responsibility for CI? It’s very important to have a “throat to choke”. No false alarms. If there are false alarms then the developers lose confidence in the CI ✓ system. 21 Continuous Integration RICHMOND, May 13, 2009 21
  • 22. Demo of Hudson 22 Continuous Integration RICHMOND, May 13, 2009 22
  • 23. Where does CI fit into the SPIN World? 23 Continuous Integration RICHMOND, May 13, 2009 23
  • 24. CI Maturity Model? Fewer branches to the code makes life easier Many small code changes. Code is committed throughout the day. There are good unit test coverage. The code is ready for deployment, not in pieces. http://www.anthillpro.com/blogs/anthillpro-blog/2009/05/05/1241542860000.html 24 Continuous Integration RICHMOND, May 13, 2009 24
  • 25. Virtuous Circle? Metrics are hard to get Developers rebel against on high management Need good processes that support and encourage other good processes 25 Continuous Integration RICHMOND, May 13, 2009 25
  • 26. HackyStat 26 Continuous Integration RICHMOND, May 13, 2009 26
  • 27. Test Automation CI increases the rewards for doing test automation unit integration functional? system? 27 Continuous Integration RICHMOND, May 13, 2009 27
  • 28. Where to next?  Continuous Integration: Improving Software Quality and Reducing Risk CITConf is the conference for CI. This year it was April 24, 25 in Minneapolis, MN. Take a handout with reference links! 28 Continuous Integration RICHMOND, May 13, 2009 28
  • 29. Matrix of 22 differences in CI systems http://confluence.public.thoughtworks.org/display/CC/CI+Feature+Matrix 29 Continuous Integration RICHMOND, May 13, 2009 29
  • 30. Why CI? Eliminate human errors Tests that run frequently are more valuable A CI system is the foundation of a project status dashboard Eliminate integration problems! 30 Continuous Integration RICHMOND, May 13, 2009 30