Upload
elisabeth-hendrickson
View
1.587
Download
4
Tags:
Embed Size (px)
DESCRIPTION
Presented at Flowcon SF on Nov 1, 2013 Nothing interrupts the continuous flow of value like bad surprises that require immediate attention: major defects; service outages; support escalations; or even scrapping just-completed capabilities that don't actually meet business needs. You already know that the sooner you can discover a problem, the sooner and more smoothly you can remedy it. Agile practices involve testing early and often. However feedback comes in many forms, only some of which are traditionally considered testing. Continuous integration, acceptance testing with users, even cohort analysis to validate business hypotheses are all examples of feedback cycles. This talk examines the many forms of feedback, the questions each can answer, and the risks each can mitigate. We'll take a fresh look at the churn and disruption created by having high feedback latency, when the time between taking an action and discovering its effect is too long. We'll also consider how addressing "bugs" that may not be detracting from the actual business value can distract us from addressing real risks. Along the way we'll consider fundamental principles that you can apply immediately to keep your feedback cycles healthy and happy.
Citation preview
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