Mikado Method: A structured method for significant changes in complex code

Mikado Method: A structured method for significant changes in complex code

241eb3a089132c5a0c65e765558a6735?s=128

Arjan van der Gaag

March 11, 2015
Tweet

Transcript

  1. Mikado Method A structured method for significant changes in complex

    code
  2. Change in a jungle of dependencies, broken code and undocumented

    features
  3. 1. Set a goal Represent a starting point, and know

    when you are done.
  4. 2. Experiment Make a simple change and see what breaks.

  5. 3. Visualize Create a dependency graph of steps required to

    achieve the goal.
  6. site is implemented, you can note it in the graph

    with a check mark, as in figure 1.8. Mikado Goal Prerequisite: Immediate solution to errors when implementing Mikado Goal The Mikado Goal can have several direct prerequisites Add more prerequisites... ...linked to the previous Prerequisites can have common dependencies There can be lots of such dependent changes needed Figure 1.8 Check off the solutions as they are completed.
  7. 4. Undo Revert changes after each experiment. Always experiment in

    a working state.
  8. Case Study Support SEPA in invoicing and payment application

  9. SEPA incasso

  10. SEPA incasso create processor

  11. SEPA incasso create processor parse SEPA files add transaction fields

  12. SEPA incasso allow uploads create processor parse SEPA files add

    transaction fields
  13. SEPA incasso allow uploads create processor parse SEPA files add

    transaction fields show SEPA fields
  14. SEPA incasso allow uploads create processor parse SEPA files add

    transaction fields show SEPA fields extract display logic store amounts
  15. SEPA incasso allow uploads create processor parse SEPA files add

    transaction fields show SEPA fields extract display logic store amounts parse stored amounts move parse to processor
  16. SEPA incasso allow uploads create processor parse SEPA files add

    transaction fields show SEPA fields extract display logic store amounts parse stored amounts move parse to processor
  17. SEPA incasso allow uploads create processor parse SEPA files add

    transaction fields show SEPA fields extract display logic store amounts parse stored amounts move parse to processor ✔ ✔ ✔ ✔ ✔ ✔
  18. SEPA incasso allow uploads create processor parse SEPA files add

    transaction fields show SEPA fields extract display logic store amounts parse stored amounts move parse to processor ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
  19. SEPA incasso allow uploads create processor parse SEPA files add

    transaction fields show SEPA fields extract display logic store amounts parse stored amounts move parse to processor ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
  20. Benefits • Keep a stable code base. • Track progress.

    • Enables collaboration. • Increases communication. • Very light-weight.
  21. You need tests

  22. The Mikado Method Ola Ellnestam and Daniel Brolund http://www.manning.com/ellnestam