Trunk based development &
continuous deployment
Neil Crawford
https://www.linkedin.com/in/neilcrawford/
ncrawford@findmypast.com
Why am I
here?
I’m angry
Why do we
make software?
To help users achieve
goals and needs
We were not!
Types of work
Innovation
Improvement
Firefighting
Toil
Dev Ops
Flow
Feedback
Continuous Learning and
Experimentation
Single product
Single codebase
Findmypast
www. search. tree. blog.
Findmypast
ecommerce search tree etc...
www.
marshall
Extreme Programming
State of DevOps
Lets go fast!
Trunk based
development
Developers collaborate
on code
in a single branch
called ‘trunk’
Constraint
No branches!
Commit to
master
Write
software
Make a
feature
toggle
Ticket
started
Merge to
master
Commit to
branch
End
Write
software
Ticket
finished
Make a
branch
Start
UI
Launch
Darkly
Toggles
User
Attributes
Payment
API
Subs
API
Account
API
Etc…
API
Constraint
A frictionless
development experience!
Constraint
Keep the pipe green!
Husky
js
Pre
Push
hook
Schema
Tests
Smoke
Tests
LintingBuilds
Unit
Tests
Check
dashboard
Verify
commits
Pre
Push
hook
Critical
path
tests
Build &
Test
Check
Teamcity
Check
CI
pipeline
Verify
commits
Pre
Push
hook
Push
Check
CI
pipeline
Verify
commits
Pre
Push
hook
Push
Check
CI
pipeline
Verify
commits
Pre
Push
hook
Pre push pipeline!
Continuous
deployment
Every change
goes live
immediately &
automatically
Constraint
Don’t break production!
Critical path tests
Constraint
Recover instantly!
Toggles & Rollback
Training & Learning
Constraint
No manual configuration!
App
Service
discovery
CI/CD tools
Dashboards
Logging
Monitoring
Alerting
Dev
Setup
Hosts
Feature
toggles
Analytics
Measurement
KPI - lead time
KPI - throughput
Supporting your team
through change
Change hurts
Motivation
Time
Enthusiasm
Shock
Denial
Confusion
Optimism
Acceptance
Anxiety
Experimentation
Letting go
Resistance
Anger
Valley of
despair
Support change with
dedicated resource
Findmypast
ecommerce search tree etc...
www.
marshall
Prometheus
Front end tooling
Dev dashboard
Marshall
Spanners
Infrastructure
Tools
CD pipelines
Support change with
time to learn
1 hour a day
Neil Crawford
https://www.linkedin.com/in/neilcrawford/
ncrawford@findmypast.com
Let’s go fast!!!

DevOpsDaysRiga 2018: Neil Crawford - Trunk based development, continuous deployment and why you should adopt them