SlideShare a Scribd company logo
Waterloo Agile Lean P2P Group Continuous Integration If it is so great why can't we make it work here? Leon Kehl February 16, 2010 Waterloo Ontario
Agenda What is Continuous Integration and its History? Demonstration of Continuous Integration Technology Continuous Integration & Lean Production  People and the Laws of Physics Continuous Integration Case Study
Martin Fowler's Definition Continuous Integration is a software development practice where members of a team integrate their work frequently, usually each person integrates at least daily - leading to multiple integrations per day. Each integration is verified by an automated build (including test) to detect integration errors as quickly as possible. Many teams find that this approach leads to significantly reduced integration problems and allows a team to develop cohesive software more rapidly.
History May date to the 60's when the IBM 360 team rebuilt the code base four times a day. Continuous integration was one of the practises of the C3 team which included Kent Beck in 1996 that introduced Extreme Programming. Martin Fowler wrote an article in 2000 which included the following: “The tests are integrated into a continuous integration and build process which yields a highly stable platform for future development.” CruiseControl 1.0 was released in March 2001.
Recommended practices Maintain a code repository Automate the build  Make the build self-testing Everyone commits every day Every commit (to mainline) should be built Keep the build fast Test in a clone of the production environment Make it easy to get the latest deliverables Everyone can see the results of the latest build Automate deployment
Today Wikipedia lists 35+ applications.  Originally written in Java, Cruisecontrol has been ported to .NET and Ruby and there is now a commercial version. Most are open source like Cruise Control but a number of commercial versions exist. CruiseControl driven primarily by a config.xml file, others more graphical
Quick Demonstration of CruiseControl Downloaded from  http://cruisecontrol.sourceforge.net/download.html Bundled with versions of Jetty and Ant Just unzip and run Controlled through config.xml file Granddaddy of tools, but easy to install and maintain.  Newer applications easier to configure with more bells and whistles
 
 
Features Monitors source repository for changes Builds based on changes or time based Automated build and test Emails success/failure Maintains history of builds Provides web interface to system
Advantages Easy to revert if bug encountered Detecting integration problems  Early warning for broken code Immediate unit testing Working version constantly available Focus developers on developing functional, quality code Disadvantages Initial setup time required Well-developed test-suite required for best utility
So what's the problem?
What are the goals of a  typical software build process?
What are the goals of a  typical software build process? Deliver a controlled build of the product to the user or testers Identify changes from previous versions for updates Traceability back to source code versions May include regular nightly builds to ensure product can be delivered
What are the goals of a  typical software build process? Deliver a controlled build of the product to the user or testers Identify changes from previous versions for updates Traceability back to source code versions May include regular nightly builds to ensure product can be delivered Focus is typically on delivering final build to customer, not on supporting the development of product or on interim quality standards
Is Continuous Integration  Equivalent to Kanban?
What lies beneath the water?
Software - Laws of Physics Inertia is the resistance of any physical object to a change in its state of motion.  For software systems; as a system is modified, its disorder, or entropy, always increases. This is known as software entropy
Example application of CI Existing legacy check processing application ported to Windows “combined” with another legacy application  “ Unit tests”  meant updating a 100 page Word document with a manual test for feature Testing changes involved going to test lab and running checks with physical hardware, setup could take an hour or longer Severe case of Software Entropy Significant problems in field, fixing issues and adding support for high speed transports Similar situation to C3 project
Greenfield redevelopment Able to utilize Agile methodologies, part of selling redevelopment to management Incorporated continuous integration from day 1 Build system, unit testing etc. were never separate deliverables but part of the process. Continuous integration included automated build, unit tests, integration tests and ran in under 5 minutes Nightly builds included documentation, code coverage and were added midproject
Successful application of CI Metaphor for project was eating an elephant in this case 110,000 lines of legacy code Version delivered for acceptance testing after 8 months Fairly long acceptance testing and rollout Approaches and techniques were applied in limited situations elsewhere
Continued support for Agile Senior leadership supportive of Agile, created a Build committee to improve build processes Several other teams were also working on continuous integration using variety of tools  Support for application transitioned from contract resources to all full-time for this project Agile consulting firm was engaged to analyze current processes
Manifesto for Agile  Software Development Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan
Manifesto for Agile  Software Development Individuals and interactions  over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan
Software - Laws of  Physics Revisited Inertia is the resistance of any physical object to a change in its state of motion.  For software systems; as a system is modified, its disorder, or entropy, always increases. This is known as software entropy  Iceberg Below the Surface Behaviour Mindsets Assumptions Habits Unwritten rules Culture
Trivial Pursuit Who knows what happened to the original C3 project at Chrysler?
Trivial Pursuit The plan was to roll out the system to different payroll 'populations' in stages, but C3 never managed to make another release despite two more years' development. The C3 system only ever paid 10,000 people (target was 85,000) Chrysler was bought out by Daimler-Benz in 1998. DaimlerChrysler stopped the C3 project on 1 February 2000. Frank Gerhardt, a manager at the company, announced to the XP conference in 2000 that DaimlerChrysler had de facto banned XP after shutting down C3; however, some time later DaimlerChrysler resumed the use of XP.
Law of Inertia Build committee struggled to get traction, focused on hardware, software tools Senior management to kickstart process engaged consulting resources.  $19K ant script was result Senior leader driving change left and new leader with different priorities took over Within a year project team was no longer using continuous integration or maintaining unit tests
Progress is not a straight line People from the C3 team spread out their knowledge, liking spreading seeds Other teams start to pick up aspects of continuous integration Continuous integration recreated  to successfully deliver next version Stories and the processes spread like we are doing today
Continious integration for  brownfield projects More normal situation is trying to inject continuous integration into existing process or project, rather than greenfield Goal is to look for simple defensible approaches to move towards the goal No cookie cutter solutions, rather look for opportunities, points of leverage, allies, problems that CI would help with Use skunkworks if necessary, get creative
Behaviour modification example  Team with 20 plus developers, half contract Large rewrite project, used existing build processes with addition of Cruisecontrol Build process typically was an hour plus, with no unit tests Integrations typically took weeks, build was typically broken for days
The solution  Lava lamps Optimizing integration build to  match developer build Impact of Change Dropped build times to 20 minutes Eliminated build problems Broken builds became rare occurrences
Your turn Break up into small groups for case study Ten minutes to talk about tactics or approaches to move towards integration Five minutes sharing results Case study is intended to give you only the surface details.  Feel free to ask questions for additional details
Concluding Remarks Agile and Continuous are people centric so success depends on them.  Seek out allies! Don't rely on management to make things happen or enforce team norms Skunkworks if necessary What you measure counts so make visible to the team and management what you want changed  Tools are necessary but won't determine success.  Hockey stick is required to play but doesn't mean  your team will win Failure leads to success.  Progress is never linear
In conclusion The significant problems we face cannot be solved at the same level of thinking we were at when we created them Things should be as simple as possible, but not simpler I am neither especially clever nor especially gifted. I am only very, very curious Albert Einstein

More Related Content

PPTX
Building an automated database deployment pipeline
PDF
Get Mapped: Using Value Stream Mapping to Create a DevOps Adoption Roadmap
PDF
Using Lean Thinking to Identify and Address Delivery Pipeline Bottlenecks
PDF
DevOps and the Case for ROI to Executives
PPTX
DevOps - an Agile Perspective (at Scale)
PDF
How BDD enables True CI/CD
PDF
Building a DevOps Team that Isn't Evil
PDF
A Continuous Delivery Safety Net for Databases
Building an automated database deployment pipeline
Get Mapped: Using Value Stream Mapping to Create a DevOps Adoption Roadmap
Using Lean Thinking to Identify and Address Delivery Pipeline Bottlenecks
DevOps and the Case for ROI to Executives
DevOps - an Agile Perspective (at Scale)
How BDD enables True CI/CD
Building a DevOps Team that Isn't Evil
A Continuous Delivery Safety Net for Databases

What's hot (19)

PPT
Agile Engineering Practices
PPTX
ACT-IAC Partners #GovDevOps: PTO - agile - and DevOps
PDF
Sea spin5 2013
PPTX
Continuous Delivery in the Enterprise
PPTX
Starting and Scaling DevOps
PDF
Introduction to DevOps
PPTX
DevOps Overview in my own words
PDF
DevOps adoption in the enterprise
PDF
Building a DevOps Team that isn't Evil
PPTX
Tailoring your SDLC for DevOps, Agile and more
PPTX
SDLC & DevOps Transformation with Agile
PPTX
2016.06 ACT-IAC Partners breakfast: GSA's 18F on DevOps delivery
PPTX
DevOps 101 - IBM Impact 2014
PDF
Continuous Everything
PPTX
Continuous Delivery Maturity Model
PPTX
Dev ops culture and practices
PDF
Adopting DevOps for 2-Speed IT
PPTX
Making the business case for DevOps
PDF
DevOps Transformation - Another View
Agile Engineering Practices
ACT-IAC Partners #GovDevOps: PTO - agile - and DevOps
Sea spin5 2013
Continuous Delivery in the Enterprise
Starting and Scaling DevOps
Introduction to DevOps
DevOps Overview in my own words
DevOps adoption in the enterprise
Building a DevOps Team that isn't Evil
Tailoring your SDLC for DevOps, Agile and more
SDLC & DevOps Transformation with Agile
2016.06 ACT-IAC Partners breakfast: GSA's 18F on DevOps delivery
DevOps 101 - IBM Impact 2014
Continuous Everything
Continuous Delivery Maturity Model
Dev ops culture and practices
Adopting DevOps for 2-Speed IT
Making the business case for DevOps
DevOps Transformation - Another View
Ad

Viewers also liked (9)

PDF
Mark meninger-feb-2010
PPT
PPTX
Question 3 by Sarah Mohamed
PPTX
Organizational culture-formatted-april-2010
PDF
Dingle dell-fr
PDF
Compte rendu photos tests bottes de paille - ROMAGNE SEPTEMBRE 2014
PDF
Fr outil 7 compte rendu photos blocs de chanvre et enduit chaux
PDF
fiche pédagogique torchis
PDF
Muël fr
Mark meninger-feb-2010
Question 3 by Sarah Mohamed
Organizational culture-formatted-april-2010
Dingle dell-fr
Compte rendu photos tests bottes de paille - ROMAGNE SEPTEMBRE 2014
Fr outil 7 compte rendu photos blocs de chanvre et enduit chaux
fiche pédagogique torchis
Muël fr
Ad

Similar to Continous integration-leon-kehl-2010 (20)

PDF
Dev ops in agile - 1st Conference Melbourne
PDF
What is Continuous Integration_ - A Comprehensive Guide.pdf
PPTX
DevOps and Build Automation
PPTX
DevOps: Age Of CI/CD
PPT
Continuous Integration
PPTX
IBM i Application Lifecycle Management with Remain Software
PPTX
How Azure DevOps can boost your organization's productivity
PPTX
Agile Tour Dublin 2013 - Product Lines and Agile
PDF
An introduction to DevOps
PDF
Continuous integration - stability, reliability and speed in software develop...
PDF
Continuous Integration
PDF
3784_Streamlining_the_development_process_with_feature_flighting_and_Azure_cl...
PDF
Api gitlab: configurazione dei progetti as a service
PPTX
Continuous integration with Jenkins
PDF
Devops interview-questions-PDF
PPTX
Introducing Continuous Integration Using Vsts
ODP
Agile Engineering
PDF
DevOps in Regulated Industries: Speed with Compliance
PDF
Mastering Modern Software Delivery The Essential Guide to CICD Pipelines.pdf
PDF
Migrating to Cloud: Inhouse Hadoop to Databricks (3)
Dev ops in agile - 1st Conference Melbourne
What is Continuous Integration_ - A Comprehensive Guide.pdf
DevOps and Build Automation
DevOps: Age Of CI/CD
Continuous Integration
IBM i Application Lifecycle Management with Remain Software
How Azure DevOps can boost your organization's productivity
Agile Tour Dublin 2013 - Product Lines and Agile
An introduction to DevOps
Continuous integration - stability, reliability and speed in software develop...
Continuous Integration
3784_Streamlining_the_development_process_with_feature_flighting_and_Azure_cl...
Api gitlab: configurazione dei progetti as a service
Continuous integration with Jenkins
Devops interview-questions-PDF
Introducing Continuous Integration Using Vsts
Agile Engineering
DevOps in Regulated Industries: Speed with Compliance
Mastering Modern Software Delivery The Essential Guide to CICD Pipelines.pdf
Migrating to Cloud: Inhouse Hadoop to Databricks (3)

Continous integration-leon-kehl-2010

  • 1. Waterloo Agile Lean P2P Group Continuous Integration If it is so great why can't we make it work here? Leon Kehl February 16, 2010 Waterloo Ontario
  • 2. Agenda What is Continuous Integration and its History? Demonstration of Continuous Integration Technology Continuous Integration & Lean Production People and the Laws of Physics Continuous Integration Case Study
  • 3. Martin Fowler's Definition Continuous Integration is a software development practice where members of a team integrate their work frequently, usually each person integrates at least daily - leading to multiple integrations per day. Each integration is verified by an automated build (including test) to detect integration errors as quickly as possible. Many teams find that this approach leads to significantly reduced integration problems and allows a team to develop cohesive software more rapidly.
  • 4. History May date to the 60's when the IBM 360 team rebuilt the code base four times a day. Continuous integration was one of the practises of the C3 team which included Kent Beck in 1996 that introduced Extreme Programming. Martin Fowler wrote an article in 2000 which included the following: “The tests are integrated into a continuous integration and build process which yields a highly stable platform for future development.” CruiseControl 1.0 was released in March 2001.
  • 5. Recommended practices Maintain a code repository Automate the build Make the build self-testing Everyone commits every day Every commit (to mainline) should be built Keep the build fast Test in a clone of the production environment Make it easy to get the latest deliverables Everyone can see the results of the latest build Automate deployment
  • 6. Today Wikipedia lists 35+ applications. Originally written in Java, Cruisecontrol has been ported to .NET and Ruby and there is now a commercial version. Most are open source like Cruise Control but a number of commercial versions exist. CruiseControl driven primarily by a config.xml file, others more graphical
  • 7. Quick Demonstration of CruiseControl Downloaded from http://cruisecontrol.sourceforge.net/download.html Bundled with versions of Jetty and Ant Just unzip and run Controlled through config.xml file Granddaddy of tools, but easy to install and maintain. Newer applications easier to configure with more bells and whistles
  • 8.  
  • 9.  
  • 10. Features Monitors source repository for changes Builds based on changes or time based Automated build and test Emails success/failure Maintains history of builds Provides web interface to system
  • 11. Advantages Easy to revert if bug encountered Detecting integration problems Early warning for broken code Immediate unit testing Working version constantly available Focus developers on developing functional, quality code Disadvantages Initial setup time required Well-developed test-suite required for best utility
  • 12. So what's the problem?
  • 13. What are the goals of a typical software build process?
  • 14. What are the goals of a typical software build process? Deliver a controlled build of the product to the user or testers Identify changes from previous versions for updates Traceability back to source code versions May include regular nightly builds to ensure product can be delivered
  • 15. What are the goals of a typical software build process? Deliver a controlled build of the product to the user or testers Identify changes from previous versions for updates Traceability back to source code versions May include regular nightly builds to ensure product can be delivered Focus is typically on delivering final build to customer, not on supporting the development of product or on interim quality standards
  • 16. Is Continuous Integration Equivalent to Kanban?
  • 17. What lies beneath the water?
  • 18. Software - Laws of Physics Inertia is the resistance of any physical object to a change in its state of motion. For software systems; as a system is modified, its disorder, or entropy, always increases. This is known as software entropy
  • 19. Example application of CI Existing legacy check processing application ported to Windows “combined” with another legacy application “ Unit tests” meant updating a 100 page Word document with a manual test for feature Testing changes involved going to test lab and running checks with physical hardware, setup could take an hour or longer Severe case of Software Entropy Significant problems in field, fixing issues and adding support for high speed transports Similar situation to C3 project
  • 20. Greenfield redevelopment Able to utilize Agile methodologies, part of selling redevelopment to management Incorporated continuous integration from day 1 Build system, unit testing etc. were never separate deliverables but part of the process. Continuous integration included automated build, unit tests, integration tests and ran in under 5 minutes Nightly builds included documentation, code coverage and were added midproject
  • 21. Successful application of CI Metaphor for project was eating an elephant in this case 110,000 lines of legacy code Version delivered for acceptance testing after 8 months Fairly long acceptance testing and rollout Approaches and techniques were applied in limited situations elsewhere
  • 22. Continued support for Agile Senior leadership supportive of Agile, created a Build committee to improve build processes Several other teams were also working on continuous integration using variety of tools Support for application transitioned from contract resources to all full-time for this project Agile consulting firm was engaged to analyze current processes
  • 23. Manifesto for Agile Software Development Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan
  • 24. Manifesto for Agile Software Development Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan
  • 25. Software - Laws of Physics Revisited Inertia is the resistance of any physical object to a change in its state of motion. For software systems; as a system is modified, its disorder, or entropy, always increases. This is known as software entropy Iceberg Below the Surface Behaviour Mindsets Assumptions Habits Unwritten rules Culture
  • 26. Trivial Pursuit Who knows what happened to the original C3 project at Chrysler?
  • 27. Trivial Pursuit The plan was to roll out the system to different payroll 'populations' in stages, but C3 never managed to make another release despite two more years' development. The C3 system only ever paid 10,000 people (target was 85,000) Chrysler was bought out by Daimler-Benz in 1998. DaimlerChrysler stopped the C3 project on 1 February 2000. Frank Gerhardt, a manager at the company, announced to the XP conference in 2000 that DaimlerChrysler had de facto banned XP after shutting down C3; however, some time later DaimlerChrysler resumed the use of XP.
  • 28. Law of Inertia Build committee struggled to get traction, focused on hardware, software tools Senior management to kickstart process engaged consulting resources. $19K ant script was result Senior leader driving change left and new leader with different priorities took over Within a year project team was no longer using continuous integration or maintaining unit tests
  • 29. Progress is not a straight line People from the C3 team spread out their knowledge, liking spreading seeds Other teams start to pick up aspects of continuous integration Continuous integration recreated to successfully deliver next version Stories and the processes spread like we are doing today
  • 30. Continious integration for brownfield projects More normal situation is trying to inject continuous integration into existing process or project, rather than greenfield Goal is to look for simple defensible approaches to move towards the goal No cookie cutter solutions, rather look for opportunities, points of leverage, allies, problems that CI would help with Use skunkworks if necessary, get creative
  • 31. Behaviour modification example Team with 20 plus developers, half contract Large rewrite project, used existing build processes with addition of Cruisecontrol Build process typically was an hour plus, with no unit tests Integrations typically took weeks, build was typically broken for days
  • 32. The solution Lava lamps Optimizing integration build to match developer build Impact of Change Dropped build times to 20 minutes Eliminated build problems Broken builds became rare occurrences
  • 33. Your turn Break up into small groups for case study Ten minutes to talk about tactics or approaches to move towards integration Five minutes sharing results Case study is intended to give you only the surface details. Feel free to ask questions for additional details
  • 34. Concluding Remarks Agile and Continuous are people centric so success depends on them. Seek out allies! Don't rely on management to make things happen or enforce team norms Skunkworks if necessary What you measure counts so make visible to the team and management what you want changed Tools are necessary but won't determine success. Hockey stick is required to play but doesn't mean your team will win Failure leads to success. Progress is never linear
  • 35. In conclusion The significant problems we face cannot be solved at the same level of thinking we were at when we created them Things should be as simple as possible, but not simpler I am neither especially clever nor especially gifted. I am only very, very curious Albert Einstein