© 2015 ThoughtWorks, Inc. All rights reserved. Do not distribute without permission.
Business AgilityBuilding the Right Thing & Building it Right!
Atlanta - 2nd September 2015
From continuous delivery to customer development
© 2015 ThoughtWorks, Inc. All rights reserved. Do not distribute without permission.
© 2015 ThoughtWorks, Inc. All rights reserved. Do not distribute without permission.
© 2015 ThoughtWorks, Inc. All rights reserved. Do not distribute without permission.
© 2015 ThoughtWorks, Inc. All rights reserved. Do not distribute without permission.
© 2015 ThoughtWorks, Inc. All rights reserved. Do not distribute without permission.
© 2015 ThoughtWorks, Inc. All rights reserved. Do not distribute without permission.
h: 1m w: 22kg a: 5 cir: 12 cm
© 2015 ThoughtWorks, Inc. All rights reserved. Do not distribute without permission.
© 2015 ThoughtWorks, Inc. All rights reserved. Do not distribute without permission.
© 2015 ThoughtWorks, Inc. All rights reserved. Do not distribute without permission.
© 2015 ThoughtWorks, Inc. All rights reserved. Do not distribute without permission.
THE PROBLEM OF UNCERTAINTY
© 2015 ThoughtWorks, Inc. All rights reserved. Do not distribute without permission.
From uncertainty to opportunityFUTURE
UNCERTAINTY
PRODUCT / SERVICEUNCERTAINTY
FEATUREUNCERTAINTY
DESIGNUNCERTAINTY
ENGINEERINGUNCERTAINTY
WELL-UNDERSTOOD OPPORTUNITY
LATENT UNTAPPED OPPORTUNITY
© 2015 ThoughtWorks, Inc. All rights reserved. Do not distribute without permission. 13
business model
product/ service
engineering
© 2015 ThoughtWorks, Inc. All rights reserved. Do not distribute without permission.
Dealing with future uncertainty
© 2015 ThoughtWorks, Inc. All rights reserved. Do not distribute without permission.
“It must be a marketing problem...”
© 2015 ThoughtWorks, Inc. All rights reserved. Do not distribute without permission.
A new product lifecycle
Scale
Productmarket fit
Problemsolution fit Value
Growth
Scale up/out
© 2015 ThoughtWorks, Inc. All rights reserved. Do not distribute without permission.
CUSTOMERDISCOVERY
© 2015 ThoughtWorks, Inc. All rights reserved. Do not distribute without permission.
Innovation starts herevision, strategy, business goals
ideation
portfolio of ideas
selected experiments:
pivot
fold double down
© 2015 ThoughtWorks, Inc. All rights reserved. Do not distribute without permission.
CUSTOMERVALIDATION
© 2015 ThoughtWorks, Inc. All rights reserved. Do not distribute without permission.
The Feedback Loop
© 2015 ThoughtWorks, Inc. All rights reserved. Do not distribute without permission.
BUILD ANDMEASURE
© 2015 ThoughtWorks, Inc. All rights reserved. Do not distribute without permission.
Continuous Integration Integration early and often.
Everyone checks into trunk at least once a day.
© 2015 ThoughtWorks, Inc. All rights reserved. Do not distribute without permission.
0!
300!
600!
900!
1200!
pain
time
Bring the pain forward.
eager vs. late
© 2015 ThoughtWorks, Inc. All rights reserved. Do not distribute without permission.
Continuous
Integration Integration early and often.
Everyone checks into trunk at least once a day.
Deployment
Deploy as the final stage of continuous integration.
Delivery Software is always in a deployable state.
© 2015 ThoughtWorks, Inc. All rights reserved. Do not distribute without permission.
Agile 101
© 2015 ThoughtWorks, Inc. All rights reserved. Do not distribute without permission.
Continuous Delivery
business needs > operational constraints
© 2015 ThoughtWorks, Inc. All rights reserved. Do not distribute without permission.
Continuous Delivery Metricslead time
cycle time
the time between the initiation and completion of a production process.
the total elapsed time to move a unit of work from the beginning to the end of a physical process
© 2015 ThoughtWorks, Inc. All rights reserved. Do not distribute without permission.
Define your hypotheses
Productmarket fit
Problemsolution fit
I believe [target market] will [take this action / use this solution] for [this reason].
growth hypothesis
value hypothesis
© 2015 ThoughtWorks, Inc. All rights reserved. Do not distribute without permission.
Validate your assumptions
© 2015 ThoughtWorks, Inc. All rights reserved. Do not distribute without permission.
Build a minimum viable product (MVP)
© 2015 ThoughtWorks, Inc. All rights reserved. Do not distribute without permission.
“Hey we released a wheel…”
© 2015 ThoughtWorks, Inc. All rights reserved. Do not distribute without permission.
Release minimum marketable features
© 2015 ThoughtWorks, Inc. All rights reserved. Do not distribute without permission.
Design continuously
minimum marketable
features
user feedback > <
© 2015 ThoughtWorks, Inc. All rights reserved. Do not distribute without permission. 34
Continuous Integration
machinery
© 2015 ThoughtWorks, Inc. All rights reserved. Do not distribute without permission.
Continuous Integration
© 2015 ThoughtWorks, Inc. All rights reserved. Do not distribute without permission. 36
versioncontrol
continuous integrationserver
© 2015 ThoughtWorks, Inc. All rights reserved. Do not distribute without permission. 37
versioncontrol
continuous integrationserver
everyone commits
to trunk at least
once a day
© 2015 ThoughtWorks, Inc. All rights reserved. Do not distribute without permission. 38
Feature Branching
© 2015 ThoughtWorks, Inc. All rights reserved. Do not distribute without permission. 39
Feature Branching
© 2015 ThoughtWorks, Inc. All rights reserved. Do not distribute without permission. 40
Feature Branching
© 2015 ThoughtWorks, Inc. All rights reserved. Do not distribute without permission. 41
Feature Branching
merge ambush!
copy/paste reuse !!
© 2015 ThoughtWorks, Inc. All rights reserved. Do not distribute without permission. 42
Continuous Integration removes the pain…
trunk-based development
© 2015 ThoughtWorks, Inc. All rights reserved. Do not distribute without permission. paulhammant.com/2013/04/05/what-is-trunk-based-development/
© 2015 ThoughtWorks, Inc. All rights reserved. Do not distribute without permission.
[featureToggles]wobblyFoobars: trueflightyForkHandles: false
Config File
<toggle name=wobblyFoobars> ... various UI elements</toggle>
some.jsp
forkHandle = (featureConfig.isOn(‘flightlyForkHandles)) ? new FlightyForkHander(aCandle) : new ForkHandler(aCandle)
other.java
feature toggles
© 2015 ThoughtWorks, Inc. All rights reserved. Do not distribute without permission. www.togglz.org
© 2015 ThoughtWorks, Inc. All rights reserved. Do not distribute without permission.
Canary Releasing
© 2015 ThoughtWorks, Inc. All rights reserved. Do not distribute without permission.
© 2015 ThoughtWorks, Inc. All rights reserved. Do not distribute without permission.
© 2015 ThoughtWorks, Inc. All rights reserved. Do not distribute without permission.
reduce risk of release
multi-variant testing
performance testing
canary releasing
© 2015 ThoughtWorks, Inc. All rights reserved. Do not distribute without permission.
Evolutionary Architecture
production
Components are deployed.
Features are released.
Applications consist of routing.
© 2015 ThoughtWorks, Inc. All rights reserved. Do not distribute without permission.
Evolutionary Architecture
production
Dis-integrate services that
monitoring shows are no longer used
© 2015 ThoughtWorks, Inc. All rights reserved. Do not distribute without permission.
LEARN
© 2015 ThoughtWorks, Inc. All rights reserved. Do not distribute without permission.
Focus on customer outcomes
verify
validate
© 2015 ThoughtWorks, Inc. All rights reserved. Do not distribute without permission.
Focus on the “one metric that matters”
Scale
Productmarket fit
Problemsolution fit
$ % #
© 2015 ThoughtWorks, Inc. All rights reserved. Do not distribute without permission.
Closing the loop
© 2015 ThoughtWorks, Inc. All rights reserved. Do not distribute without permission.
ALIGN
© 2015 ThoughtWorks, Inc. All rights reserved. Do not distribute without permission.
Cross-functional Teams
Build Faster Learn Faster
Measure Faster
mature DevOps incremental deployment
optimize cycle-time testing pyramid
evolutionary architecture emergent design
just-in-time scaling
customer development value hypotheses growth hypotheses product owner accountability cross-functional teams customer interviews customer archetypes / personas
continuous delivery clear product owner
split tests defined metrics usability tests
real-time alerting / monitoring
© 2015 ThoughtWorks, Inc. All rights reserved. Do not distribute without permission.
Continuous alignment
© 2015 ThoughtWorks, Inc. All rights reserved. Do not distribute without permission.
© 2015 ThoughtWorks, Inc. All rights reserved. Do not distribute without permission.
Recap
Software as a strategic advantage
? ! new product lifecycle
© 2015 ThoughtWorks, Inc. All rights reserved. Do not distribute without permission.
Questions?
Continuous Improvement
New Product Innovation
Enterprise Innovation
© 2015 ThoughtWorks, Inc. All rights reserved. Do not distribute without permission.
Thank youthoughtworks.com
Randy Pilkenton Principal M: 678.777.7530 [email protected] Derek Johnson Principal M: 404.245.7020 [email protected]