50.000 orange stickies later

116

Click here to load reader

Upload: alberto-brandolini

Post on 21-Jan-2018

1.063 views

Category:

Software


8 download

TRANSCRIPT

Page 1: 50.000 orange stickies later

Transactions Redefined

Special KanDDDinsky version

Page 2: 50.000 orange stickies later

Transactions Redefined

A dive into the wormhole with

Special KanDDDinsky version

Page 3: 50.000 orange stickies later

About me

Very hard to explain my job to my mother

running www.avanscoperta.it

Modelling (almost) everything with sticky notes, markers and a paper roll.

Calling this stuff

Page 4: 50.000 orange stickies later

Show me your aggregates!!!

Page 5: 50.000 orange stickies later

2013

• First Blog Post About EventStorming

• One single path from business to aggregate discovery

• The beginning of a long journey

Page 6: 50.000 orange stickies later

2017

• Growing Momentum

• Many practitioners -> Many Ideas

• Many different formats:

• Big Picture / Process Modelling / Software Design

• Retrospective / Induction / More…

Page 7: 50.000 orange stickies later

Big Picture EventStormingMaking sense of a huge mess

Page 8: 50.000 orange stickies later

Big Picture Workshop

Invite the right people -> Business, IT, UX

Provide unlimited modelling space

Surface, Markers, stickies

Model a whole business line with Domain Events

Page 9: 50.000 orange stickies later

Establish a timeline

Some facilitator tricks will kickstart the discussion quickly

Page 10: 50.000 orange stickies later

Explore with domain Events

Page 11: 50.000 orange stickies later

The shape of the organization

Page 12: 50.000 orange stickies later

The knowledge distribution

Page 13: 50.000 orange stickies later

Enforcing the timeline

Experts will usually post a locally ordered sequence of events

But enforcing a shared timeline then triggers long awaited conversations

Page 14: 50.000 orange stickies later

Following steps

Structure will emerge

People and Systems will be displayed

Every layer sparkles a new type of conversation

Page 15: 50.000 orange stickies later

Outcome (big Picture):

The whole process is visible

Massive learning (crossing silo boundaries)

consensus around the core problem

Page 16: 50.000 orange stickies later

Outcome (big Picture):

Page 17: 50.000 orange stickies later

Outcome (big Picture):

Page 18: 50.000 orange stickies later

Outcome (big Picture):

Page 19: 50.000 orange stickies later

Outcome (big Picture):

Page 20: 50.000 orange stickies later

Outcome (big Picture):

Multiple storytellings

Incremental Notation #NoUML #NoBPMN

A language for different tribes #Lean #UX #Agile #SW

Page 21: 50.000 orange stickies later

More specifically…

No scope limitation (paper roll)

Exploration of boundaries (External Systems & People)

-> The BOTTLENECK is in the picture.

-> The CORE DOMAIN is in the picture

Page 22: 50.000 orange stickies later
Page 23: 50.000 orange stickies later

CLARITY

Page 24: 50.000 orange stickies later

The outcome:

Page 25: 50.000 orange stickies later

The outcome:

A clear business narrative

Page 26: 50.000 orange stickies later

The outcome:

A clear business narrative

A massive blocker

Page 27: 50.000 orange stickies later

The outcome:

There are recurring patterns in blockers

A clear business narrative

A massive blocker

Page 28: 50.000 orange stickies later

Arrow Voting

A clear business narrative

A massive blocker

Page 29: 50.000 orange stickies later

Arrow Voting

A clear business narrative

A massive blocker

Page 30: 50.000 orange stickies later

Arrow Voting

A clear business narrative

A massive blocker

Page 31: 50.000 orange stickies later

Arrow Voting

A clear business narrative

A massive blocker

Page 32: 50.000 orange stickies later

Arrow Voting

A clear business narrative

A massive blocker

Page 33: 50.000 orange stickies later

Arrow Voting

A clear business narrative

A massive blocker

Page 34: 50.000 orange stickies later

Arrow Voting

A clear business narrative

A massive blocker

Page 35: 50.000 orange stickies later

Arrow Voting

A clear business narrative

A massive blocker

Page 36: 50.000 orange stickies later

Arrow Voting

A clear business narrative

A massive blocker

Page 37: 50.000 orange stickies later

Arrow Voting

A clear business narrative

A massive blocker

Page 38: 50.000 orange stickies later

Arrow Voting

A clear business narrative

A massive blocker

Page 39: 50.000 orange stickies later

Arrow Voting

A clear business narrative

A massive blocker

Page 40: 50.000 orange stickies later

Arrow Voting

A clear business narrative

A massive blocker

Page 41: 50.000 orange stickies later

Arrow Voting

You already achieved consensus…

A clear business narrative

A massive blocker

Page 42: 50.000 orange stickies later
Page 43: 50.000 orange stickies later

Working around the bottleneck

• Highest priority -> #No Backlog

• Hard to solve -> #NoEstimates

• Requires Experiments -> #DDDesign #LeanStartup

Page 44: 50.000 orange stickies later

Big Picture In a Startup

Invitations are a piece of cake

Great attitude

No past to compare with :-)

Page 45: 50.000 orange stickies later

Big picture in a mature company

Page 46: 50.000 orange stickies later
Page 47: 50.000 orange stickies later

Big picture in a mature company

Hard invitation process -> already telling us something

Underlying conflicts

Corporate Dysfunctions

Legacy implementation

Dungeon Masters

Page 48: 50.000 orange stickies later

Special Tricks?

Page 49: 50.000 orange stickies later

Pattern: Incremental Notation

After every round the team agrees on the next perspective to investigate

Structure, Boundaries, Responsibilities, Systems, Goals, Pitfalls, etc…

Every round refines the previous one providing fresher insights

Page 50: 50.000 orange stickies later

Pattern: Fuzzy by Design

Imprecise definitions…

allow everyone to be included in the conversation.

Allow Everything to be included in the model

Trigger interesting conversation on the spot.

Page 51: 50.000 orange stickies later

Process ModellingMaking sure we’re doing the right thing

Page 52: 50.000 orange stickies later

Scope: Epic or set of features

Command

Domain Event

Domain Event

Read Model

Domain Event

Read Model

Preconditions OutcomesThe flow to discover

Page 53: 50.000 orange stickies later

What about User stories?A placeholder for future conversation…

Page 54: 50.000 orange stickies later

This is a good conversation!

Page 55: 50.000 orange stickies later

Colour-puzzle Thinking

Policy

UserUser

Command

Read Model

External System Domain Event

Command

Page 56: 50.000 orange stickies later

Commands / Decisions

Command is not yet a software artefact

It’s a decision taken by a user (or a piece of software)

Outside-in vs Inside-Out thinking

Command

Page 57: 50.000 orange stickies later

Investigate Policies

How is our system supposed to react to given events?

Whenever [Event] then [Command]

“We need a lilac between the orange and the blue”

Policy

Page 58: 50.000 orange stickies later

This is where everybody lies

Page 59: 50.000 orange stickies later

Ambiguity does not compile

Page 60: 50.000 orange stickies later

Policies spectrum

IMPLICIT POLICIES: without an explicit agreement

EXPLICIT POLICIES: assuming everyone is following them

AUTOMATION:

Listeners, Sagas, Process managers

Policy

User

Policy

Page 61: 50.000 orange stickies later

Challenging value

Page 62: 50.000 orange stickies later

Challenging value

Every step can create or destroy value for given users

Discovering multiple currencies

Discovering new opportunities

Discovering inconsistencies

Page 63: 50.000 orange stickies later

Enables cross-perspective conversation

Software design, User Experience, Business Modelling, Lean etc.

Page 64: 50.000 orange stickies later

I never said it’s easy

Page 65: 50.000 orange stickies later

A different job

Big picture is for discovery -> Disagreements are OK

Here we are reaching an agreement -> Consensus is HARD

Page 66: 50.000 orange stickies later

Software design

Page 67: 50.000 orange stickies later
Page 68: 50.000 orange stickies later

Another little problem…

Page 69: 50.000 orange stickies later

The moment someone pronounces the word “aggregate” suddenly everybody from the

business have something urgent to do

Page 70: 50.000 orange stickies later

Colour-puzzle thinking

User

Command

Read Model

External System

Domain Event

CommandPolicy

Aggregate

Page 71: 50.000 orange stickies later

Scope: Epic or set of features

Command

Domain Event

Domain Event

Read Model

Domain Event

Read Model

Preconditions OutcomesThe flow to discover

Page 72: 50.000 orange stickies later

Investigating Aggregates

State Machine Logic

Focus on BEHAVIOUR, not DATA

Postpone NAMING

Don’t fall in love with your intuition

Aggregate

Page 73: 50.000 orange stickies later

Ubiquitous Language(s)

Page 74: 50.000 orange stickies later

Ubiquitous Language(s)

SLOWLY introduce consistency

Page 75: 50.000 orange stickies later

Ubiquitous Language(s)

SLOWLY introduce consistency

…I said SLOWLY

Page 76: 50.000 orange stickies later

Ubiquitous Language(s)

SLOWLY introduce consistency

…I said SLOWLY

SYMMETRIES are telling you something

Page 77: 50.000 orange stickies later

Ubiquitous Language(s)

SLOWLY introduce consistency

…I said SLOWLY

SYMMETRIES are telling you something

…but also the lack of them.

Page 78: 50.000 orange stickies later

Ubiquitous Language(s)

SLOWLY introduce consistency

…I said SLOWLY

SYMMETRIES are telling you something

…but also the lack of them.

BRUTE FORCE does not work!

Page 79: 50.000 orange stickies later

Ubiquitous Language(s)

SLOWLY introduce consistency

…I said SLOWLY

SYMMETRIES are telling you something

…but also the lack of them.

BRUTE FORCE does not work!

Page 80: 50.000 orange stickies later

Rewriting EventsDomain Event

Page 81: 50.000 orange stickies later

Rewriting Events

Pedantic Semantic Precision

Domain Event

Page 82: 50.000 orange stickies later

Rewriting Events

Pedantic Semantic Precision

… we started from chaos, remember?

Domain Event

Page 83: 50.000 orange stickies later

Rewriting Events

Pedantic Semantic Precision

… we started from chaos, remember?

Multi-layered -> Emerging Bounded Contexts

Domain Event

Page 84: 50.000 orange stickies later

Rewriting Events

Pedantic Semantic Precision

… we started from chaos, remember?

Multi-layered -> Emerging Bounded Contexts

Key information becomes visible

Domain Event

Page 85: 50.000 orange stickies later

Rewriting Events

Pedantic Semantic Precision

… we started from chaos, remember?

Multi-layered -> Emerging Bounded Contexts

Key information becomes visible

Domain Event

Page 86: 50.000 orange stickies later

Hard Problems don’t have an Obvious solution

Page 87: 50.000 orange stickies later

Discovering Read Models

They’re not “Just Data”

They’re Decision Making tools

Don’t let “reuse” get in the way

Read Model

Page 88: 50.000 orange stickies later

Discovering Read Models Read Model

Page 89: 50.000 orange stickies later

Discovering Read Models

1. Understand the decision

Read Model

Page 90: 50.000 orange stickies later

Discovering Read Models

1. Understand the decision

• Not so easy #DirtyLittleSecrets

Read Model

Page 91: 50.000 orange stickies later

Discovering Read Models

1. Understand the decision

• Not so easy #DirtyLittleSecrets

• Rational & Emotional

Read Model

Page 92: 50.000 orange stickies later

Discovering Read Models

1. Understand the decision

• Not so easy #DirtyLittleSecrets

• Rational & Emotional

2. Define the necessary data

Read Model

Page 93: 50.000 orange stickies later

Discovering Read Models

1. Understand the decision

• Not so easy #DirtyLittleSecrets

• Rational & Emotional

2. Define the necessary data

• Data Set

Read Model

Page 94: 50.000 orange stickies later

Discovering Read Models

1. Understand the decision

• Not so easy #DirtyLittleSecrets

• Rational & Emotional

2. Define the necessary data

• Data Set

• Page Layout

Read Model

Page 95: 50.000 orange stickies later

Discovering Read Models

1. Understand the decision

• Not so easy #DirtyLittleSecrets

• Rational & Emotional

2. Define the necessary data

• Data Set

• Page Layout

3. Make it happen

Read Model

Page 96: 50.000 orange stickies later

Discovering Read Models

1. Understand the decision

• Not so easy #DirtyLittleSecrets

• Rational & Emotional

2. Define the necessary data

• Data Set

• Page Layout

3. Make it happen

• Projections, Composite UI, Mashups, Good Old Queries, Views and stored procedures. #WhateverItTakes

Read Model

Page 97: 50.000 orange stickies later

Need Product Owner Badly

Exploration is needed in order to challenge the model

Product Owner is needed in order to bring reality in

KNOWING WITHOUT IMPLEMENTING IS FINE …as long as it’s cheap.

Page 98: 50.000 orange stickies later

Design Style

Our fuzzy definitions will get progressively rewritten

There is no over-design: WE’RE ON THE CORE!

Expect a lot of healthy thrashing

Bruce Lee state.

Page 99: 50.000 orange stickies later
Page 100: 50.000 orange stickies later

Takeaways

Page 101: 50.000 orange stickies later
Page 102: 50.000 orange stickies later

is my pizza: You can add your

toppings

Page 103: 50.000 orange stickies later

is my pizza: You can add your

toppings

With the notable exception of database tables and pineapple

Page 104: 50.000 orange stickies later

Domain Events as lingua franca

Domain Events are a better choice for…

…describing the business

…implementing the supporting software

Page 105: 50.000 orange stickies later

Events are way better to prevent it

Page 106: 50.000 orange stickies later

Events as Published language

LOGISTICS

Sales OpenedLocal Events are

consistent with internal Language

TRANSLATION HAPPENS AT THE BORDER,

INCLUDING BUSINESS MEANING

General purpose events are more independent

from local implementation

Training Page published

PUBLISHING

MARKETING

Listening Bounded Contexts may subscribe and react accordingly

Page 107: 50.000 orange stickies later

They allow ZOOMING!

Page 108: 50.000 orange stickies later

From vision to detail (and back)

Big Picture EventsHot Spots, Systems, People

Conflicts, Goals, Blockers, Boundaries

Process Modelling

Events+ Policies, Commands,

Read Models

Value Proposition, Policies, Personas,

Individual Goals

Software Design

Events + AggregatesAggregates,

Policies, Read Models, IDs

Page 109: 50.000 orange stickies later

From vision to detail (and back)

Big Picture EventsHot Spots, Systems, People

Conflicts, Goals, Blockers, Boundaries

Process Modelling

Events+ Policies, Commands,

Read Models

Value Proposition, Policies, Personas,

Individual Goals

Software Design

Events + AggregatesAggregates,

Policies, Read Models, IDs

Page 110: 50.000 orange stickies later

From vision to detail (and back)

Big Picture EventsHot Spots, Systems, People

Conflicts, Goals, Blockers, Boundaries

Process Modelling

Events+ Policies, Commands,

Read Models

Value Proposition, Policies, Personas,

Individual Goals

Software Design

Events + AggregatesAggregates,

Policies, Read Models, IDs

Page 111: 50.000 orange stickies later

A tool for a purpose-driven organization

Page 112: 50.000 orange stickies later

Who are we making happy?

A tool for a purpose-driven organization

Page 113: 50.000 orange stickies later

Questions?

Every question is welcome, except

“When will you finish the book?”

Page 114: 50.000 orange stickies later

Questions?

Thank you!

Page 115: 50.000 orange stickies later

References

Page 116: 50.000 orange stickies later

References• www.eventstorming.com

• EventStormers on Google+

• https://plus.google.com/u/0/communities/113258571348605620818

• LeanPub book in progress:

• http://leanpub.com/introducing_eventstorming

• Blog:

• https://medium.com/@ziobrando

• http://ziobrando.blogspot.com

• Twitter: @ziobrando

• Trainings & Workshop facilitation:

• http://www.avanscoperta.it