Your SlideShare is downloading. ×
Mikado Method - Beheading the Legacy Beast - Agile India 2012
Mikado Method - Beheading the Legacy Beast - Agile India 2012
Mikado Method - Beheading the Legacy Beast - Agile India 2012
Mikado Method - Beheading the Legacy Beast - Agile India 2012
Mikado Method - Beheading the Legacy Beast - Agile India 2012
Mikado Method - Beheading the Legacy Beast - Agile India 2012
Mikado Method - Beheading the Legacy Beast - Agile India 2012
Mikado Method - Beheading the Legacy Beast - Agile India 2012
Mikado Method - Beheading the Legacy Beast - Agile India 2012
Mikado Method - Beheading the Legacy Beast - Agile India 2012
Mikado Method - Beheading the Legacy Beast - Agile India 2012
Mikado Method - Beheading the Legacy Beast - Agile India 2012
Mikado Method - Beheading the Legacy Beast - Agile India 2012
Mikado Method - Beheading the Legacy Beast - Agile India 2012
Mikado Method - Beheading the Legacy Beast - Agile India 2012
Mikado Method - Beheading the Legacy Beast - Agile India 2012
Mikado Method - Beheading the Legacy Beast - Agile India 2012
Mikado Method - Beheading the Legacy Beast - Agile India 2012
Mikado Method - Beheading the Legacy Beast - Agile India 2012
Mikado Method - Beheading the Legacy Beast - Agile India 2012
Mikado Method - Beheading the Legacy Beast - Agile India 2012
Mikado Method - Beheading the Legacy Beast - Agile India 2012
Mikado Method - Beheading the Legacy Beast - Agile India 2012
Mikado Method - Beheading the Legacy Beast - Agile India 2012
Mikado Method - Beheading the Legacy Beast - Agile India 2012
Mikado Method - Beheading the Legacy Beast - Agile India 2012
Mikado Method - Beheading the Legacy Beast - Agile India 2012
Mikado Method - Beheading the Legacy Beast - Agile India 2012
Mikado Method - Beheading the Legacy Beast - Agile India 2012
Mikado Method - Beheading the Legacy Beast - Agile India 2012
Mikado Method - Beheading the Legacy Beast - Agile India 2012
Mikado Method - Beheading the Legacy Beast - Agile India 2012
Mikado Method - Beheading the Legacy Beast - Agile India 2012
Mikado Method - Beheading the Legacy Beast - Agile India 2012
Mikado Method - Beheading the Legacy Beast - Agile India 2012
Mikado Method - Beheading the Legacy Beast - Agile India 2012
Mikado Method - Beheading the Legacy Beast - Agile India 2012
Mikado Method - Beheading the Legacy Beast - Agile India 2012
Mikado Method - Beheading the Legacy Beast - Agile India 2012
Mikado Method - Beheading the Legacy Beast - Agile India 2012
Mikado Method - Beheading the Legacy Beast - Agile India 2012
Mikado Method - Beheading the Legacy Beast - Agile India 2012
Mikado Method - Beheading the Legacy Beast - Agile India 2012
Mikado Method - Beheading the Legacy Beast - Agile India 2012
Mikado Method - Beheading the Legacy Beast - Agile India 2012
Mikado Method - Beheading the Legacy Beast - Agile India 2012
Mikado Method - Beheading the Legacy Beast - Agile India 2012
Mikado Method - Beheading the Legacy Beast - Agile India 2012
Mikado Method - Beheading the Legacy Beast - Agile India 2012
Mikado Method - Beheading the Legacy Beast - Agile India 2012
Mikado Method - Beheading the Legacy Beast - Agile India 2012
Mikado Method - Beheading the Legacy Beast - Agile India 2012
Mikado Method - Beheading the Legacy Beast - Agile India 2012
Mikado Method - Beheading the Legacy Beast - Agile India 2012
Mikado Method - Beheading the Legacy Beast - Agile India 2012
Mikado Method - Beheading the Legacy Beast - Agile India 2012
Mikado Method - Beheading the Legacy Beast - Agile India 2012
Mikado Method - Beheading the Legacy Beast - Agile India 2012
Mikado Method - Beheading the Legacy Beast - Agile India 2012
Mikado Method - Beheading the Legacy Beast - Agile India 2012
Mikado Method - Beheading the Legacy Beast - Agile India 2012
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Mikado Method - Beheading the Legacy Beast - Agile India 2012

988

Published on

0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
988
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
31
Comments
0
Likes
4
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Beheading the legacy beastRefactorings & restructurings withThe Mikado Method Daniel Brolund @danielbrolund #mikadomethod @mikadomethod
  • 2. Code ch ange horr or st ories !!
  • 3. Once upon a time,we were to change a codebase...
  • 4. Lets say this was our system...
  • 5. A changeWe were to make a change...
  • 6. ✘ ✘ ✘✘ A change ✘✘✘ ✘...but we got some errors...
  • 7. ✘ ✘ ✘✘ A change ✘✘✘ ✘Patching led to more errors...
  • 8. ✘ ✘ ✘✘✘ ✘ ✘ ✘ ✘ ✘✘ A change ✘✘✘ ✘Patching led to more errors...
  • 9. ✘ ✘ ✘ ✘ ✘ ✘ ✘ ✘✘✘ ✘ ✘ ✘ ✘ ✘✘ A change ✘✘✘ ✘Patching led to more errors...
  • 10. ✘ ✘ ✘ ✘ ✘ ✘ ✘ ✘✘✘ ✘ ✘ ✘ ✘ ✘✘ A change ✘✘✘ ✘ ✘ ✘ ✘ ✘ ✘ ✘ ✘✘ ✘Patching led to more errors...
  • 11. ✘ ✘ ✘ ✘ ✘ ✘ ✘ ✘✘ ✘ ✘ ✘ ✘ ✘ ✘✘ A change ✘✘✘ ✘ ✘ ✘ ✘ ✘ ✘ ✘ ✘✘ ✘...and each patch led to even more errors...
  • 12. ✘ ✘ ✘ ✘ ✘ ✘ ✘ ✘ ✘ ✘ ✘ ✘ ✘ ✘ ✘ ✘ ✘ ✘ ✘ ✘ ✘ ✘ ✘✘ ✘ ✘ ✘ ✘ ✘ ✘ ✘✘ ✘ ✘ ✘ ✘ ✘ A change ✘✘✘ ✘ ✘ ✘ ✘ ✘ ✘ ✘ ✘ ✘ ✘ ✘✘ ✘ ✘ ✘ ✘ ✘ ✘ ✘...and each patch led to even more errors...
  • 13. ✘ ✘ ✘ ✘ ✘ ✘ ✘ ✘ ✘ ✘ ✘ ✘ ✘ ✘ ✘ ✘ ✘ ✘ ✘ ✘ ✘ ✘ ✘✘ ✘ ✘ ✘ ✘ ✘ ✘ ✘✘ ✘ ✘ ✘ ✘ ✘ A change ✘✘✘ ✘ ✘ ✘ ✘ ✘ ✘ ✘ ✘ ✘ ✘ ✘✘ ✘ ✘ ✘ ✘ ✘ ✘ ✘Like trying to stop the shockwave with our hands...
  • 14. ✘ ✘ ✘ ✘ ✘ ✘ ✘ ✘ ✘ ✘ ✘ ✘ ✘ ✘ ✘ ✘ ✘ ✘✘ ✘ ✘ ✘ ✘✘ ✘ ✘ ✘ ✘ ✘ ✘ ✘✘ ✘ ✘ ✘ ✘ ✘ A change ✘✘✘ ✘ ✘ ✘ ✘ ✘ ✘ ✘ ✘ ✘ ✘ ✘✘ ✘ ✘ ✘ ✘ ✘ ✘ ✘ We could only revert.
  • 15. We could only revert.
  • 16. But we reallyneeded to do that change!
  • 17. A changeThe samechange...
  • 18. ✘✘ ✘ ✘ A change ✘✘✘ ✘...the same errors...
  • 19. This time, we noted a prerequisite for each of the errors...✘✘ ✘ ✘ A change ✘✘✘ ✘
  • 20. This time, we noted a prerequisite for each of the errors...Prereq ✘ ✘✘ ✘ A change ✘✘✘ ✘
  • 21. This time, we noted a prerequisite for each of the errors...Prereq ✘ Prereq ✘✘ ✘ A change ✘✘✘ ✘
  • 22. This time, we noted a prerequisite for each of the errors...Prereq ✘ Prereq ✘✘ ✘ A change ✘✘✘ Prereq ✘
  • 23. ...then we reverted the errors, but we kept the notes!Prereq Prereq A change Prereq
  • 24. Then we Prereq Prereq implemented the A changeprerequisites, one at a time... Prereq
  • 25. Then we Prereq Prereq implemented the A changeprerequisites, one at a time... Prereq
  • 26. ...got new errors... ✘ ✘ ✘✘ ✘✘ ✘ ✘ Prereq Prereq A change Prereq
  • 27. ...noted the new prerequisites... ✘ ✘ ✘✘ ✘✘ ✘ ✘ Prereq Prereq A change Prereq
  • 28. ...noted the new prerequisites... ✘ ✘ ✘✘ Prereq✘✘ ✘ ✘ Prereq Prereq A change Prereq
  • 29. ...noted the new prerequisites... Prereq✘✘ ✘ ✘ Prereq✘✘ ✘ ✘ Prereq Prereq A change Prereq
  • 30. ...andreverted again Prereq✘✘ ✘ ✘ Prereq✘✘ ✘ ✘ Prereq Prereq A change Prereq
  • 31. ...andreverted again Prereq Prereq Prereq Prereq A change Prereq
  • 32. Picked the next leaf a.s.o... Prereq Prereq Prereq Prereq A change Prereq
  • 33. ...until we could do a prerequisite w/o errors Prereq Prereq ✔ Prereq Prereq A change Prereq
  • 34. We continued with all leaves... Prereq ✔Prereq ✔ Prereq Prereq A change Prereq
  • 35. Prereq ✔ Prereq ✔ Prereq ✔ Prereq ...getting transient A changeprerequisites in place... Prereq
  • 36. Prereq ✔Prereq ✔ Prereq ✔ ✔ ...fulfilling Prereq prerequisites... A change Prereq
  • 37. Prereq ✔Prereq ✔ Prereq ✔ ✔ Prereq A change ...working the way Prereq ✔ back to the original change
  • 38. Prereq ✔Prereq ✔ Prereq ✔ ✔ Prereq A change Prereq ✔ In time, all prerequisites for the original change were in place...
  • 39. Prereq ✔Prereq ✔ Prereq ✔ ✔ Prereq A change ✔ Prereq ✔ The change was now easy to implement.
  • 40. Prereq ✔Prereq ✔ Prereq ✔ ✔ Prereq A change ✔ Prereq ✔ We’re done!
  • 41. Mikado Method “rules”
  • 42. Mikado Method “rules”Write down yo ur goal
  • 43. Mikado Method “rules”Write down yo ur goal Seek things to try
  • 44. Mikado Method “rules” Write down yo ur goal Seek things to tryBack out broken cod e
  • 45. Mikado Method “rules” Write down yo ur goal Seek things to tryBack out broken cod e es re cursively rere quisit Fix the p
  • 46. Benefits
  • 47. BenefitsAlways deliverable - from the main branch
  • 48. BenefitsAlways deliverable - from the main branch Goal focus - do only the necessary
  • 49. BenefitsAlways deliverable - from the main branch Goal focus - do only the necessary Visualization - memo and cooperation
  • 50. The Mikado Method?!?
  • 51. The Mikado Method?!?
  • 52. ?!?Now, where’s the code...?!?
  • 53. Lets do an example!
  • 54. Welcome to Pasta Inc.
  • 55. Exercise: D.I.Y.Instructions:http://mikadomethod.wordpress.com/exercises/Code:https://github.com/mikadomethod/kata-javaGit:git clone git://github.com/mikadomethod/kata-java.gitgit clone git://github.com/mikadomethod/kata-dotnet.git
  • 56. The book Beheading the Legacy Beast Relentless restructurings withDaniel Brolund @danielbrolund The Mikado MethodOla Ellnestam @ellnestam#mikadomethod @mikadomethodhttp://mikadomethod.orghttp://mikadomethod.wordpress.com/bookhttp://groups.google.com/group/mikado-method Daniel Brolund Ola Ellnestam Foreword by Tom Poppendieck
  • 57. Questions? ???...or catch me later!

×