with Continuous Delivery
Delivering big change with high reliability
Reducing Risk
The Challenge
High Complexity
Low Knowledge
Low Confidence
Zero Downtime
The Hypothesis
The
Starting Point
Hire Champions
Hire Champions
V
Building
Culture
Core Values & Practices
Repeatability
Simplicity
Fast Feedback
Clean Code
Pair
Programming
Automate
Repetitive Tasks
Refactoring
Test Driven
Design
Continuous
Integration
Vertical Slices
Simple
Design
Collective Code
Ownership
https://www.thoughtworks.com/insights/blog/what-are-our-core-values-and-practices-building-software
Fast Feedback through CI
Pre-Check-In
Unit Tests
Integration Tests
Commit/Push
CI
Unit Tests
Integration Tests
Deploy to
Production
● 100% containerised environment
● Optimised for fast feedback
● Pre-Check-In and CI pipeline are the
same script
● Everything post commit is automated
Tracking Metrics
Small, fast,
incremental changes
Deployment
Frequency
20x /day
Delivery Lead
Time
12 mins From Developer
Commit to
Production
Release
Cycle Time
Current Cycle
Time
4 days
Kickoff Deployment
Target Cycle
Time
1 day
Working with
other teams
Reducing Dependencies
Delays push out
dependencies
Big releases have a
high risk of failure
Continuous Delivery at Scale
Contract Driven Development
Communication Breakdown!
What is a
“Feature”?
Who owns
this?
What
domain?
Feature Flag
Everything!
Customer Segmentation
Global Region New/Existing Free Trial Source
Functional Slices
Xero.com
Channels
Migration
Demo
Trial
Learn
Partner
Mobile
Navigation
Monolith
Invoices
Bank Feeds
Bills
Quotes
Payroll
Monolith
Mobile
Navigation
Microservices
Invoices
Bank Feeds
Bills
Quotes
Validating in Production
● Region: Australia
● New Customer
● Free Trial
● Source: Partner
Fastest Path to Go Live
● Region: Australia
● New Customer
● Free Trial
● Source: Partner
Start
Live in Production!
Architectural Approach
Upstream
Systems
Downstream
Systems
Domain
API
Adapters Internal
Domain
Async via
Queues
The
Outcome?
Success!
Reflections
Huge Wins
● Decoupled Architecture
● Feature Flagging
● Going Live Early and Often
Improvements for Next Time
● Go slow at the start
● Teach the “why” more
● Over-communicate!
Reducing Risk With Continuous Delivery

Reducing Risk With Continuous Delivery