Upgrade to Pro — share decks privately, control downloads, hide ads and more …

DevOpsDays Baltimore 2017 - Continuous Integration: A bittersweet story

DevOpsDays Baltimore 2017 - Continuous Integration: A bittersweet story

This is the bittersweet story of Continuous Integration. CI is practice that we fell in love with, embraced and then never fully committed to. I’ll share with you the current state of CI, what we think we are doing when we say CI and what we are really doing in terms of CI. Then I’ll remind us all why we fell in love with CI in the first place and make some suggestions on how to get back to the good stuff.

Edited and updated for 2017. Presented at DevOpsDays Baltimore 2017

suziejprince

March 07, 2017
Tweet

More Decks by suziejprince

Other Decks in Programming

Transcript

  1. DevOpsDays Baltimore 2017 @pm_suzie ❤ CONTINUOUS INTEGRATION: A BITTERSWEET LOVE

    STORY
  2. DevOpsDays Baltimore 2017 @pm_suzie ❤ CONTINUOUS INTEGRATION: A BITTERSWEET LOVE

    STORY
  3. Head of Product for ThoughtWorks Products 10+ years experience with

    agile, continuous integration and continuous delivery practices Tweeting @pm_suzie
  4. @pm_suzie over 20 years 4000 people 40 offices 14 countries

  5. @pm_suzie

  6. @pm_suzie ❤ ci forever

  7. @pm_suzie hands up !

  8. @pm_suzie hands up !

  9. @pm_suzie What is CI?

  10. @pm_suzie

  11. @pm_suzie

  12. @pm_suzie – Jez Humble, continuousdelivery.com “ C I D E

    V E LO P E R S I N T E G R AT E A L L T H E I R WO R K I N TO T R U N K ( A L S O K N OW N A S M A I N L I N E O R M A S T E R ) O N A R E G U L A R BA S I S ( AT L E A S T DA I LY ) . ”
  13. @pm_suzie

  14. @pm_suzie master

  15. @pm_suzie daily master

  16. @pm_suzie Check everything in

  17. @pm_suzie Build every commit

  18. @pm_suzie Automate the build

  19. @pm_suzie Keep it fast! %

  20. @pm_suzie Keep it fast!

  21. @pm_suzie Have self testing

  22. @pm_suzie Show visible failures

  23. @pm_suzie Show visible failures

  24. @pm_suzie Fix failures immediately

  25. @pm_suzie

  26. @pm_suzie master

  27. @pm_suzie daily master

  28. @pm_suzie Why we fell in love with CI?

  29. @pm_suzie Avoid merge conflicts

  30. @pm_suzie Fast feedback

  31. @pm_suzie Reduce risks

  32. @pm_suzie Collective ownership

  33. @pm_suzie Our story so far….. ❤

  34. @pm_suzie Our story so far….. 1993 Grady Booch used the

    phrase “continuous integration” in Object-Oriented Analysis and Design with Applications ❤
  35. @pm_suzie 1996 Steve McConnell describes the "Daily Build and Smoke

    Test" technique Our story so far….. 1993 Grady Booch used the phrase “continuous integration” in Object-Oriented Analysis and Design with Applications ❤
  36. @pm_suzie 1996 Steve McConnell describes the "Daily Build and Smoke

    Test" technique Our story so far….. 1993 Grady Booch used the phrase “continuous integration” in Object-Oriented Analysis and Design with Applications 1998 Continuous integration is cited as a core practice of Extreme Programming ❤
  37. @pm_suzie 1996 Steve McConnell describes the "Daily Build and Smoke

    Test" technique 2000 Martin Fowler’s first published his comprehensive Continuous Integration article Our story so far….. 1993 Grady Booch used the phrase “continuous integration” in Object-Oriented Analysis and Design with Applications 1998 Continuous integration is cited as a core practice of Extreme Programming ❤
  38. @pm_suzie 1996 Steve McConnell describes the "Daily Build and Smoke

    Test" technique 2000 Martin Fowler’s first published his comprehensive Continuous Integration article Our story so far….. 1993 Grady Booch used the phrase “continuous integration” in Object-Oriented Analysis and Design with Applications 2001 The first continuous integration server Cruise Control is released 1998 Continuous integration is cited as a core practice of Extreme Programming ❤
  39. @pm_suzie 1996 Steve McConnell describes the "Daily Build and Smoke

    Test" technique 2000 Martin Fowler’s first published his comprehensive Continuous Integration article Our story so far….. 1993 Grady Booch used the phrase “continuous integration” in Object-Oriented Analysis and Design with Applications 2007 Book “Continuous Integration” by Duvall published 2001 The first continuous integration server Cruise Control is released 1998 Continuous integration is cited as a core practice of Extreme Programming ❤
  40. @pm_suzie 1996 Steve McConnell describes the "Daily Build and Smoke

    Test" technique 2000 Martin Fowler’s first published his comprehensive Continuous Integration article 2010 Book “Continuous Delivery” by Humble and Farley published Our story so far….. 1993 Grady Booch used the phrase “continuous integration” in Object-Oriented Analysis and Design with Applications 2007 Book “Continuous Integration” by Duvall published 2001 The first continuous integration server Cruise Control is released 1998 Continuous integration is cited as a core practice of Extreme Programming ❤
  41. @pm_suzie 1996 Steve McConnell describes the "Daily Build and Smoke

    Test" technique 2000 Martin Fowler’s first published his comprehensive Continuous Integration article 2010 Book “Continuous Delivery” by Humble and Farley published Our story so far….. 1993 Grady Booch used the phrase “continuous integration” in Object-Oriented Analysis and Design with Applications 2007 Book “Continuous Integration” by Duvall published 2001 The first continuous integration server Cruise Control is released 2015 CI described as “most essential technical practice” in SAFe 1998 Continuous integration is cited as a core practice of Extreme Programming ❤
  42. @pm_suzie 1996 Steve McConnell describes the "Daily Build and Smoke

    Test" technique 2000 Martin Fowler’s first published his comprehensive Continuous Integration article 2010 Book “Continuous Delivery” by Humble and Farley published Our story so far….. 1993 Grady Booch used the phrase “continuous integration” in Object-Oriented Analysis and Design with Applications 2007 Book “Continuous Integration” by Duvall published 2017 Wikipedia lists 15+ continuous integration Tools 2001 The first continuous integration server Cruise Control is released 2015 CI described as “most essential technical practice” in SAFe 1998 Continuous integration is cited as a core practice of Extreme Programming ❤
  43. @pm_suzie COMPLICATED IT’S

  44. @pm_suzie COMPLICATED IT’S

  45. @pm_suzie 3% 5% 6% 18% Daily 68% Daily Weekly Monthly

    Other Never http://stackoverflow.com/research/developer-survey-2016#work-checking-in-code How often do you check in or commit code?
  46. @pm_suzie 40% 20% 40% Practising Plans to practice No plans

    http://public.brighttalk.com/resource/core/88443/december_16_agile_in_the_enterprise_wholz_131607.pdf When did or will your organization begin to practice continuous integration?
  47. https://blog.snap-ci.com/blog/2016/07/26/continuous-delivery-integration-devops-research/ @pm_suzie Contextual research affinity wall

  48. https://blog.snap-ci.com/blog/2016/07/26/continuous-delivery-integration-devops-research/ @pm_suzie

  49. https://blog.snap-ci.com/blog/2016/07/26/continuous-delivery-integration-devops-research/ @pm_suzie What do people know about Continuous Integration? Do

    they practice Continuous Integration? How do they practice Continuous Integration? What tools do people use to practice Continuous Integration? How do people define Continuous Integration?
  50. https://blog.snap-ci.com/blog/2016/07/26/continuous-delivery-integration-devops-research/ @pm_suzie

  51. https://blog.snap-ci.com/blog/2016/07/26/continuous-delivery-integration-devops-research/ @pm_suzie You commit some code, something picks it up

    and builds and makes sure it still builds
  52. https://blog.snap-ci.com/blog/2016/07/26/continuous-delivery-integration-devops-research/ @pm_suzie You commit some code, something picks it up

    and builds and makes sure it still builds I push the code to the master branch after it's been tested on the test branch. That in return triggers something and gets deployed
  53. https://blog.snap-ci.com/blog/2016/07/26/continuous-delivery-integration-devops-research/ @pm_suzie You commit some code, something picks it up

    and builds and makes sure it still builds I push the code to the master branch after it's been tested on the test branch. That in return triggers something and gets deployed …testing your code all the time. Executing the code that you write all the time, making sure the code doesn't go stale
  54. https://blog.snap-ci.com/blog/2016/07/26/continuous-delivery-integration-devops-research/ @pm_suzie

  55. https://blog.snap-ci.com/blog/2016/07/26/continuous-delivery-integration-devops-research/ @pm_suzie The most challenging thing is when you end

    up with a lot of features piled together in one commit
  56. https://blog.snap-ci.com/blog/2016/07/26/continuous-delivery-integration-devops-research/ @pm_suzie The most challenging thing is when you end

    up with a lot of features piled together in one commit Anytime a feature is finally complete then it get’s merged into master
  57. https://blog.snap-ci.com/blog/2016/07/26/continuous-delivery-integration-devops-research/ @pm_suzie We tend to do anywhere between 15 and

    50 branches in a push The most challenging thing is when you end up with a lot of features piled together in one commit Anytime a feature is finally complete then it get’s merged into master
  58. @pm_suzie COMPLICATED IT’S

  59. @pm_suzie “CI Theatre”

  60. @pm_suzie

  61. @pm_suzie

  62. @pm_suzie Not getting the benefits of CI

  63. @pm_suzie Painful

  64. @pm_suzie Not ready for Continuous Delivery or DevOps

  65. @pm_suzie

  66. @pm_suzie

  67. @pm_suzie SAVE YOUR CI NOW! 3 HOT TIPS

  68. @pm_suzie Commit more often

  69. @pm_suzie Automate, automate, automate

  70. @pm_suzie Trunk based development

  71. @pm_suzie

  72. @pm_suzie master

  73. @pm_suzie daily master

  74. @pm_suzie ❤ ci forever

  75. @pm_suzie

  76. @pm_suzie To be continued…