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

The Practices That Make Continuous Integration

The Practices That Make Continuous Integration

Continuous Integration is by itself already a practice. It is one of the most critical practices to adopt to enable the fast flow of work through the value stream.

However, many teams believe Continuous Integration is just a tooling problem, to then pretend they practice Continuous Integration. Although they sometimes fail to do so and miss out on the benefits.

This session goes deeper into the practices that each on their own enable Continuous Integration. Learn how to gain fast feedback, increased stability and higher throughput!

Key takeaways:
- Be able to define what a state of Continuous Integration is
- Be able to enumerate the practices required to achieve Continuous Integration
- Be able to understand the practices

Thierry de Pauw

August 26, 2022
Tweet

More Decks by Thierry de Pauw

Other Decks in Technology

Transcript

  1. @[email protected] @tdpauw.bsky.social thinkinglabs.io @[email protected] @tdpauw.bsky.social thinkinglabs.io The Practices That Make

    Continuous Integration Timid Thierry Ghent, Belgium On the left and back, Korenlei On the right and front, Graslei
  2. @[email protected] @tdpauw.bsky.social thinkinglabs.io thinkinglabs.io everyone in the team commits at

    least once a day to Mainline every commit to Mainline triggers an automated build and execution of all automated tests whenever the build fails it gets fixed within 10 min Continuous Integration Test
  3. @[email protected] @tdpauw.bsky.social thinkinglabs.io Continuous Integration is a practice to ensure

    always working software and to get feedback within a few minutes to whether any given change broke the application. – Jez Humble
  4. @[email protected] @tdpauw.bsky.social thinkinglabs.io From now on, our code in revision

    control will always build successfully and pass its tests. – James Shore
  5. @[email protected] @tdpauw.bsky.social thinkinglabs.io Precondition to Continuous Integration Fix a broken

    build within 10 mins Otherwise … a whole team at stand still disables on-demand releases
  6. @[email protected] @tdpauw.bsky.social thinkinglabs.io Break large changes in a series of

    small incremental changes => keep the application always working => never tearing the application apart
  7. @[email protected] @tdpauw.bsky.social thinkinglabs.io When not Committing Frequently • introduce batch

    work • integrating becomes time-consuming • prevents communication with the team
  8. @[email protected] @tdpauw.bsky.social thinkinglabs.io • Ports & Adapters (aka Hexagonal Architecture)

    • Kent Beck's 4 rules of simple design • Intentional code duplication (see Expand & Contract) => improves quality => reduces engineering time
  9. @[email protected] @tdpauw.bsky.social thinkinglabs.io What if a feature takes too long

    to implement? => perfectly acceptable to have unfinished functionality in production
  10. @[email protected] @tdpauw.bsky.social thinkinglabs.io Types of tests: • Unit Tests •

    Integration Tests • Automated Acceptance Tests • Smoke Tests
  11. @[email protected] @tdpauw.bsky.social thinkinglabs.io When the Build is slow • do

    not execute the Local Build • execute the Local Build less often
  12. @[email protected] @tdpauw.bsky.social thinkinglabs.io What is fast? • 10 min is

    the limit • under 5 min is the focus • 30s will avoid hallway sword fighting 🤷
  13. @[email protected] @tdpauw.bsky.social thinkinglabs.io @[email protected] @tdpauw.bsky.social thinkinglabs.io Hello, I am Thierry

    de Pauw Acknowledgments: Els, the one I love! Lisi Hocke (@lisihocke), Seb Rose (@sebrose) and Steve Smith (@SteveSmith_Tech) for their thorough reviews of the article series. Martin Van Aken (@martinvanaken), Martin Dürrmeier (@md42), Aki Salmi (@rinkkasatiainen), Nelis Boucke (@nelisboucke), Karel Bernolet (@BernoletKarel) for reviewing the slides. The folks at AlpesCraft for suggesting the use of the diagram as guiding principle. The article series: The Practices that make Continuous Integration https://thinkinglabs.io/the-practices-that-make-continuous-integration