Refactoring for Continuous Delivery Breaking the Mould Steve Smith - @agilestevesmith www.stephen-smith.co.uk
May 22, 2015
Refactoring for Continuous Delivery
Breaking the Mould
Steve Smith - @agilestevesmithwww.stephen-smith.co.uk
Release More With Less
time
changeset size
time
changeset size
t transaction cost = time
Release More With Less
time
changeset size
t transaction cost = time v value-add = value
Release More With Less
time
changeset size
t transaction cost = time v value-add = value
h holding cost = v
Release More With Less
time
changeset size
t1 = 0.5t
t2 = 0.5t
Release More With Less
time
changeset size
t1 = 0.5tv1 = 0.8v
t2 = 0.5tv2 = 0.2v
Release More With Less
time
changeset size
t1 = 0.5tv1 = 0.8vh1 = v1
t2 = 0.5tv2 = 0.2vh2 = v2
Release More With Less
t1 = 1/3 t t2 = 2/3 t
time
changeset size
t1 = 0.25tv1 = 0.1v h1 = v1
t2 = 0.25tv2 = 0.7v h2 = v2
t3 = 0.25tv3 = 0.1v h3 = v3
t4 = 0.25tv4 = 0.1v h4 = v4
Release More With Less
Effective Architecture
“Architecture represents the significant design decisions that shape a system, where significant is measured by cost of change”[Booch]
“An effective architecture is one that generally reduces the significance of design decisions”[Henney]
Coupled Capabilities
Coupled Capabilities
Coupled Capabilities
Coupled Capabilities
Coupled Capabilities
Coupled Capabilities
Vertical Divide and Conquer
Vertical Divide and Conquer
Vertical Divide and Conquer
Vertical Divide and Conquer
Vertical Divide and Conquer
Interdependent Releases
Tolerant Reader
request
Tolerant Reader
request
Tolerant Reader
request
API Examples
request
API Examples
request
communicateEXAMPLE
Origin=CNPrice=£5
EXAMPLE
Origin=UGPrice=£4
EXAMPLE
Origin=CNPrice=£5
API Examples
EXAMPLE
Origin=UGPrice=£4
request
communicate
API Examples
request
communicateEXAMPLE
Origin=CNWeight=5oz
EXAMPLE
Origin=UGWeight=4oz
Consumer Driven Contracts
request
Consumer Driven Contracts
request
communicate
Consumer Driven Contracts
request
communicateimplement
Consumer Driven Contracts
request
communicate
communicateimplement
CONSUMER
Origin
Consumer Driven Contracts
request
implementcommunicate
implement
CONSUMER
Origin
Consumer Driven Contracts
request
implementcommunicate
CONSUMER
Origin
implement
request
Interdependent Releases
Interdependent Releases
request
implementcommunicate
CONSUMER
Origin
Refactoring for Continuous Delivery
Breaking the Mold
Steve Smith - @agilestevesmithwww.stephen-smith.co.uk