$30 off During Our Annual Pro Sale. View Details »

Continuous Integration: A bittersweet story

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.

Originally presented at DevOpsDays Raleigh in October 2016 https://www.devopsdays.org/events/2016-raleigh/program/suzie-prince/

suziejprince

October 06, 2016
Tweet

More Decks by suziejprince

Other Decks in Programming

Transcript


  1. Continuous
    Integration: A
    bittersweet love
    story

    View Slide

  2. Head of Product for ThoughtWorks
    Products
    Product Manager for Snap CI
    10+ years experience with agile,
    CI and CD practices
    Tweeting @pm_suzie

    View Slide


  3. CI FOREVER

    View Slide

  4. Hands up !

    View Slide

  5. What is CI?

    View Slide

  6. View Slide

  7. – Jez Humble, continuousdelivery.com
    “CI developers integrate all their work into trunk (also known as
    mainline or master) on a regular basis (at least daily).”

    View Slide

  8. daily
    master

    View Slide

  9. Single code repository

    View Slide

  10. Build every commit

    View Slide

  11. Automate the build

    View Slide

  12. Self testing

    View Slide

  13. Fast!

    View Slide

  14. Visible failures

    View Slide

  15. Fix failures immediately

    View Slide

  16. daily
    master

    View Slide

  17. Why we fell in love with CI?

    View Slide

  18. Avoid merge conflicts

    View Slide

  19. Fast feedback

    View Slide

  20. Reduce risks

    View Slide

  21. Collective ownership

    View Slide

  22. 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
    2016
    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

    View Slide

  23. COMPLICATED
    IT’S

    View Slide

  24. 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?

    View Slide

  25. 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?

    View Slide

  26. Contextual research affinity wall
    https://blog.snap-ci.com/blog/2016/07/26/continuous-delivery-integration-devops-research/

    View Slide

  27. 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?

    View Slide

  28. 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

    View Slide

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

    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

    View Slide

  30. COMPLICATED
    IT’S

    View Slide

  31. View Slide

  32. Not getting the benefits of CI

    View Slide

  33. Painful

    View Slide

  34. Not ready for Continuous Delivery
    or DevOps

    View Slide

  35. SAVE YOUR LOVE
    LIFE NOW!
    3 HOT TIPS

    View Slide

  36. Commit more often

    View Slide

  37. Automate, automate, automate

    View Slide

  38. Trunk based development

    View Slide

  39. daily
    master

    View Slide


  40. CI FOREVER

    View Slide

  41. To be
    continued…

    View Slide