111
DDD EUROPE PRESENTS…

The precision blade

Embed Size (px)

Citation preview

Page 1: The precision blade

DDD EUROPE PRESENTS…

Page 2: The precision blade

A @ZIOBRANDO PRODUCTION

Page 3: The precision blade
Page 4: The precision blade

IN THE LAST EPISODES…

Page 5: The precision blade

NOBODY TALKS ABOUT THEIR DOMAIN

Page 6: The precision blade

WHO CAN BE THAT STUPID?

Page 7: The precision blade

ABOUT ME

• Started coding in 1982

• Entered DDD in 2005

• Met Eric

• Started Avanscoperta

• Met Greg

• Event-Based Modelling in 2012

• Blast during Vaughn’s tour

• EventStorming in 2013

• Started EventStormers community

• 348 members (on Google+)

Page 8: The precision blade

SOFTWARE DEVELOPMENT IS A LEARNING PROCESS

Page 9: The precision blade

WORKING CODE IS A SIDE EFFECT

Page 10: The precision blade

I USE

INSTEAD

Page 11: The precision blade

INVITE THE RIGHT PEOPLE

PEOPLE WITH QUESTIONS PEOPLE WITH ANSWERS

A FACILITATOR

Page 12: The precision blade

PROVIDE AN UNLIMITED MODELLING SURFACE

AND BE PREPARED TO EXPAND IT

Page 13: The precision blade

MODEL WITH DOMAIN EVENTS ALONG A TIMELINE

Page 14: The precision blade

REALLY SIMPLE

Page 15: The precision blade

THEN IT GROWS…

Page 16: The precision blade

(EXTERNAL SYSTEMS, IN PINK)

AND GROWS…

Page 17: The precision blade

(HOTSPOTS, IN PURPLE)

AND GROWS…

Page 18: The precision blade

THE GOAL(S) OF A BIG PICTURE

EVENTSTORMING

Page 19: The precision blade

1. ARE WE SOLVING THE

RIGHT PROBLEM?

Page 20: The precision blade

ARE WE SOLVING THE RIGHT PROBLEM?CALL IT “CORE”, CALL IT “BOTTLENECK”…

… PEOPLE WILL “TELL” YOU WHAT THE REAL PROBLEM IS

AND PLEASE READ “THE GOAL” IF YOU HAVEN’T

Page 21: The precision blade

DOES IT MATTER?

Page 22: The precision blade

WHERE DETAILS ARE MAKING A DIFFERENCE…

IN THE CORE DOMAIN…

• Creative

• Always looking for alternatives

• Continuously refining solutions

• Perfectionist

Page 23: The precision blade

IN A FIXED-BUDGET NON-CRITICAL PART OF THE DOMAIN

SOMEWHERE ELSE

• Creative

• Always looking for alternatives

• Continuously refining solutions

• Perfectionist

TROUBLEMAKER

Page 24: The precision blade

2. CAN WE SUCCEED?

Page 25: The precision blade

MAKING THE RISK OBSERVABLE

EXTERNAL SYSTEMS & HOTSPOTS

PEOPLE AND POLITICS

Page 26: The precision blade

IS MY WALKING SKELETON

Page 27: The precision blade

NOT EVERY BATTLE IS WORTH FIGHTING

OUTCOMES

• We’re on a problem worth solving:

• let’s prototype a solution right now!!

• Ouch! …the real problem is somewhere else.

• Fine, let’s use the money more wisely.

• Ouch! …they can’t even agree on the problem…

• Shake hands, smile, and leave quietly.

Page 28: The precision blade

LET’S ASSUME WE’RE LUCKY

Page 29: The precision blade

OUR BACKLOG

Page 30: The precision blade

• The involved Domain Experts

• The Development Team (including UX)

• a Facilitator

• Unlimited Modelling Space

• Unlimited Surface

• Unlimited Supply of markers, stickies and so on

• We’ll have only to take care of our limited Energy.

OUR TEAM

Page 31: The precision blade

TECHNICAL TRAININGS

OUR SAMPLE DOMAIN

• My Company —> We have a real domain expert here…

• Public & Private Training and workshops, (plus coaching &mentoring).

Page 32: The precision blade

HOW DID WE GET THERE?

Page 33: The precision blade

MORE GUESSING THAN EXPLANATION

Page 34: The precision blade

IT’S A LEARNING PROCESS!

Page 35: The precision blade

SKIP THE BORING PARTS

IF THERE’S TIME: THE REAL REASON WHY I AM NOT A PIANO PLAYER!

Page 36: The precision blade

DONEC QUIS NUNC

Page 37: The precision blade
Page 38: The precision blade
Page 39: The precision blade

LET’S TRY AGAIN!

Page 40: The precision blade

A TICKET!

Page 41: The precision blade

AND THE CORRESPONDING COMMANDS

Page 42: The precision blade

ANY CANDIDATE NAMES…

Page 43: The precision blade

WHAT IF SOMEBODY DOESN’T SHOW UP?

Page 44: The precision blade

ANYTHING ELSE?

Page 45: The precision blade
Page 46: The precision blade
Page 47: The precision blade

GETTING THERE…

Page 48: The precision blade
Page 49: The precision blade

• Can we transfer it?

• Good question. In fact this never happen with individual purchases, they usually ask for a refund, or if they can reuse the ticket with a different edition of the same training class.

• What can happen instead is companies, buying a group ticket, asking to switch people, or delaying actual participant names till he very last moment.

Page 50: The precision blade

• Can we transfer it?

• Good question. In fact this never happens with individual purchases, they usually ask for a refund, or if they can reuse the ticket with a different edition of the same training class.

• What can happen instead is companies, buying a group ticket, asking to switch people, or delaying actual participant names till he very last moment.

Page 51: The precision blade

I LOVE THIS MESS!

CAPTURE IT! ALL OF IT.

YES, EVEN IF IT MEANS A LOT MORE STICKY NOTES

Page 52: The precision blade

ADD MORE SPACE!

Page 53: The precision blade

— Anonymous

WHAT IF TICKET IS AN ABSTRACT CLASS? WITH INDIVIDUAL AND GROUP

TICKET AS SEPARATE SUBCLASSES

Page 54: The precision blade
Page 55: The precision blade

… WE INVITED THE RIGHT PEOPLE!

Page 56: The precision blade

• There’s no need for any automatic operation. It only happened once. Doing it manually (whatever that means) is fine.

Page 57: The precision blade

• Talking with the right people, we might get the answers we like.

• The complexity is in the domain, it’s just not necessarily worth implementing.

Page 58: The precision blade

1. MAKE IT VISIBLE 2. SAFELY IGNORE IT

Page 59: The precision blade

— Anonymous Developer

WHAT ABOUT PRIVATE CLASSES? AREN’T THEY THE

SAME THING

Page 60: The precision blade

THINKING ABOUT DATA…

Headline

Description

Duration

Trainer

City

Date

Venue

Headline

Description

Duration

Trainer

PRIVATE PUBLIC

Page 61: The precision blade

THINKING ABOUT BEHAVIOUR…

Scheduled

Base Price defined

Sales Opened

Confirmed

Cancelled

Sold out

Delivered

Replanned

Planned

Signed off

Scheduled

Delivered

PRIVATE PUBLIC

NOT ALIKE

Page 62: The precision blade

TWO INDEPENDENT PROCESSES IN

SALES

BASICALLY THE SAME PROCESS,

IN CONTENT DEFINITION

Page 63: The precision blade
Page 64: The precision blade

MAYBE THEY DO BELONG SOMEWHERE…

WHAT ABOUT SEATS

Page 65: The precision blade

EXPLORING THE RELATIONSHIP

Page 66: The precision blade

THERE’S SOMETHING MISSING

Page 67: The precision blade

POLICY IS A GOOD NAME FOR IT

BUT YOU CAN FIND ALSO “PROCESS” OR “THE WHENEVER BOX”

Page 68: The precision blade

DO WE REALLY NEED THAT?

LET’S ASK THE DOMAIN EXPERT

• Aren’t they the same thing?

• Not at all. We need to add the trainer to the participants. Room capacity and coffee breaks plus lunch are based on the total number of people in the class.

• Moreover: the trainer might bring a co-trainer, the company can have an internal person in the class, or there can be “guests” that are not passing through the ticketing system.

• We’re currently creating “fake tickets” for everybody in order to have all participants in the same container, but one single mistake and everything fall apart.

Page 69: The precision blade

(ET VOILÀ)

INDEPENDENT MODELS!

TRAINERS DON’T NEED TO BUY A TICKET

EVERYONE IN THE TRAINING ROOM DESERVES SOME GOOD COFFEE, AND A

GOOD LUNCH

Page 70: The precision blade

— Ziobrando

IN A RESTAURANT, IF YOU’RE THE TRAINER, YOU GET EXACTLY

THE SAME FOOD

Page 71: The precision blade

ISN’T THAT TOO COMPLEX?

Page 72: The precision blade

MORE PRECISELY

Page 73: The precision blade

DO WE HAVE TO IMPLEMENT IT?

BOUNDED CONTEXTS ARE HEAVY… ?

Page 74: The precision blade

IT DEPENDS…

Page 75: The precision blade

UNDERSTANDING THE PROBLEM MUST BE CHEAP

Page 76: The precision blade

A PROPER IMPLEMENTATION IS

VALUE VS COST

Page 77: The precision blade

ARE WE IN THE CORE?

Page 78: The precision blade

NO. THE REAL PROBLEM IS…

DAMN, WE WERE JUST WANDERING…

Page 79: The precision blade

(A) REAL PROBLEM

• We were stuck in go/no-go decisions

• Collaborators didn’t know whether to cancel or confirm the class

• I needed to explain my decision making process.

Page 80: The precision blade

“WHAT IS THE DATA NEEDED IN ORDER TO TAKE THIS DECISION?”

Page 81: The precision blade
Page 82: The precision blade

THIS IS SCARY

HOW MANY AGGREGATES SHOULD I QUERY?

Page 83: The precision blade
Page 84: The precision blade

ENTER READ MODELS

Page 85: The precision blade

SO MANY WAYS

HOW CAN WE IMPLEMENT IT?

• Projections • Composite UIs (including mashups) • Denormalisation • Good old queries (not forbidden, just

uncool)

Page 86: The precision blade

WE MOVED THE BOTTLENECK!!

Page 87: The precision blade

NOW, THE REAL PROBLEM IS…

Page 88: The precision blade

WE DON’T SELL ENOUGH

• Some training class are good, but not appealing

• Users don’t take the BUY TICKET decision.

Page 89: The precision blade

“WHAT IS THE DATA NEEDED IN ORDER TO TAKE THIS DECISION?”

Page 90: The precision blade

NOT THAT SIMPLE…

Page 91: The precision blade

THIS IS A PIZZA. IT IS FOOD, THAT PROVIDES THE CALORIES AND THE ENERGY YOU NEED IN ORDER TO SURVIVE TILL

THE NEXT MEAL. IT IS AVAILABLE IN SEVERAL SIZES AND TOPPINGS.

CONTACT US IF YOU WANT TO KNOW MORE.

Page 92: The precision blade

Order now!

Feeling hungry?

Page 93: The precision blade

IT’S NOT ONLY THE DATA…

Page 94: The precision blade

USERS AREN’T ONLY RATIONAL

DID ANYONE NOTICE THAT I MENTION THE UX PEOPLE?

Page 95: The precision blade

AND IT’S NOT THE SAME DATA

Page 96: The precision blade

HIS OWN MONEY, KNOWS THE STUFF.

COMPANY MONEY. NEEDS PERMISSION.

COMPANY MONEY. CALENDAR IS IMPORTANT.

NEED SAFETY AND DISCOUNTS.

Page 97: The precision blade

OUCH!

WHY CAN’T ANYTHING JUST BE SIMPLE?

Page 98: The precision blade

CHOOSE A TARGET, AND RUN AN EXPERIMENT.

Page 99: The precision blade

IT’S ABOUT THE QUESTIONS, NOT THE

NOTATION

Page 100: The precision blade

WE’RE MODELLING A FLOW OF DECISIONS

Page 101: The precision blade

WE’LL HAVE TONS OF IDEAS

Page 102: The precision blade

NOT ALL OF THEM WORTH PURSUING

Page 103: The precision blade

MOSTLY UX DRIVEN EXPLORATION

MAKING SENSE OF DATA, FROM TRIVIAL TO BI, TO BIG DATA

TRADITIONAL SOFTWARE ARCHITECT’S REALM

THANKS TO GREG’S SQUIRREL ;-)

Page 104: The precision blade

THE GOAL IS NOT TO WRITE COOL SOFTWARE

Page 105: The precision blade

THE GOAL IS TO SOLVE THE RIGHT PROBLEM

IMPACT MAPPING - NO ESTIMATES - USER STORY MAPPING

Page 106: The precision blade

KEEP THE MODELS SIMPLE

Page 107: The precision blade

CAN’T ACHIEVE SIMPLICITY WITHOUT DIVING INTO CHAOS

Page 108: The precision blade

KEEP THE PROBLEMS SIMPLE

Page 109: The precision blade

MODELLING THE FLOW

WITHIN THE SPACE CONSTRAINTS

THIS IS THE ACCIDENTAL SELF-INFLICTED COMPLEXITY NOBODY WILL PAY YOU FOR

Page 110: The precision blade

THANK YOU!

Page 111: The precision blade

WANT TO KNOW MORE?

• Really fresh: www.eventstorming.com

• LeanPub book in progress:

• http://leanpub.com/introducing_eventstorming

• Blog: http://ziobrando.blogspot.com

• Twitter: @ziobrando

• Trainings & Workshop facilitation:

• http://www.avanscoperta.it