Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Continuous DeliveryEnabling Agile
Tomas RihaArchitect @ VGT/WirelessCarMAJOR project liabilityMAJOR Project LiabilityPassionate about change and improvement...
AgendaWhat its all aboutIntro to Continuous DeliveryPrinciples of Continuous DeliveryLook at a PipeImpact on Methods and P...
What its all aboutOur highest priority is to satisfy the customerthrough early and continuous deliveryof valuable software.
What does that mean?As soon as we have added value to the application itshould be in the hands of the customer.
Are we really delivering as soon as possible?PrePlanningDev Sys Test Reg TestPrePlanningDev Sys Test Reg TestScrummerfall ...
Are we really delivering as soon as possible?Delivering every 2-4 weeks when a SET of features havebeen completed is NOT d...
Remind me why do we want to deliver as soonas possible.FeedbackFaster feedback, less upfront design, easier to build what ...
So what is stopping us?Its hard to...... system and regression test right at the moment when thevalue has been added.... t...
Continuous DeliveryBuild Release Deploy Test ProdYour application always builds, passes its unit tests,deploys and passes ...
Continuous Integration/Delivery/DeployContinuous IntegrationYour application always builds and passes its unit tests.Conti...
Continuously as in all the time?Yes!End of sprint isnt continuously.Weekly isnt continuously.Nightly isnt continuously.Eve...
What Tests? Unit? Component? System?Yes!All of it and eventually you will add Rollback, Load and Failover as well.
Principles of Continuous Delivery1. The process MUST be repeatable, reliable andindependent of key personnel
2. Automate everythingPrinciples of Continuous Delivery
3. If something is difficult or painful, do i more oftenPrinciples of Continuous Delivery
4. Keep everything in source control AND release it.Principles of Continuous Delivery
5. Done means releasedPrinciples of Continuous Delivery
6. Build Quality InPrinciples of Continuous Delivery
7. Fail FastPrinciples of Continuous Delivery
8. Everybody has responsibility for the release processPrinciples of Continuous Delivery
9. Improve continuouslyPrinciples of Continuous Delivery
The pipe - Build once!Build ReleaseBuild and Unit test then release it!
The pipe - Release everything!Build ReleaseBuild ReleaseBuild ReleaseBuild ReleaseCodeDB ScriptsServer ConfigDeploy script...
The pipe -Bundle released artifactsBuild ReleaseBuild ReleaseBuild ReleaseBuild ReleaseAssemblyFeedback
The pipe - Use Same Deploy MechanismFunction TestAssembly DeployDBServerFunction TestFunction TestPipe StatusFeedbackFeedb...
The pipe - Use Same Deploy MechanismDeployDBServerPipe StatusServerDBServer ServerDBServer ServerDeployPre Prod ProdUATFee...
Continuous DeliveryBuild Release Assemble DeployDeployPreProd/ProdTestSummaryWe build onceRelease everythingAutomate every...
Obvious benefitsContinuous Regression testing gives instant feedback.Continuously deploying to test servers tests deploy m...
Continuous Delivery - Feature VerificationPrePlanningDev Reg TestContinuouslyContinuous Regression means that all feature ...
Continuous Delivery - Impact on ScrumPrePlanningDev Reg TestNo need for any code freeze period.Short sprints are possible ...
Continuous Delivery - Impact on ScrumFeatures can be done and "released" but not delivered until sprint.Breaks continuous ...
Continuous Delivery - Impact on ScrumScrum is based on developing a feature set withoutdistraction, mid sprint releases ar...
Continuous Delivery - Feature drivendevelopmentFeature driven development is very naturalAnalyze, Design, Develop+Test, De...
Continuous Delivery - ContinuousResponsibilityDevelopers have to take responsibility for their check ins.Regression test b...
Continuous Delivery - ContinuousResponsibilityIf we break the pipe we need to fix it ASAPThings will break, things should ...
Continuous Delivery - ContinuousResponsibilityPortability and visiblityPipe has to be portable in order for developers to ...
Continuous Delivery & Test DrivenDevelopmentTime Gap between code commit of new feature andexecution of test case needs to...
Continuous Delivery & Test DrivenDevelopmentWho should automate the tests?Test Design - Done by TestersTest automation - D...
Continuous Delivery & Test DrivenDevelopmentTomorrow Agile Team MemberDevelopers with Testing skillsaltTesters with Develo...
Continuous Delivery & ArchitectureArchitect for testability and change.Architect around services.Clearly defined responsib...
Continuous Delivery & ScalabilitySingle threaded process does not scaleScale around number of code committersDedicated ser...
Continuous Delivery & ExpansionEach individual that is exposed to CD has to matureContinuous Delivery is individual maturi...
BenefitsContinuous Regression testing gives instant feedback.Continuously deploying to test servers tests deploy mechanism...
Good ReadingContinuous Delivery by Jez Humble & Dave Farleyhttp://www.amazon.com/dp/0321601912?tag=contindelive-20
Thats it!Feedback & Any questions you forgot to ask?http://continuous-delivery-and-more.blogspot.se
Upcoming SlideShare
Loading in …5
×

Continuous delivery @ hi q

1,096 views

Published on

  • Be the first to comment

Continuous delivery @ hi q

  1. 1. Continuous DeliveryEnabling Agile
  2. 2. Tomas RihaArchitect @ VGT/WirelessCarMAJOR project liabilityMAJOR Project LiabilityPassionate about change and improvementSkiing feedermail: triha74@gmail.comtwitter: @TomasRihaSEblog: continuous-delivery-and-more.blogspot.com
  3. 3. AgendaWhat its all aboutIntro to Continuous DeliveryPrinciples of Continuous DeliveryLook at a PipeImpact on Methods and ProfessionsImportance of ArchitectureScaling Continuous Delivery
  4. 4. What its all aboutOur highest priority is to satisfy the customerthrough early and continuous deliveryof valuable software.
  5. 5. What does that mean?As soon as we have added value to the application itshould be in the hands of the customer.
  6. 6. Are we really delivering as soon as possible?PrePlanningDev Sys Test Reg TestPrePlanningDev Sys Test Reg TestScrummerfall happens because its hard for developers to havesomething deployable for the testers to test.System testing on something that has not been regression tested isfundamentally flawed.Cost of regression test tends to bloat sprint content.Sprint 2-4 weeks
  7. 7. Are we really delivering as soon as possible?Delivering every 2-4 weeks when a SET of features havebeen completed is NOT delivering value as soon aspossible.
  8. 8. Remind me why do we want to deliver as soonas possible.FeedbackFaster feedback, less upfront design, easier to build what the customer wants.ComplexitySmall change sets are low risk, easy to understand and easy to manage.CostUnreleased code is cost without value.
  9. 9. So what is stopping us?Its hard to...... system and regression test right at the moment when thevalue has been added.... to even just have an application deploy at the momentwhen the value has been added
  10. 10. Continuous DeliveryBuild Release Deploy Test ProdYour application always builds, passes its unit tests,deploys and passes system tests.
  11. 11. Continuous Integration/Delivery/DeployContinuous IntegrationYour application always builds and passes its unit tests.Continuous DeliveryYour application always builds, passes its unit tests, deploys and passes itssystem tests making it always ready to deploy to production through a largelyautomated processContinuous DeploymentYour application automatically deploys to production through a fully automatedprocess
  12. 12. Continuously as in all the time?Yes!End of sprint isnt continuously.Weekly isnt continuously.Nightly isnt continuously.Every code commit is continuously!
  13. 13. What Tests? Unit? Component? System?Yes!All of it and eventually you will add Rollback, Load and Failover as well.
  14. 14. Principles of Continuous Delivery1. The process MUST be repeatable, reliable andindependent of key personnel
  15. 15. 2. Automate everythingPrinciples of Continuous Delivery
  16. 16. 3. If something is difficult or painful, do i more oftenPrinciples of Continuous Delivery
  17. 17. 4. Keep everything in source control AND release it.Principles of Continuous Delivery
  18. 18. 5. Done means releasedPrinciples of Continuous Delivery
  19. 19. 6. Build Quality InPrinciples of Continuous Delivery
  20. 20. 7. Fail FastPrinciples of Continuous Delivery
  21. 21. 8. Everybody has responsibility for the release processPrinciples of Continuous Delivery
  22. 22. 9. Improve continuouslyPrinciples of Continuous Delivery
  23. 23. The pipe - Build once!Build ReleaseBuild and Unit test then release it!
  24. 24. The pipe - Release everything!Build ReleaseBuild ReleaseBuild ReleaseBuild ReleaseCodeDB ScriptsServer ConfigDeploy scriptFeedback Feedback
  25. 25. The pipe -Bundle released artifactsBuild ReleaseBuild ReleaseBuild ReleaseBuild ReleaseAssemblyFeedback
  26. 26. The pipe - Use Same Deploy MechanismFunction TestAssembly DeployDBServerFunction TestFunction TestPipe StatusFeedbackFeedback Feedback
  27. 27. The pipe - Use Same Deploy MechanismDeployDBServerPipe StatusServerDBServer ServerDBServer ServerDeployPre Prod ProdUATFeedbackFeedback Feedback
  28. 28. Continuous DeliveryBuild Release Assemble DeployDeployPreProd/ProdTestSummaryWe build onceRelease everythingAutomate everythingFast feedbackAutomate all tests except UAT
  29. 29. Obvious benefitsContinuous Regression testing gives instant feedback.Continuously deploying to test servers tests deploy mechanism severalhundred times per release.Always ready to push new release into UATWe can get customer feedback as soon as value has been added
  30. 30. Continuous Delivery - Feature VerificationPrePlanningDev Reg TestContinuouslyContinuous Regression means that all feature verification is always doneon a functioning application.Forces Test Driven Development as the gap in time between Reg Testand Verification of new features leaves untested code in the application.System TestWhen afeature isdone
  31. 31. Continuous Delivery - Impact on ScrumPrePlanningDev Reg TestNo need for any code freeze period.Short sprints are possible since there is no need for long regression test periodFeatures 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.System TestFeature cyclePrePlanningDev Reg Test System TestFeature cycle
  32. 32. Continuous Delivery - Impact on ScrumFeatures can be done and "released" but not delivered until sprint.Breaks continuous delivery?Dont we want to continuously deliver to UAT?We want feedback as soon as possible!Undelivered code is a cost without value!IF you stick to scrum do NOT submit to mid sprint releases instead shorten yoursprints.
  33. 33. Continuous Delivery - Impact on ScrumScrum is based on developing a feature set withoutdistraction, 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 adistraction and time sink.Deploying what happens to be ready isnt so bad in theory, in reality Productowner will expect features at mid sprint.
  34. 34. Continuous Delivery - Feature drivendevelopmentFeature driven development is very naturalAnalyze, Design, Develop+Test, Deliver to UATDevelopment can be done serial or parallelNo done and unreleased codePrePlanningDev Reg Test System TestFeature cyclePrePlanningDev Reg Test System TestFeature cycle
  35. 35. Continuous Delivery - ContinuousResponsibilityDevelopers have to take responsibility for their check ins.Regression test before commit, make a smoke test suite for fast feedbackNever just change regression tests to make them workEvolve new tests with the code
  36. 36. Continuous Delivery - ContinuousResponsibilityIf we break the pipe we need to fix it ASAPThings will break, things should break, when it does fix it!Never leave the pipe red!
  37. 37. Continuous Delivery - ContinuousResponsibilityPortability and visiblityPipe has to be portable in order for developers to be able to take responsibility.Fast feedback has to be visible.
  38. 38. Continuous Delivery & Test DrivenDevelopmentTime Gap between code commit of new feature andexecution of test case needs to be minimal.If it´s green it needs to go into regression suite ASAPIf there is a bug equally it needs to be reported equally ASAPDeveloping tests in parallel with code minimizes the gap.
  39. 39. Continuous Delivery & Test DrivenDevelopmentWho should automate the tests?Test Design - Done by TestersTest automation - Done by ????Coding - Done by Developers
  40. 40. Continuous Delivery & Test DrivenDevelopmentTomorrow Agile Team MemberDevelopers with Testing skillsaltTesters with Development skillsWILL BE SUPER HOT AND EARN SUPER NICE $$$$:)
  41. 41. Continuous Delivery & ArchitectureArchitect for testability and change.Architect around services.Clearly defined responsibility.Small components.Build in testability.Build strong support for feature flags.
  42. 42. Continuous Delivery & ScalabilitySingle threaded process does not scaleScale around number of code committersDedicated servers create bottlenecksGood architecture helps, monoliths dont.Isolated and parallelized testcases help.Use cloud nodes!!If no cloud available build a pool of servers.
  43. 43. Continuous Delivery & ExpansionEach individual that is exposed to CD has to matureContinuous Delivery is individual maturity.Each new individual has to mature and learn.Each new team has to mature and learn.There are no short cuts for new team members just faster learning.
  44. 44. BenefitsContinuous Regression testing gives instant feedback.Continuously deploying to test servers tests deploy mechanism severalhundred times per release.Always ready to push new release into UATTest Driven DevelopmentContinuous Responsibility by DevelopersSustainable Quality
  45. 45. Good ReadingContinuous Delivery by Jez Humble & Dave Farleyhttp://www.amazon.com/dp/0321601912?tag=contindelive-20
  46. 46. Thats it!Feedback & Any questions you forgot to ask?http://continuous-delivery-and-more.blogspot.se

×