On the Care and Feeding of Feedback Cycles Elisabeth Hendrickson
Blog: testobsessed.com
Twitter: @testobsessed
Slides Last updated November 1, 2013
copyright © 2013 Elisabeth Hendrickson
Available from: http://www.slideshare.net/ehendrickson/presentations
Who Am I?
Author Recovering Consultant
Director, Quality Engineering
Elis
abet
h H
endr
icks
on @
test
obse
ssed
What Do We Need Feedback On?
Implementation
Actual Need
Intentions
Elis
abet
h H
endr
icks
on @
test
obse
ssed
Elis
abet
h H
endr
icks
on @
test
obse
ssed
Feedback Enables Steering
Observe
Orient
Decide
Act OODA
Plan
Do
Check
Act PDCA
Build
Measure Learn
Lean Startup
The Problem with Long Feedback Latency
Reference: Peter Senge, Fifth Discipline
A Traditional Long Feedback Cycle (and why no one does this anymore)
Elis
abet
h H
endr
icks
on @
test
obse
ssed
Release
First opportunity to see if intentions match implementation
18 month dev cycle
First opportunity to see if implementation matches need
Implement
Test
Design
Analyze
Elis
abet
h H
endr
icks
on @
test
obse
ssed
Speculation Buildup Sp
ecul
atio
n
Analyze Design Implement Stabilize Big Bang Release
Every. Single. Time.
Empirical Evidence
speculation!
Elis
abet
h H
endr
icks
on @
test
obse
ssed
Time Value of Information
A piece of information today is worth more
than that same information tomorrow
Agile eliminates speculation buildup…
Spec
ulat
ion
Elis
abet
h H
endr
icks
on @
test
obse
ssed
When “Done” isn’t Really Done
Spec
ulat
ion
Iterations…
Stabilize
Elis
abet
h H
endr
icks
on @
test
obse
ssed
Example of Feedback Loops
Automated Unit Tests
Automated System Tests
CI build w/ tests
Statistical analysis of production metrics
Manual scripted regression testing
Exploring
Customer Opinion
Elis
abet
h H
endr
icks
on @
test
obse
ssed
A Recipe for Fast-and-Complete Feedback
• Automatically check that the emerging system behaves as expected with every new change.
• Explore both to discover other risks and to verify that the checks are sufficient.
• Release early and often.
+ +
Elis
abet
h H
endr
icks
on @
test
obse
ssed
Tightening a Feedback Cycle
spec or story Source
Control code
test
deploy
Observe results Generate ideas
Work in Small Pieces
story
Integrate and Test Locally
code and test
Red
Green Clean
TDD
Source Control
Automate to Eliminate Wait States
test
deploy
Long Running Automated Tests?
• Remove duplication
• Drive tests to lowest level
• Run in parallel
Tighten Feedback Loops (Example)
Code Review
Check in on Private
Branch
Unit Test
Merge Unit Test System
Test
System Test in
Local Env
Check into Master
Run local tests
CI Runs All Tests Pair
BEFORE: days - weeks
AFTER: mins - hours
Elis
abet
h H
endr
icks
on @
test
obse
ssed
Make Feedback Visible
Further Reading