Successfully reported this slideshow.

Mikado Method - Beheading the Legacy Beast - Agile India 2012

4

Share

Upcoming SlideShare
Mikadomethod tad2011
Mikadomethod tad2011
Loading in …3
×
1 of 61
1 of 61

More Related Content

Related Audiobooks

Free with a 14 day trial from Scribd

See all

Mikado Method - Beheading the Legacy Beast - Agile India 2012

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

×