SlideShare a Scribd company logo
1 of 39
Download to read offline
Continuous Delivery
     Enabling Agile
Tomas Riha


        Architect @ VGT/WirelessCar
           MAJOR Project Liability
  Passionate about change and improvement
                Skiing feeder

             mail: triha74@gmail.com
             twitter: @TomasRihaSE
blog: continuous-delivery-and-more.blogspot.com
Agenda

   Intro to Continuous Delivery

Principles of Continuous Delivery

         Look at a Pipe

        Impact on Scrum

  Feature Driven Development

Impact on Developers and Testers
Continuous Delivery




Build          Release        Deploy           Test              Prod




        Your application always builds, passes its unit tests,
                deploys and passes system tests.
Why we want frequent releases


            Faster Time to market

    Easier to understand impact of delivery
    Lower complexity due to less changes

    Unreleased code is cost without value
Continuous Integration/Delivery/Deploy

                       Continuous Integration
           Your application always builds and passes its unit tests.


                         Continuous Delivery
 Your application always builds, passes its unit tests, deploys and passes its
system tests making it always ready to deploy to production through a largely
                            automated process


                       Continuous Deployment
Your application automatically deploys to production through a fully automated
                                   process
Continuously as in all the time?


                   Yes!

      End of sprint isn't continuously.
        Weekly isn't continuously.
        Nightly isn't continuously.
What Tests? Unit? Component? System?




                                 Yes!

All of it and eventually you will add Rollback, Load and Failover as well.
Principles of Continuous Delivery




1. The process MUST be repeatable and reliable
Principles of Continuous Delivery




       2. Automate everything
Principles of Continuous Delivery




3. If something is difficult or painful, do i more often
Principles of Continuous Delivery




4. Keep everything in source control AND release it.
Principles of Continuous Delivery




      5. Done means released
Principles of Continuous Delivery




         6. Build Quality In
Principles of Continuous Delivery




            7. Fail Fast
Principles of Continuous Delivery




8. Everybody has responsibility for the release process
Principles of Continuous Delivery




       9. Improve continously
The pipe - Build once!


Build        Release




        Build and Unit test then release it!
The pipe - Release everything!
Feedback       Feedback



 Build        Release                       Code



 Build        Release                       DB Scripts



 Build        Release                       Server Config



 Build        Release                       Deploy script
The pipe -Bundle released artifacts
                        Feedback



Build     Release




Build     Release

                    Assembly
Build     Release




Build     Release
The pipe - Use Same Deploy Mechanism


                             Feedback        Feedback



                          Function Test
             Feedback



  Assembly   Deploy       Function Test   Pipe Status




                          Function Test



                 Server


                  DB
The pipe - Use Same Deploy Mechanism



                 Pre Prod                                Prod
                Feedback             Feedback          Feedback



Pipe Status       Deploy              UAT                Deploy




              Server        Server     Server        Server   Server        Server



                       DB                       DB                     DB
Continuous Delivery

                          Summary
                         We build once
                      Release everything
                      Automate everything
                         Fast feedback
                  Automate all tests except UAT



                                                            Deploy
Build   Release     Assemble      Deploy          Test
                                                         PreProd/Prod
Obvious benefits
        Continuous Regression testing gives instant feedback.

Continuously deploying to test servers tests deploy mechanism several
                     hundred times per release.

             Always ready to push new release into UAT
Common problem with many Agile projects


                 Sprint 2-4 weeks

      Pre        Dev         Sys Test   Reg Test
      Planning



                                        Pre        Dev   Sys Test   Reg Test
                                        Planning




  Scrummerfall happens because its hard for developers to have
         something deployable for the testers to test.

System testing on something that has not been regression tested is
                     fundamentally flawed.

       Cost of regression test tends to bloat sprint content.
Continuous Delivery - Feature Verification
                                                     When a
                                                     feature is
                           Continuously              done

                Pre         Dev           Reg Test      System Test
                Planning




Continuous Regression means that all feature verification is always done
                    on a functioning application.

 Forces Test Driven Development as the gap in time between Reg Test
and Verification of new features leaves untested code in the application.
Continuous Delivery - Impact on Scrum

             Feature cycle                                       Feature cycle

 Pre          Dev            Reg Test   System Test   Pre         Dev            Reg Test   System Test
 Planning                                             Planning




                     No need for any code freeze period.
Short sprints are possible since there is no need for long regression test period

          Features can be planned at start or just before feature start.
        Features can be done and "released" but not delivered until sprint.
         Features can be developed serially or in parallel within a sprint.
Continuous Delivery - Impact on Scrum

Features can be done and "released" but not delivered until sprint.
                        Breaks continuous delivery?
                  Don't we want to continuously deliver to UAT?
                  Undelivered code is a cost without value!


            IF you stick to scrum do NOT submit to mid sprint releases
Continuous Delivery - Impact on Scrum

   Scrum is based on developing a feature set without
  distraction, mid sprint releases are a huge distraction.
      Working towards two deadlines within one sprint causes stress.

Discussion about what features will be done for the mid sprint release are a
                        distraction and time sink.

Deploying what happens to be ready isnt so bad in theory, in reality Product
                 owner will expect features at mid sprint.
Continuous Delivery - Feature driven
           development
                   Feature cycle

      Pre              Dev         Reg Test    System Test
      Planning

                   Feature cycle

      Pre                    Dev              Reg Test       System Test
      Planning




Feature driven development is very natural
   Analyze, Design, Develop+Test, Deliver to UAT

     Development can be done serial or parallel

                 No done and unreleased code
Continuous Delivery - Continuous
                 Responsibility


Developers have to take responsibility for their check ins.
  Regression test before commit, make a smoke test suite for fast feedback

           Never just change regression tests to make them work

                      Evolve new tests with the code
Continuous Delivery - Continuous
         Responsibility



If we break the pipe we need to fix it ASAP
Things will break, things should break, when it does fix it!

                Never leave the pipe red!
Continuous Delivery - Continuous
                    Responsibility



                         Portability and visiblity

Pipe has to be portable in order for developers to be able to take responsibility.

                        Fast feedback has to be visible.
Continuous Delivery & Test Driven
            Development

Time Gap between code commit of new feature and
   execution of test case needs to be minimal.

       If it´s green it needs to go into regression suite ASAP
  If there is a bug equally it needs to be reported equally ASAP

    Developing tests in parallel with code minimizes the gap.
Continuous Delivery & Test Driven
         Development

    Who should automate the tests?

        Test Design - Done by Testers
       Test automation - Done by ????
        Coding - Done by Developers
Continuous Delivery & Test Driven
         Development


     Tomorrow Agile Team Member

         Developers with Testing skills
                      alt
        Testers with Development skills

WILL BE SUPER HOT AND EARN SUPER NICE $$$$
                    :)
Benefits
        Continuous Regression testing gives instant feedback.

Continuously deploying to test servers tests deploy mechanism several
                     hundred times per release.

             Always ready to push new release into UAT

                      Test Driven Development

              Continuous Responsibility by Developers

                         Sustainable Quality
Good Reading
    Continuous Delivery by Jez Humble & Dave Farley




http://www.amazon.com/dp/0321601912?tag=contindelive-20
Thats it!




http://continuous-delivery-and-more.blogspot.com/2013/02/talk-at-af-consult-2013-01-12.html


       Feedback & Any questions you forgot to ask?

More Related Content

What's hot

Shirly Ronen - Documenting an agile defect
Shirly Ronen - Documenting an agile defectShirly Ronen - Documenting an agile defect
Shirly Ronen - Documenting an agile defectAgileSparks
 
Pivotal Labs Open View Presentation Quality Assurance And Developer Testing
Pivotal Labs Open View Presentation Quality Assurance And Developer TestingPivotal Labs Open View Presentation Quality Assurance And Developer Testing
Pivotal Labs Open View Presentation Quality Assurance And Developer Testingguestc8adce
 
Agile Testing Introduction
Agile Testing IntroductionAgile Testing Introduction
Agile Testing IntroductionHai Tran Son
 
Pivotal Labs Open View Presentation Continuous Build
Pivotal Labs Open View Presentation Continuous BuildPivotal Labs Open View Presentation Continuous Build
Pivotal Labs Open View Presentation Continuous Buildguestc8adce
 
Release Automation: Better Quality, Faster Deployment, Amazing ROI
Release Automation: Better Quality, Faster Deployment, Amazing ROIRelease Automation: Better Quality, Faster Deployment, Amazing ROI
Release Automation: Better Quality, Faster Deployment, Amazing ROITechWell
 
Releasing fast code - The DevOps approach
Releasing fast code - The DevOps approachReleasing fast code - The DevOps approach
Releasing fast code - The DevOps approachMichael Kopp
 
Qa in CI/CD
Qa in CI/CDQa in CI/CD
Qa in CI/CDAdsmurai
 
Continuous Delivery: why ? where to start ? how to scale ?
Continuous Delivery: why ? where to start ? how to scale ?Continuous Delivery: why ? where to start ? how to scale ?
Continuous Delivery: why ? where to start ? how to scale ?Jean-Philippe Briend
 
Continuous Delivery at Oracle Database Insights
Continuous Delivery at Oracle Database InsightsContinuous Delivery at Oracle Database Insights
Continuous Delivery at Oracle Database InsightsMichael Medin
 
DevOps and Build Automation
DevOps and Build AutomationDevOps and Build Automation
DevOps and Build AutomationHeiswayi Nrird
 
Build & Release Engineering
Build & Release Engineering Build & Release Engineering
Build & Release Engineering Pranesh Vittal
 
Automate your way to agility
Automate your way to agilityAutomate your way to agility
Automate your way to agilityYuval Yeret
 
Mobile Apps development best practices. TDD, CI, CD
Mobile Apps development best practices. TDD, CI, CDMobile Apps development best practices. TDD, CI, CD
Mobile Apps development best practices. TDD, CI, CDGlobalLogic Ukraine
 
Understand release engineering
Understand release engineeringUnderstand release engineering
Understand release engineeringgaoliang641
 
Continuous Integration - Oracle Database Objects
Continuous Integration - Oracle Database ObjectsContinuous Integration - Oracle Database Objects
Continuous Integration - Oracle Database ObjectsPrabhu Ramasamy
 

What's hot (20)

Shirly Ronen - Documenting an agile defect
Shirly Ronen - Documenting an agile defectShirly Ronen - Documenting an agile defect
Shirly Ronen - Documenting an agile defect
 
Pivotal Labs Open View Presentation Quality Assurance And Developer Testing
Pivotal Labs Open View Presentation Quality Assurance And Developer TestingPivotal Labs Open View Presentation Quality Assurance And Developer Testing
Pivotal Labs Open View Presentation Quality Assurance And Developer Testing
 
2012 01-jenkins-udeploy
2012 01-jenkins-udeploy2012 01-jenkins-udeploy
2012 01-jenkins-udeploy
 
The Eclipse Way
The Eclipse WayThe Eclipse Way
The Eclipse Way
 
Agile Testing Introduction
Agile Testing IntroductionAgile Testing Introduction
Agile Testing Introduction
 
Pivotal Labs Open View Presentation Continuous Build
Pivotal Labs Open View Presentation Continuous BuildPivotal Labs Open View Presentation Continuous Build
Pivotal Labs Open View Presentation Continuous Build
 
Release Automation: Better Quality, Faster Deployment, Amazing ROI
Release Automation: Better Quality, Faster Deployment, Amazing ROIRelease Automation: Better Quality, Faster Deployment, Amazing ROI
Release Automation: Better Quality, Faster Deployment, Amazing ROI
 
Releasing fast code - The DevOps approach
Releasing fast code - The DevOps approachReleasing fast code - The DevOps approach
Releasing fast code - The DevOps approach
 
Qa in CI/CD
Qa in CI/CDQa in CI/CD
Qa in CI/CD
 
Continuous Delivery: why ? where to start ? how to scale ?
Continuous Delivery: why ? where to start ? how to scale ?Continuous Delivery: why ? where to start ? how to scale ?
Continuous Delivery: why ? where to start ? how to scale ?
 
Unit Testing
Unit TestingUnit Testing
Unit Testing
 
Continuous Delivery at Oracle Database Insights
Continuous Delivery at Oracle Database InsightsContinuous Delivery at Oracle Database Insights
Continuous Delivery at Oracle Database Insights
 
DevOps and Build Automation
DevOps and Build AutomationDevOps and Build Automation
DevOps and Build Automation
 
Build & Release Engineering
Build & Release Engineering Build & Release Engineering
Build & Release Engineering
 
Automate your way to agility
Automate your way to agilityAutomate your way to agility
Automate your way to agility
 
Testing
TestingTesting
Testing
 
"DevOps > CI+CD "
"DevOps > CI+CD ""DevOps > CI+CD "
"DevOps > CI+CD "
 
Mobile Apps development best practices. TDD, CI, CD
Mobile Apps development best practices. TDD, CI, CDMobile Apps development best practices. TDD, CI, CD
Mobile Apps development best practices. TDD, CI, CD
 
Understand release engineering
Understand release engineeringUnderstand release engineering
Understand release engineering
 
Continuous Integration - Oracle Database Objects
Continuous Integration - Oracle Database ObjectsContinuous Integration - Oracle Database Objects
Continuous Integration - Oracle Database Objects
 

Similar to Continuous delivery @åf consult

Continuous Delivery Testing @HiQ
Continuous Delivery Testing @HiQContinuous Delivery Testing @HiQ
Continuous Delivery Testing @HiQTomas Riha
 
Continuous Delivery in the real world - techniques to reduce the developers b...
Continuous Delivery in the real world - techniques to reduce the developers b...Continuous Delivery in the real world - techniques to reduce the developers b...
Continuous Delivery in the real world - techniques to reduce the developers b...Nikolai Blackie
 
product Qa workflow
product Qa workflowproduct Qa workflow
product Qa workflowtanvir afzal
 
Linuxtag 2012 - continuous delivery - dream to reality
Linuxtag 2012  - continuous delivery - dream to realityLinuxtag 2012  - continuous delivery - dream to reality
Linuxtag 2012 - continuous delivery - dream to realityClément Escoffier
 
Continuous delivery its not about the technology, its about the people.
Continuous delivery its not about the technology, its about the people.Continuous delivery its not about the technology, its about the people.
Continuous delivery its not about the technology, its about the people.Tomas Riha
 
Continous integration and delivery for single page applications
Continous integration and delivery for single page applicationsContinous integration and delivery for single page applications
Continous integration and delivery for single page applicationsSunil Dalal
 
Continuous Deployment at Etsy — TimesOpen NYC
Continuous Deployment at Etsy — TimesOpen NYCContinuous Deployment at Etsy — TimesOpen NYC
Continuous Deployment at Etsy — TimesOpen NYCMike Brittain
 
The Evolution of Agile - Continuous Delivery - Extending Agile out to Product...
The Evolution of Agile - Continuous Delivery - Extending Agile out to Product...The Evolution of Agile - Continuous Delivery - Extending Agile out to Product...
The Evolution of Agile - Continuous Delivery - Extending Agile out to Product...Burns Sheehan
 
Our DevOps Journey: 6 Month Waterfalls to 1 Hour Code Deploys
Our DevOps Journey: 6 Month Waterfalls to 1 Hour Code DeploysOur DevOps Journey: 6 Month Waterfalls to 1 Hour Code Deploys
Our DevOps Journey: 6 Month Waterfalls to 1 Hour Code DeploysDynatrace
 
Principles and Practices in Continuous Deployment at Etsy
Principles and Practices in Continuous Deployment at EtsyPrinciples and Practices in Continuous Deployment at Etsy
Principles and Practices in Continuous Deployment at EtsyMike Brittain
 
Relay health build system
Relay health build systemRelay health build system
Relay health build systemroncordell
 
Neotys PAC 2018 - Ramya Ramalinga Moorthy
Neotys PAC 2018 - Ramya Ramalinga MoorthyNeotys PAC 2018 - Ramya Ramalinga Moorthy
Neotys PAC 2018 - Ramya Ramalinga MoorthyNeotys_Partner
 
DevOps Continuous Integration & Delivery - A Whitepaper by RapidValue
DevOps Continuous Integration & Delivery - A Whitepaper by RapidValueDevOps Continuous Integration & Delivery - A Whitepaper by RapidValue
DevOps Continuous Integration & Delivery - A Whitepaper by RapidValueRapidValue
 
Continuous delivery its not about the technology, its about the people. @pipe...
Continuous delivery its not about the technology, its about the people. @pipe...Continuous delivery its not about the technology, its about the people. @pipe...
Continuous delivery its not about the technology, its about the people. @pipe...Tomas Riha
 
Shift left - find defects earlier through automated test and deployment
Shift left - find defects earlier through automated test and deploymentShift left - find defects earlier through automated test and deployment
Shift left - find defects earlier through automated test and deploymentClaudia Ring
 
Continuous deployment
Continuous deploymentContinuous deployment
Continuous deploymentMshwalbe
 
Continuous Everything
Continuous EverythingContinuous Everything
Continuous EverythingAndrea Tino
 
Continuous delivery its not about the technology, its about the people. @sats...
Continuous delivery its not about the technology, its about the people. @sats...Continuous delivery its not about the technology, its about the people. @sats...
Continuous delivery its not about the technology, its about the people. @sats...Tomas Riha
 
Agile Engineering Sparker GLASScon 2015
Agile Engineering Sparker GLASScon 2015Agile Engineering Sparker GLASScon 2015
Agile Engineering Sparker GLASScon 2015Stephen Ritchie
 

Similar to Continuous delivery @åf consult (20)

Continuous Delivery Testing @HiQ
Continuous Delivery Testing @HiQContinuous Delivery Testing @HiQ
Continuous Delivery Testing @HiQ
 
Continuous Delivery in the real world - techniques to reduce the developers b...
Continuous Delivery in the real world - techniques to reduce the developers b...Continuous Delivery in the real world - techniques to reduce the developers b...
Continuous Delivery in the real world - techniques to reduce the developers b...
 
product Qa workflow
product Qa workflowproduct Qa workflow
product Qa workflow
 
Linuxtag 2012 - continuous delivery - dream to reality
Linuxtag 2012  - continuous delivery - dream to realityLinuxtag 2012  - continuous delivery - dream to reality
Linuxtag 2012 - continuous delivery - dream to reality
 
Continuous delivery its not about the technology, its about the people.
Continuous delivery its not about the technology, its about the people.Continuous delivery its not about the technology, its about the people.
Continuous delivery its not about the technology, its about the people.
 
Continous integration and delivery for single page applications
Continous integration and delivery for single page applicationsContinous integration and delivery for single page applications
Continous integration and delivery for single page applications
 
Continuous Deployment at Etsy — TimesOpen NYC
Continuous Deployment at Etsy — TimesOpen NYCContinuous Deployment at Etsy — TimesOpen NYC
Continuous Deployment at Etsy — TimesOpen NYC
 
The Evolution of Agile - Continuous Delivery - Extending Agile out to Product...
The Evolution of Agile - Continuous Delivery - Extending Agile out to Product...The Evolution of Agile - Continuous Delivery - Extending Agile out to Product...
The Evolution of Agile - Continuous Delivery - Extending Agile out to Product...
 
Our DevOps Journey: 6 Month Waterfalls to 1 Hour Code Deploys
Our DevOps Journey: 6 Month Waterfalls to 1 Hour Code DeploysOur DevOps Journey: 6 Month Waterfalls to 1 Hour Code Deploys
Our DevOps Journey: 6 Month Waterfalls to 1 Hour Code Deploys
 
Principles and Practices in Continuous Deployment at Etsy
Principles and Practices in Continuous Deployment at EtsyPrinciples and Practices in Continuous Deployment at Etsy
Principles and Practices in Continuous Deployment at Etsy
 
Relay health build system
Relay health build systemRelay health build system
Relay health build system
 
Neotys PAC 2018 - Ramya Ramalinga Moorthy
Neotys PAC 2018 - Ramya Ramalinga MoorthyNeotys PAC 2018 - Ramya Ramalinga Moorthy
Neotys PAC 2018 - Ramya Ramalinga Moorthy
 
DevOps Continuous Integration & Delivery - A Whitepaper by RapidValue
DevOps Continuous Integration & Delivery - A Whitepaper by RapidValueDevOps Continuous Integration & Delivery - A Whitepaper by RapidValue
DevOps Continuous Integration & Delivery - A Whitepaper by RapidValue
 
Continuous delivery its not about the technology, its about the people. @pipe...
Continuous delivery its not about the technology, its about the people. @pipe...Continuous delivery its not about the technology, its about the people. @pipe...
Continuous delivery its not about the technology, its about the people. @pipe...
 
Shift left - find defects earlier through automated test and deployment
Shift left - find defects earlier through automated test and deploymentShift left - find defects earlier through automated test and deployment
Shift left - find defects earlier through automated test and deployment
 
Continuous deployment
Continuous deploymentContinuous deployment
Continuous deployment
 
Continuous Everything
Continuous EverythingContinuous Everything
Continuous Everything
 
Continuous delivery its not about the technology, its about the people. @sats...
Continuous delivery its not about the technology, its about the people. @sats...Continuous delivery its not about the technology, its about the people. @sats...
Continuous delivery its not about the technology, its about the people. @sats...
 
Manual testing1
Manual testing1Manual testing1
Manual testing1
 
Agile Engineering Sparker GLASScon 2015
Agile Engineering Sparker GLASScon 2015Agile Engineering Sparker GLASScon 2015
Agile Engineering Sparker GLASScon 2015
 

More from Tomas Riha

Driving change
Driving changeDriving change
Driving changeTomas Riha
 
DevOps - Its just Agile done right
DevOps - Its just Agile done rightDevOps - Its just Agile done right
DevOps - Its just Agile done rightTomas Riha
 
Test Automation
Test AutomationTest Automation
Test AutomationTomas Riha
 
Show me the money!
Show me the money!Show me the money!
Show me the money!Tomas Riha
 
Show me the money! - Draft
Show me the money! - DraftShow me the money! - Draft
Show me the money! - DraftTomas Riha
 
Into the cloud
Into the cloudInto the cloud
Into the cloudTomas Riha
 
Continuous delivery @ Diabol
Continuous delivery @ DiabolContinuous delivery @ Diabol
Continuous delivery @ DiabolTomas Riha
 
Scaling continuous delivery @ GeeCon 2014
Scaling continuous delivery @ GeeCon 2014Scaling continuous delivery @ GeeCon 2014
Scaling continuous delivery @ GeeCon 2014Tomas Riha
 

More from Tomas Riha (9)

Driving change
Driving changeDriving change
Driving change
 
DevOps - Its just Agile done right
DevOps - Its just Agile done rightDevOps - Its just Agile done right
DevOps - Its just Agile done right
 
Test Automation
Test AutomationTest Automation
Test Automation
 
Show me the money!
Show me the money!Show me the money!
Show me the money!
 
Show me the money! - Draft
Show me the money! - DraftShow me the money! - Draft
Show me the money! - Draft
 
Dev ops
Dev opsDev ops
Dev ops
 
Into the cloud
Into the cloudInto the cloud
Into the cloud
 
Continuous delivery @ Diabol
Continuous delivery @ DiabolContinuous delivery @ Diabol
Continuous delivery @ Diabol
 
Scaling continuous delivery @ GeeCon 2014
Scaling continuous delivery @ GeeCon 2014Scaling continuous delivery @ GeeCon 2014
Scaling continuous delivery @ GeeCon 2014
 

Continuous delivery @åf consult

  • 1. Continuous Delivery Enabling Agile
  • 2. Tomas Riha Architect @ VGT/WirelessCar MAJOR Project Liability Passionate about change and improvement Skiing feeder mail: triha74@gmail.com twitter: @TomasRihaSE blog: continuous-delivery-and-more.blogspot.com
  • 3. Agenda Intro to Continuous Delivery Principles of Continuous Delivery Look at a Pipe Impact on Scrum Feature Driven Development Impact on Developers and Testers
  • 4. Continuous Delivery Build Release Deploy Test Prod Your application always builds, passes its unit tests, deploys and passes system tests.
  • 5. Why we want frequent releases Faster Time to market Easier to understand impact of delivery Lower complexity due to less changes Unreleased code is cost without value
  • 6. Continuous Integration/Delivery/Deploy Continuous Integration Your application always builds and passes its unit tests. Continuous Delivery Your application always builds, passes its unit tests, deploys and passes its system tests making it always ready to deploy to production through a largely automated process Continuous Deployment Your application automatically deploys to production through a fully automated process
  • 7. Continuously as in all the time? Yes! End of sprint isn't continuously. Weekly isn't continuously. Nightly isn't continuously.
  • 8. What Tests? Unit? Component? System? Yes! All of it and eventually you will add Rollback, Load and Failover as well.
  • 9. Principles of Continuous Delivery 1. The process MUST be repeatable and reliable
  • 10. Principles of Continuous Delivery 2. Automate everything
  • 11. Principles of Continuous Delivery 3. If something is difficult or painful, do i more often
  • 12. Principles of Continuous Delivery 4. Keep everything in source control AND release it.
  • 13. Principles of Continuous Delivery 5. Done means released
  • 14. Principles of Continuous Delivery 6. Build Quality In
  • 15. Principles of Continuous Delivery 7. Fail Fast
  • 16. Principles of Continuous Delivery 8. Everybody has responsibility for the release process
  • 17. Principles of Continuous Delivery 9. Improve continously
  • 18. The pipe - Build once! Build Release Build and Unit test then release it!
  • 19. The pipe - Release everything! Feedback Feedback Build Release Code Build Release DB Scripts Build Release Server Config Build Release Deploy script
  • 20. The pipe -Bundle released artifacts Feedback Build Release Build Release Assembly Build Release Build Release
  • 21. The pipe - Use Same Deploy Mechanism Feedback Feedback Function Test Feedback Assembly Deploy Function Test Pipe Status Function Test Server DB
  • 22. The pipe - Use Same Deploy Mechanism Pre Prod Prod Feedback Feedback Feedback Pipe Status Deploy UAT Deploy Server Server Server Server Server Server DB DB DB
  • 23. Continuous Delivery Summary We build once Release everything Automate everything Fast feedback Automate all tests except UAT Deploy Build Release Assemble Deploy Test PreProd/Prod
  • 24. Obvious benefits Continuous Regression testing gives instant feedback. Continuously deploying to test servers tests deploy mechanism several hundred times per release. Always ready to push new release into UAT
  • 25. Common problem with many Agile projects Sprint 2-4 weeks Pre Dev Sys Test Reg Test Planning Pre Dev Sys Test Reg Test Planning Scrummerfall happens because its hard for developers to have something deployable for the testers to test. System testing on something that has not been regression tested is fundamentally flawed. Cost of regression test tends to bloat sprint content.
  • 26. Continuous Delivery - Feature Verification When a feature is Continuously done Pre Dev Reg Test System Test Planning Continuous Regression means that all feature verification is always done on a functioning application. Forces Test Driven Development as the gap in time between Reg Test and Verification of new features leaves untested code in the application.
  • 27. Continuous Delivery - Impact on Scrum Feature cycle Feature cycle Pre Dev Reg Test System Test Pre Dev Reg Test System Test Planning Planning No need for any code freeze period. Short sprints are possible since there is no need for long regression test period Features can be planned at start or just before feature start. Features can be done and "released" but not delivered until sprint. Features can be developed serially or in parallel within a sprint.
  • 28. Continuous Delivery - Impact on Scrum Features can be done and "released" but not delivered until sprint. Breaks continuous delivery? Don't we want to continuously deliver to UAT? Undelivered code is a cost without value! IF you stick to scrum do NOT submit to mid sprint releases
  • 29. Continuous Delivery - Impact on Scrum Scrum is based on developing a feature set without distraction, mid sprint releases are a huge distraction. Working towards two deadlines within one sprint causes stress. Discussion about what features will be done for the mid sprint release are a distraction and time sink. Deploying what happens to be ready isnt so bad in theory, in reality Product owner will expect features at mid sprint.
  • 30. Continuous Delivery - Feature driven development Feature cycle Pre Dev Reg Test System Test Planning Feature cycle Pre Dev Reg Test System Test Planning Feature driven development is very natural Analyze, Design, Develop+Test, Deliver to UAT Development can be done serial or parallel No done and unreleased code
  • 31. Continuous Delivery - Continuous Responsibility Developers have to take responsibility for their check ins. Regression test before commit, make a smoke test suite for fast feedback Never just change regression tests to make them work Evolve new tests with the code
  • 32. Continuous Delivery - Continuous Responsibility If we break the pipe we need to fix it ASAP Things will break, things should break, when it does fix it! Never leave the pipe red!
  • 33. Continuous Delivery - Continuous Responsibility Portability and visiblity Pipe has to be portable in order for developers to be able to take responsibility. Fast feedback has to be visible.
  • 34. Continuous Delivery & Test Driven Development Time Gap between code commit of new feature and execution of test case needs to be minimal. If it´s green it needs to go into regression suite ASAP If there is a bug equally it needs to be reported equally ASAP Developing tests in parallel with code minimizes the gap.
  • 35. Continuous Delivery & Test Driven Development Who should automate the tests? Test Design - Done by Testers Test automation - Done by ???? Coding - Done by Developers
  • 36. Continuous Delivery & Test Driven Development Tomorrow Agile Team Member Developers with Testing skills alt Testers with Development skills WILL BE SUPER HOT AND EARN SUPER NICE $$$$ :)
  • 37. Benefits Continuous Regression testing gives instant feedback. Continuously deploying to test servers tests deploy mechanism several hundred times per release. Always ready to push new release into UAT Test Driven Development Continuous Responsibility by Developers Sustainable Quality
  • 38. Good Reading Continuous Delivery by Jez Humble & Dave Farley http://www.amazon.com/dp/0321601912?tag=contindelive-20