Upgrade to Pro — share decks privately, control downloads, hide ads and more …

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

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

Arjan van der Gaag

March 11, 2015
Tweet

More Decks by Arjan van der Gaag

Other Decks in Programming

Transcript

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

    View Slide

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

    View Slide

  3. 1. Set a goal
    Represent a starting point, and know when you are done.

    View Slide

  4. 2. Experiment
    Make a simple change and see what breaks.

    View Slide

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

    View Slide

  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.

    View Slide

  7. 4. Undo
    Revert changes after each experiment. Always experiment in a working state.

    View Slide

  8. Case Study
    Support SEPA in invoicing and payment application

    View Slide

  9. SEPA
    incasso

    View Slide

  10. SEPA
    incasso
    create
    processor

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  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

    View Slide

  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

    View Slide

  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






    View Slide

  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








    View Slide

  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









    View Slide

  20. Benefits
    • Keep a stable code base.
    • Track progress.
    • Enables collaboration.
    • Increases communication.
    • Very light-weight.

    View Slide

  21. You need tests

    View Slide

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

    View Slide