84
Mikado Method

Mikado method

Embed Size (px)

DESCRIPTION

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

Citation preview

Page 1: Mikado method

Mikado Metho

d

Page 2: Mikado method
Page 3: Mikado method

A tool for large-scale refactorings

Page 4: Mikado method

REFACTOR ?

Page 5: Mikado method

PRODUCT OWNER

Page 6: Mikado method

DEVELOPERS

Page 7: Mikado method

GARDENING

Page 8: Mikado method

APP

Page 9: Mikado method

REFACTOR

Page 10: Mikado method
Page 11: Mikado method

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

Page 12: Mikado method

REFACTOR WITH BRANCHES

Page 13: Mikado method
Page 14: Mikado method

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

Page 15: Mikado method

MIKADO METHOD

Page 16: Mikado method
Page 17: 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.

Page 18: Mikado method

THE OLD WAY

REFACTORING

Page 19: Mikado method

RIGOROUS ANALYSIS

Page 20: Mikado method

GUESS

Page 21: Mikado method

PROBLEMS

Page 22: Mikado method

APP

My change

Page 23: Mikado method

APP

My change

Page 24: Mikado method

APP

My change

Page 25: Mikado method

APP

My change

Page 26: Mikado method

APP

My change

Page 27: Mikado method

APP

My change

Page 28: Mikado method
Page 29: Mikado method

REVERT

Page 30: Mikado method

USING BRANCHES

REFACTORING

Page 31: Mikado method

WHEN THE BRANCH IS CREATED

Page 32: Mikado method

MERGING BRANCHES

Page 33: Mikado method

AFTER MERGING BRANCHES

Page 34: Mikado method

PROBLEMS

Page 35: Mikado method

MIKADO METHOD

REFACTORING

Page 36: Mikado method
Page 37: Mikado method

Do you know how to play

mikado game?

Page 38: Mikado method

INCREMENTAL

Page 39: Mikado method

LIGHTWEIGHT

Page 40: Mikado method

VISIBILITY

Page 41: Mikado method

STABILITY

Page 42: Mikado method

CONTINUOS DEPLOYMENT

Page 43: Mikado method

COMMUNICATION

Page 44: Mikado method

LEARNING

Page 45: Mikado method

WORK DONE

Page 46: Mikado method

COLLABORATION

Page 47: Mikado method

WORKLOAD

Page 48: Mikado method

EASY

Page 49: Mikado method

HOW IT WORKS ?

Page 50: Mikado method

COMPILED&

INTERPRETED

Page 51: Mikado method

Naive implementation

STEP 1

Page 52: Mikado method

Is something new failing ?

YES - NO -

STEP 2STEP 8

STEP 1.1

Page 53: Mikado method

What is failing?

STEP 2

Page 54: Mikado method

Document the pre-requisites

to fix that is failing

STEP 3

Page 55: Mikado method

Document the graph

STEP 4

Page 56: Mikado method

Revert your changes.

STEP 5

Page 57: Mikado method

There are more pre-requisitesin this level?

YES - NO -

STEP 6STEP 7

STEP 5.1

Page 58: Mikado method

STEP 6Get the next pre-requisite

GOTO repeat the process

STEP 1

Page 59: Mikado method

STEP 7Down one levelGOTO

STEP

5.1

Page 60: Mikado method

Pre-requisite has beenFIXED

STEP 8

Page 61: Mikado method

Document the graph

STEP 9

Page 62: Mikado method

APP

A change

STEP 1

Page 63: Mikado method

APP

A change

STEP 2

Page 64: Mikado method

APP

A change

STEP 3-4

Pre-reqPre-req

Pre-req

Page 65: Mikado method

APP

A change

STEP 5

Pre-reqPre-req

Pre-req

Page 66: Mikado method

APP

A change

STEP 5

Pre-reqPre-req

Pre-req

Page 67: Mikado method

APP

A change

STEP 6-1

Pre-reqPre-req

Pre-req

Page 68: Mikado method

APP

A change

STEP 2

Pre-reqPre-req

Pre-req

Page 69: Mikado method

APP

A change

STEP 3-4

Pre-reqPre-req

Pre-req

Pre-req

Pre-req

Page 70: Mikado method

APP

A change

STEP 5

Pre-reqPre-req

Pre-req

Pre-req

Pre-req

Page 71: Mikado method

APP

A change

STEP 1

Pre-reqPre-req

Pre-req

Pre-req

Pre-req

Page 72: Mikado method

APP

A change

STEP 1

Pre-reqPre-req

Pre-req

Pre-req

Pre-req

Page 73: Mikado method

APP

A change

STEP 1

Pre-reqPre-req

Pre-req

Pre-req

Pre-req

Page 74: Mikado method

APP

A change

STEP 1

Pre-reqPre-req

Pre-req

Pre-req

Pre-req

Page 75: Mikado method

APP

A change

STEP 1

Pre-reqPre-req

Pre-req

Pre-req

Pre-req

Page 76: Mikado method

APP

A change

STEP 1

Pre-reqPre-req

Pre-req

Pre-req

Pre-req

Page 77: Mikado method
Page 78: Mikado method

WRITE DOWN YOUR GOAL

SEEK THINGS TO TRY

BACK OUT BROKEN CODE

FIX THE PRE-REQUISITES RECURSIVELY

Page 79: Mikado method
Page 80: Mikado method

ALWAYS DELIVERABLE FROM THE MAIN BRANCH

No more broken environmentsNo more merging issues

Page 81: Mikado method

GOAL FOCUS

Do only the necessary

Page 82: Mikado method

VISUALIZATION OF GRAPH

Best documentationImprove communication

Improve cooperation

Page 83: Mikado method

HAPPY TEAM

Page 84: Mikado method