Mikado Method - Beheading the Legacy Beast - Agile India 20121. Beheading the legacy
beast
Refactorings & restructurings with
The Mikado Method
Daniel Brolund @danielbrolund
#mikadomethod @mikadomethod
3. Code
ch ange
horr
or st
ories
!!
8. ✘
✘
✘✘
A change
✘✘✘
✘
...but we got some errors...
9. ✘
✘
✘✘
A change
✘✘✘
✘
Patching led to more errors...
10. ✘
✘
✘✘
✘ ✘ ✘
✘
✘ ✘✘
A change
✘✘✘
✘
Patching led to more errors...
11. ✘
✘
✘ ✘ ✘
✘
✘
✘✘
✘ ✘ ✘
✘
✘ ✘✘
A change
✘✘✘
✘
Patching led to more errors...
12. ✘
✘
✘ ✘ ✘
✘
✘
✘✘
✘ ✘ ✘
✘
✘ ✘✘
A change
✘✘✘ ✘
✘ ✘
✘
✘
✘
✘ ✘✘
✘
Patching led to more errors...
13. ✘
✘
✘ ✘ ✘
✘
✘
✘✘
✘ ✘ ✘
✘
✘ ✘✘
A change
✘✘✘ ✘
✘ ✘
✘
✘
✘
✘ ✘✘
✘
...and each patch led to even more errors...
14. ✘
✘ ✘ ✘
✘ ✘ ✘
✘ ✘ ✘
✘ ✘ ✘
✘
✘ ✘ ✘
✘
✘ ✘
✘ ✘ ✘✘
✘ ✘ ✘
✘ ✘
✘ ✘✘ ✘ ✘
✘
✘ ✘ A change
✘✘✘ ✘
✘ ✘
✘ ✘
✘ ✘ ✘
✘
✘ ✘✘
✘ ✘
✘ ✘ ✘
✘ ✘
...and each patch led to even more errors...
15. ✘
✘ ✘ ✘
✘ ✘ ✘
✘ ✘ ✘
✘ ✘ ✘
✘
✘ ✘ ✘
✘
✘ ✘
✘ ✘ ✘✘
✘ ✘ ✘
✘ ✘
✘ ✘✘ ✘ ✘
✘
✘ ✘ A change
✘✘✘ ✘
✘ ✘
✘ ✘
✘ ✘ ✘
✘
✘ ✘✘
✘ ✘
✘ ✘ ✘
✘ ✘
Like trying to stop the shockwave with our hands...
16. ✘
✘ ✘ ✘
✘ ✘ ✘
✘ ✘ ✘
✘ ✘ ✘
✘
✘ ✘ ✘
✘
✘ ✘
✘ ✘ ✘✘
✘ ✘ ✘
✘ ✘
✘ ✘✘ ✘ ✘
✘
✘ ✘ A change
✘✘✘ ✘
✘ ✘
✘ ✘
✘ ✘ ✘
✘
✘ ✘✘
✘ ✘
✘ ✘ ✘
✘ ✘
We could only revert.
21. ✘✘ ✘
✘
A change
✘✘✘
✘
...the same
errors...
22. This time, we noted a
prerequisite for each
of the errors...
✘✘ ✘
✘
A change
✘✘✘
✘
23. This time, we noted a
prerequisite for each
of the errors...
Prereq ✘
✘✘ ✘
A change
✘✘✘
✘
24. This time, we noted a
prerequisite for each
of the errors...
Prereq ✘ Prereq
✘✘ ✘
A change
✘✘✘
✘
25. This time, we noted a
prerequisite for each
of the errors...
Prereq ✘ Prereq
✘✘ ✘
A change
✘✘✘
Prereq ✘
27. Then we Prereq Prereq
implemented the A change
prerequisites, one at a
time... Prereq
28. Then we Prereq Prereq
implemented the A change
prerequisites, one at a
time... Prereq
29. ...got new
errors...
✘ ✘
✘✘
✘✘ ✘
✘
Prereq Prereq
A change
Prereq
30. ...noted the new
prerequisites...
✘ ✘
✘✘
✘✘ ✘
✘
Prereq Prereq
A change
Prereq
31. ...noted the new
prerequisites...
✘ ✘
✘✘
Prereq✘✘ ✘
✘
Prereq Prereq
A change
Prereq
32. ...noted the new
prerequisites...
Prereq✘✘ ✘
✘
Prereq✘✘ ✘
✘
Prereq Prereq
A change
Prereq
35. Picked the
next leaf
a.s.o... Prereq
Prereq
Prereq Prereq
A change
Prereq
36. ...until we could do a
prerequisite w/o
errors
Prereq
Prereq
✔
Prereq Prereq
A change
Prereq
37. We continued
with all leaves...
Prereq
✔
Prereq
✔
Prereq Prereq
A change
Prereq
38. Prereq
✔
Prereq
✔
Prereq ✔ Prereq
...getting transient A change
prerequisites in place...
Prereq
39. Prereq
✔
Prereq
✔
Prereq ✔ ✔ ...fulfilling
Prereq
prerequisites...
A change
Prereq
40. Prereq
✔
Prereq
✔
Prereq ✔ ✔
Prereq
A change
...working the way
Prereq ✔ back to the
original change
41. Prereq
✔
Prereq
✔
Prereq ✔ ✔
Prereq
A change
Prereq ✔
In time, all prerequisites
for the original change
were in place...
42. Prereq
✔
Prereq
✔
Prereq ✔ ✔
Prereq
A change
✔
Prereq ✔
The change was now
easy to implement.
43. Prereq
✔
Prereq
✔
Prereq ✔ ✔
Prereq
A change
✔
Prereq ✔
We’re done!
46. Mikado Method
“rules”
Write down yo ur goal
Seek things to try
47. Mikado Method
“rules”
Write down yo ur goal
Seek things to try
Back out broken cod
e
48. Mikado Method
“rules”
Write down yo ur goal
Seek things to try
Back out broken cod
e
es re cursively
rere quisit
Fix the p
60. The book Beheading the
Legacy Beast
Relentless restructurings with
Daniel Brolund @danielbrolund The Mikado Method
Ola Ellnestam @ellnestam
#mikadomethod @mikadomethod
http://mikadomethod.org
http://mikadomethod.wordpress.com/book
http://groups.google.com/group/mikado-method Daniel Brolund
Ola Ellnestam
Foreword by Tom Poppendieck