Mikado method

Preview:

DESCRIPTION

This talk explains what it's and how Mikado Method works.

Citation preview

Mikado Metho

d

A tool for large-scale refactorings

REFACTOR ?

PRODUCT OWNER

DEVELOPERS

GARDENING

APP

REFACTOR

Refactoring the old way is like removing an old stump…you will also leave some roots…

REFACTOR WITH BRANCHES

Refactoring using branches is like grafting fruit trees…you never know that what you can get.

MIKADO METHOD

Refactoring using the Mikado Methodis like pruning ornamental trees… • You can work in an incremental process.• You can always change the shape.• You always see what you get.

THE OLD WAY

REFACTORING

RIGOROUS ANALYSIS

GUESS

PROBLEMS

APP

My change

APP

My change

APP

My change

APP

My change

APP

My change

APP

My change

REVERT

USING BRANCHES

REFACTORING

WHEN THE BRANCH IS CREATED

MERGING BRANCHES

AFTER MERGING BRANCHES

PROBLEMS

MIKADO METHOD

REFACTORING

Do you know how to play

mikado game?

INCREMENTAL

LIGHTWEIGHT

VISIBILITY

STABILITY

CONTINUOS DEPLOYMENT

COMMUNICATION

LEARNING

WORK DONE

COLLABORATION

WORKLOAD

EASY

HOW IT WORKS ?

COMPILED&

INTERPRETED

Naive implementation

STEP 1

Is something new failing ?

YES - NO -

STEP 2STEP 8

STEP 1.1

What is failing?

STEP 2

Document the pre-requisites

to fix that is failing

STEP 3

Document the graph

STEP 4

Revert your changes.

STEP 5

There are more pre-requisitesin this level?

YES - NO -

STEP 6STEP 7

STEP 5.1

STEP 6Get the next pre-requisite

GOTO repeat the process

STEP 1

STEP 7Down one levelGOTO

STEP

5.1

Pre-requisite has beenFIXED

STEP 8

Document the graph

STEP 9

APP

A change

STEP 1

APP

A change

STEP 2

APP

A change

STEP 3-4

Pre-reqPre-req

Pre-req

APP

A change

STEP 5

Pre-reqPre-req

Pre-req

APP

A change

STEP 5

Pre-reqPre-req

Pre-req

APP

A change

STEP 6-1

Pre-reqPre-req

Pre-req

APP

A change

STEP 2

Pre-reqPre-req

Pre-req

APP

A change

STEP 3-4

Pre-reqPre-req

Pre-req

Pre-req

Pre-req

APP

A change

STEP 5

Pre-reqPre-req

Pre-req

Pre-req

Pre-req

APP

A change

STEP 1

Pre-reqPre-req

Pre-req

Pre-req

Pre-req

APP

A change

STEP 1

Pre-reqPre-req

Pre-req

Pre-req

Pre-req

APP

A change

STEP 1

Pre-reqPre-req

Pre-req

Pre-req

Pre-req

APP

A change

STEP 1

Pre-reqPre-req

Pre-req

Pre-req

Pre-req

APP

A change

STEP 1

Pre-reqPre-req

Pre-req

Pre-req

Pre-req

APP

A change

STEP 1

Pre-reqPre-req

Pre-req

Pre-req

Pre-req

WRITE DOWN YOUR GOAL

SEEK THINGS TO TRY

BACK OUT BROKEN CODE

FIX THE PRE-REQUISITES RECURSIVELY

ALWAYS DELIVERABLE FROM THE MAIN BRANCH

No more broken environmentsNo more merging issues

GOAL FOCUS

Do only the necessary

VISUALIZATION OF GRAPH

Best documentationImprove communication

Improve cooperation

HAPPY TEAM