12. DON’T TAKE MY WORD FOR IT…
Reducing batch size…
reduces cycle time
reduces variability in flow
accelerates feedback
reduces risk
reduces overhead
Large batches…
reduce efficiency
inherently lower motivation and energy
cause exponential cost and schedule growth
lead to even larger batches
The entire batch is limited by its worst element
Chapter 5 – Reducing Batch Size
13. Local tests pass, Rollback
engineer commits (Blocks)
code
No
Lots and lots of Metrics Yes Code deployed to
tests run good? all servers
All tests Yes Code deployed to Metrics
No
pass? % of servers still
good?
No Yes
Revert commit
Win!
(Blocks)
14. Local tests pass, Rollback
engineer commits (Blocks)
code
No
Lots and lots of Metrics Yes Code deployed to
tests run good? all servers
All tests Yes Code deployed to Metrics
No
pass? % of servers still
good?
No Yes
Revert commit
Win!
(Blocks)
18. Local tests pass, Rollback
engineer commits (Blocks)
code
No
Lots and lots of Metrics Yes Code deployed to
tests run good? all servers
All tests Yes Code deployed to Metrics
No
pass? % of servers still
good?
No Yes
Revert commit
Win!
(Blocks)
21. Local tests pass, Rollback
engineer commits (Blocks)
code
No
Lots and lots of Metrics Yes Code deployed to
tests run good? all servers
All tests Yes Code deployed to Metrics
No
pass? % of servers still
good?
No Yes
Revert commit
Win!
(Blocks)
22.
23. Local tests pass, Rollback
engineer commits (Blocks)
code
No
Lots and lots of Metrics Yes Code deployed to
tests run good? all servers
All tests Yes Code deployed to Metrics
No
pass? % of servers still
good?
No Yes
Revert commit
Win!
(Blocks)
25. IS IT IMPORTANT TO YOUR BUSINESS?
MONITOR IT
SYSTEM PERFORMANCE BUSINESS PERFORMANCE
26. Local tests pass, Rollback
engineer commits (Blocks)
code
No
Lots and lots of Metrics Yes Code deployed to
tests run good? all servers
All tests Yes Code deployed to Metrics
No
pass? % of servers still
good?
No Yes
Revert commit
Win!
(Blocks)
27.
28. Local tests pass, Rollback
engineer commits (Blocks)
code
No
Lots and lots of Metrics Yes Code deployed to
tests run good? all servers
All tests Yes Code deployed to Metrics
No
pass? % of servers still
good?
No Yes
Revert commit
Win!
(Blocks)
29. Local tests pass, Rollback
engineer commits (Blocks)
code
No
Lots and lots of Metrics Yes Code deployed to
tests run good? all servers
All tests Yes Code deployed to Metrics
No
pass? % of servers still
good?
No Yes
Revert commit
Win!
(Blocks)
30. Local tests pass, Rollback
engineer commits (Blocks)
code
No
Lots and lots of Metrics Yes Code deployed to
tests run good? all servers
All tests Yes Code deployed to Metrics
No
pass? % of servers still
good?
No Yes
Revert commit
Win!
(Blocks)
32. COMMIT TO MAKING FORWARD PROGRESS
NEW PRODUCT ESTABLISHED PRODUCT
START WITH SANDBOX START WITH PRODUCTION
JUST PUSH! AUTOMATE DEPLOYS
IDEAL TIME FOR FAILURES!!! BUILD CONFIDENCE
32
35. BUILD ISOLATION!
FASTER TEST RUNS
BUY HARDWARE
SORT TESTS BY SPEED
DEPENDENCY INJECTION
AND…
THE HYPOTHESIS BUILDER!
36.
37. The
Trickier
Bits
• Catching
issues
that
fail
slowly
– SELECT * FROM growing_table WHERE 1
• Some
cri9cal
areas
cause
hard
lock-‐ups
– MySQL
– Memcached
• Lack
of
test
coverage
of
older
code
– Not
an
issue
if
you
start
with
test
coverage
• Outsourcing
37
45. REALITY STRIKES
When releases
happen every 15
minutes, this can be
arbitrary
Outstanding Issues
Incomplete Features
Tech Review
Refactoring
Work Remaining
Drop or
push
Sprint Start Planned Sprint End
46. END THE SPRINT WHEN
WORK IS DONE
Work Remaining
Overage
Sprint Start Sprint End Goal Sprint End
49. Thank
You!
Any
Ques9ons?
BreH
G.
DurreH
IMVU recognized as:
bdurreH@imvu.com
Inc. 500
TwiHer:
@bdurreH
http://bit.ly/dv52wK
Red Herring 100:
Tweet
this
talk!
http://bit.ly/bbz5Ex
Best Place to Work:
http://bit.ly/aAVdp8
@bdurreH
(and we're hiring)
http://www.imvu.com/jobs
49
50. Thank
You!
• The
amazing
engineers
at
IMVU
that
make
this
possible
• Patrick
Vlaskovitz,
Joe
Zulli
and
Peter
Mauro
for
invi9ng
me
to
speak
at
LeanLA
• Avesta
Rasouli
and
CoLoX
for
hos9ng
and
providing
a
great
workspace
• John
Overmeyer,
Single
Lane
Traffic
Photo:
hHp://www.flickr.com/photos/onebigchickenman/4869442019/
50