We can't find the internet
Attempting to reconnect
Something went wrong!
Hang in there while we get back on track
How to deliver continuously - Christian Johansen - NDC Oslo 2024
Learn practical techniques for continuous delivery including trunk-based development, keystoning, incremental changes, and automation to ship software faster and safer.
-
Work in small increments and batches, making tiny commits that can be safely pushed to the main branch
- Practice trunk-based development (main branch development) instead of long-lived feature branches
-
Use keystoning technique to incrementally build new features by:
- Creating small, complete pieces of work
- Establishing connection points for future work
- Building features piece by piece rather than all at once
-
Keep the system always working and deployable by:
- Making sure code compiles and tests pass with each commit
- Working as if every commit could go to production
- Fixing build/test failures immediately
-
Break large changes into smaller, safer changes:
- Extract functions and move code gradually
- Use feature flags for larger changes when needed
- Make additive changes rather than destructive ones
-
Automate testing and deployment:
- Have automated tests that you can trust
- Set up continuous integration pipelines
- Enable quick feedback on changes
-
Benefits of this approach include:
- Higher quality software with fewer mistakes
- Improved developer happiness and retention
- Better software delivery performance
- Reduced merge conflicts and integration problems