Your Build Smells
@pimterryYour build
Who cares?
Gardening
not architecture
PAINFUL MERGES
Conflicts
are
avoidable
(usually)
Isolation
Feature flags
Branch for a reason
Painful merges
SMALL
FREQUENT
EASY
MERGES
NERVOUS PUSHES
Just push it
and see
and see
BUILD FAILED
Run it again
Confidence
Accuracy
Thoroughness
Speed
Simplicity
Accuracy
- No dependencies
- Identical environments
- Zero tolerance
Thoroughness
- Monitor coverage (a bit)
- Cover every risk somewhere
- Test what might fail
Speed
- Quick feedback
- Watchable unit tests
- Smoke test suites
Simplicity
- One click
- Zero setup
- Easy debugging
Nervous pushes
TESTED
QUICK
CONFIDENT
PUSHES
RARE RELEASES
Releasing
creates
value
Releasing
SOONER
creates
more
value
2
releases per day
100s
releases per week
100s
releases per day
Why not?
RISKY
HARD
Reduce the risk
- Consistent environments
- Automate everything
- Measure everything
Make it easy
- Automate everything
- One click (or fewer)
- Everyone deploys
If it hurts, do it more frequently
Jez Humble