Slide 1

Slide 1 text

Mikado Method A structured method for significant changes in complex code

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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.

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

Case Study Support SEPA in invoicing and payment application

Slide 9

Slide 9 text

SEPA incasso

Slide 10

Slide 10 text

SEPA incasso create processor

Slide 11

Slide 11 text

SEPA incasso create processor parse SEPA files add transaction fields

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

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 ✔ ✔ ✔ ✔ ✔ ✔

Slide 18

Slide 18 text

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 ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔

Slide 19

Slide 19 text

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 ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

You need tests

Slide 22

Slide 22 text

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