The precision blade

Post on 13-Jan-2017

111.019 views 1 download

Transcript of The precision blade

DDD EUROPE PRESENTS…

A @ZIOBRANDO PRODUCTION

IN THE LAST EPISODES…

NOBODY TALKS ABOUT THEIR DOMAIN

WHO CAN BE THAT STUPID?

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+)

SOFTWARE DEVELOPMENT IS A LEARNING PROCESS

WORKING CODE IS A SIDE EFFECT

I USE

INSTEAD

INVITE THE RIGHT PEOPLE

PEOPLE WITH QUESTIONS PEOPLE WITH ANSWERS

A FACILITATOR

PROVIDE AN UNLIMITED MODELLING SURFACE

AND BE PREPARED TO EXPAND IT

MODEL WITH DOMAIN EVENTS ALONG A TIMELINE

REALLY SIMPLE

THEN IT GROWS…

(EXTERNAL SYSTEMS, IN PINK)

AND GROWS…

(HOTSPOTS, IN PURPLE)

AND GROWS…

THE GOAL(S) OF A BIG PICTURE

EVENTSTORMING

1. ARE WE SOLVING THE

RIGHT PROBLEM?

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

DOES IT MATTER?

WHERE DETAILS ARE MAKING A DIFFERENCE…

IN THE CORE DOMAIN…

• Creative

• Always looking for alternatives

• Continuously refining solutions

• Perfectionist

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

SOMEWHERE ELSE

• Creative

• Always looking for alternatives

• Continuously refining solutions

• Perfectionist

TROUBLEMAKER

2. CAN WE SUCCEED?

MAKING THE RISK OBSERVABLE

EXTERNAL SYSTEMS & HOTSPOTS

PEOPLE AND POLITICS

IS MY WALKING SKELETON

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.

LET’S ASSUME WE’RE LUCKY

OUR BACKLOG

• 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

TECHNICAL TRAININGS

OUR SAMPLE DOMAIN

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

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

HOW DID WE GET THERE?

MORE GUESSING THAN EXPLANATION

IT’S A LEARNING PROCESS!

SKIP THE BORING PARTS

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

DONEC QUIS NUNC

LET’S TRY AGAIN!

A TICKET!

AND THE CORRESPONDING COMMANDS

ANY CANDIDATE NAMES…

WHAT IF SOMEBODY DOESN’T SHOW UP?

ANYTHING ELSE?

GETTING THERE…

• 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.

• 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.

I LOVE THIS MESS!

CAPTURE IT! ALL OF IT.

YES, EVEN IF IT MEANS A LOT MORE STICKY NOTES

ADD MORE SPACE!

— Anonymous

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

TICKET AS SEPARATE SUBCLASSES

… WE INVITED THE RIGHT PEOPLE!

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

• 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.

1. MAKE IT VISIBLE 2. SAFELY IGNORE IT

— Anonymous Developer

WHAT ABOUT PRIVATE CLASSES? AREN’T THEY THE

SAME THING

THINKING ABOUT DATA…

Headline

Description

Duration

Trainer

City

Date

Venue

Headline

Description

Duration

Trainer

PRIVATE PUBLIC

THINKING ABOUT BEHAVIOUR…

Scheduled

Base Price defined

Sales Opened

Confirmed

Cancelled

Sold out

Delivered

Replanned

Planned

Signed off

Scheduled

Delivered

PRIVATE PUBLIC

NOT ALIKE

TWO INDEPENDENT PROCESSES IN

SALES

BASICALLY THE SAME PROCESS,

IN CONTENT DEFINITION

MAYBE THEY DO BELONG SOMEWHERE…

WHAT ABOUT SEATS

EXPLORING THE RELATIONSHIP

THERE’S SOMETHING MISSING

POLICY IS A GOOD NAME FOR IT

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

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.

(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

— Ziobrando

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

THE SAME FOOD

ISN’T THAT TOO COMPLEX?

MORE PRECISELY

DO WE HAVE TO IMPLEMENT IT?

BOUNDED CONTEXTS ARE HEAVY… ?

IT DEPENDS…

UNDERSTANDING THE PROBLEM MUST BE CHEAP

A PROPER IMPLEMENTATION IS

VALUE VS COST

ARE WE IN THE CORE?

NO. THE REAL PROBLEM IS…

DAMN, WE WERE JUST WANDERING…

(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.

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

THIS IS SCARY

HOW MANY AGGREGATES SHOULD I QUERY?

ENTER READ MODELS

SO MANY WAYS

HOW CAN WE IMPLEMENT IT?

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

uncool)

WE MOVED THE BOTTLENECK!!

NOW, THE REAL PROBLEM IS…

WE DON’T SELL ENOUGH

• Some training class are good, but not appealing

• Users don’t take the BUY TICKET decision.

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

NOT THAT SIMPLE…

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.

Order now!

Feeling hungry?

IT’S NOT ONLY THE DATA…

USERS AREN’T ONLY RATIONAL

DID ANYONE NOTICE THAT I MENTION THE UX PEOPLE?

AND IT’S NOT THE SAME DATA

HIS OWN MONEY, KNOWS THE STUFF.

COMPANY MONEY. NEEDS PERMISSION.

COMPANY MONEY. CALENDAR IS IMPORTANT.

NEED SAFETY AND DISCOUNTS.

OUCH!

WHY CAN’T ANYTHING JUST BE SIMPLE?

CHOOSE A TARGET, AND RUN AN EXPERIMENT.

IT’S ABOUT THE QUESTIONS, NOT THE

NOTATION

WE’RE MODELLING A FLOW OF DECISIONS

WE’LL HAVE TONS OF IDEAS

NOT ALL OF THEM WORTH PURSUING

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 ;-)

THE GOAL IS NOT TO WRITE COOL SOFTWARE

THE GOAL IS TO SOLVE THE RIGHT PROBLEM

IMPACT MAPPING - NO ESTIMATES - USER STORY MAPPING

KEEP THE MODELS SIMPLE

CAN’T ACHIEVE SIMPLICITY WITHOUT DIVING INTO CHAOS

KEEP THE PROBLEMS SIMPLE

MODELLING THE FLOW

WITHIN THE SPACE CONSTRAINTS

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

THANK YOU!

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