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 full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size 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 full-size slide

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

    View full-size slide

  8. Case Study
    Support SEPA in invoicing and payment application

    View full-size slide

  9. SEPA
    incasso
    create
    processor

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  14. 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 full-size 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 full-size 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 full-size 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 full-size 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 full-size slide

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

    View full-size slide

  20. You need tests

    View full-size slide

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

    View full-size slide