186
Transactions Redefined

Transactions redefined

Embed Size (px)

Citation preview

Page 1: Transactions redefined

Transactions Redefined

Page 2: Transactions redefined

Transactions Redefined

A dive into the wormhole with

Page 3: Transactions redefined

Transactions Redefined

@ziobrandoA dive into the wormhole with

Page 4: Transactions redefined

Sending a payment to myself

Page 5: Transactions redefined

Let’s see the Events!

Page 6: Transactions redefined
Page 7: Transactions redefined

Domain Event: Orange, verb at past tense

Page 8: Transactions redefined

Domain Event: Orange, verb at past tense

Hot Spot: Purple, feel free to express yourself!

Page 9: Transactions redefined

I started with Orange

but it’s not enough to tell the whole story

Purple tells more!

Page 10: Transactions redefined
Page 11: Transactions redefined

PROTIP: if the software seems unfinished, trust might be impacted. Just sayin’

Page 12: Transactions redefined

Looks like I just Can’t keep my mouth shut!

Page 13: Transactions redefined
Page 14: Transactions redefined

PROTIP: users don’t like navigating three screens in order to see payees in alphabetical order

Page 15: Transactions redefined
Page 16: Transactions redefined

Protip: some users do copy and paste from invoices where IBAN is written with spaces

Page 17: Transactions redefined

Protip: some users do copy and paste from invoices where IBAN is written with spaces

PROTIP: humans don’t enjoy removing spaces from IBAN strings

Page 18: Transactions redefined
Page 19: Transactions redefined

Protip: reminding your users of their age every time they use your service isn’t great UX

Page 20: Transactions redefined

Protip: reminding your users of their age every time they use your service isn’t great UX

PROTIP: “we were short on budget” doesn’t work well with banks.

Page 21: Transactions redefined
Page 22: Transactions redefined

PROTIP: I still can’t understand why should I wait that much, but I’d appreciate a deadline anyway

Page 23: Transactions redefined
Page 24: Transactions redefined

The wormhole

Page 25: Transactions redefined
Page 26: Transactions redefined
Page 27: Transactions redefined

Breaking News! After 3 and a half years since it was promised I might finally have some notification.

Page 28: Transactions redefined
Page 29: Transactions redefined
Page 30: Transactions redefined
Page 31: Transactions redefined
Page 32: Transactions redefined

PROTIP: please read one article about context switching.

Page 33: Transactions redefined
Page 34: Transactions redefined

Great job! 13 Events 14 WTF!

“We are going to be disrupted by fintech…” (anonymous banker)

Page 35: Transactions redefined

How do I feel?

Page 36: Transactions redefined
Page 37: Transactions redefined

“I am going to find where you

live”

Page 38: Transactions redefined
Page 39: Transactions redefined

“I am going to change your main

door lock”

Page 40: Transactions redefined
Page 41: Transactions redefined

“Every end of month”

Page 42: Transactions redefined
Page 43: Transactions redefined

When you’re carrying bags

How can you talk about “mobile banking” if you can arbitrarily force me to update my credentials?

Page 44: Transactions redefined
Page 45: Transactions redefined

And it’s raining

Page 46: Transactions redefined
Page 47: Transactions redefined

…For “security reasons”

Page 48: Transactions redefined

About me

Having a hard time with BAD software

running www.avanscoperta.it

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

Calling this stuff

Page 49: Transactions redefined

The wormhole

Page 50: Transactions redefined

Transactions

Page 51: Transactions redefined

We have a few problems

Page 52: Transactions redefined

I didn’t say “database

transaction”

Page 53: Transactions redefined
Page 54: Transactions redefined
Page 55: Transactions redefined

The whole is not “transactional”

Page 56: Transactions redefined

Eventual Consistency?

Page 57: Transactions redefined

Eventual Consistency?

Yes, but I am more worried about another thing…

Page 58: Transactions redefined

The user is part of the

transaction

Page 59: Transactions redefined

We have a blind spot on this

Page 60: Transactions redefined

Let’s STORM!

Page 61: Transactions redefined

Our Basic toolkit

Page 62: Transactions redefined

Unrolling it…

Business processes expose a repeatable structure

Page 63: Transactions redefined

Example

How do we manage that?

Refund Request Received

Page 64: Transactions redefined

Typical dev implementation

Refund Request Received

Refund Policy

Issue Refund

Paypal

Refund Issued

Notification Sent to Payee

Page 65: Transactions redefined

Can you see the problem?

Page 66: Transactions redefined

Simple heuristic

What do I have?

What do I know?

How do I feel?

Page 67: Transactions redefined

Simple heuristicRefund Request Received

Customer

Page 68: Transactions redefined

Simple heuristic

What do I have?

Refund Request Received

Customer

Page 69: Transactions redefined

Simple heuristic

What do I have?

A ticket

Refund Request Received

Customer

Page 70: Transactions redefined

Simple heuristic

What do I have?

A ticket

What do I know?

Refund Request Received

Customer

Page 71: Transactions redefined

Simple heuristic

What do I have?

A ticket

What do I know?

I won’t be able to use it

Refund Request Received

Customer

Page 72: Transactions redefined

Simple heuristic

What do I have?

A ticket

What do I know?

I won’t be able to use it

How do I feel?

Refund Request Received

Customer

Page 73: Transactions redefined

Simple heuristic

What do I have?

A ticket

What do I know?

I won’t be able to use it

How do I feel?

Worried (will I get my money back?)

Refund Request Received

Customer

Page 74: Transactions redefined

Simple heuristic

What do I have?

A ticket

What do I know?

I won’t be able to use it

How do I feel?

Worried (will I get my money back?)

Sorry (Will it be a problem?)

Refund Request Received

Customer

Page 75: Transactions redefined

Simple heuristic

Customer

Notification Sent to Payee

Refund Notification Received

Page 76: Transactions redefined

Simple heuristic

What do I have?Customer

Notification Sent to Payee

Refund Notification Received

Page 77: Transactions redefined

Simple heuristic

What do I have?

A ticket?

Customer

Notification Sent to Payee

Refund Notification Received

Page 78: Transactions redefined

Simple heuristic

What do I have?

A ticket?

My Money back

Customer

Notification Sent to Payee

Refund Notification Received

Page 79: Transactions redefined

Simple heuristic

What do I have?

A ticket?

My Money back

What do I know?

Customer

Notification Sent to Payee

Refund Notification Received

Page 80: Transactions redefined

Simple heuristic

What do I have?

A ticket?

My Money back

What do I know?

I have my money back

Customer

Notification Sent to Payee

Refund Notification Received

Page 81: Transactions redefined

Simple heuristic

What do I have?

A ticket?

My Money back

What do I know?

I have my money back

How do I feel?

Customer

Notification Sent to Payee

Refund Notification Received

Page 82: Transactions redefined

Simple heuristic

What do I have?

A ticket?

My Money back

What do I know?

I have my money back

How do I feel?

Safe (I have my money)

Customer

Notification Sent to Payee

Refund Notification Received

Page 83: Transactions redefined

Simple heuristic

What do I have?

A ticket?

My Money back

What do I know?

I have my money back

How do I feel?

Safe (I have my money)

Worried (Did I insult anyone?)

Customer

Notification Sent to Payee

Refund Notification Received

Page 84: Transactions redefined

Too “efficient”

Page 85: Transactions redefined

Too impersonal

Page 86: Transactions redefined
Page 87: Transactions redefined

“I am not a UX expert”

Page 88: Transactions redefined

“Everybody is the business analyst”

Page 89: Transactions redefined

“Everybody is the UX expert”

Page 90: Transactions redefined

A platform for self-organization

This is what happens when Dan North talks about your stuff :O)

Page 91: Transactions redefined

Don’t let roles get in the way

Page 92: Transactions redefined

Don’t assume, talk

Page 93: Transactions redefined

And if necessary… experiment!

Page 94: Transactions redefined

Friendly Refund Policy

Refund Request Received

Call Customer

Phone

Refund Chosen

Coupon Chosen

Human Refund Policy

Organizer

Other Idea Chosen

Page 95: Transactions redefined

Friendly Refund Policy

Refund Request Received

Call Customer

Phone

Refund Chosen

Coupon Chosen

Human Refund Policy

Organizer

Other Idea Chosen

TIP: don’t model the conversation, model the outcome.

Page 96: Transactions redefined

Let’s Check!

Customer

Call Ended- - - - - Refund Chosen

Page 97: Transactions redefined

Let’s Check!

What do I have?Customer

Call Ended- - - - - Refund Chosen

Page 98: Transactions redefined

Let’s Check!

What do I have?

An Agreement

Customer

Call Ended- - - - - Refund Chosen

Page 99: Transactions redefined

Let’s Check!

What do I have?

An Agreement

What do I know?

Customer

Call Ended- - - - - Refund Chosen

Page 100: Transactions redefined

Let’s Check!

What do I have?

An Agreement

What do I know?

I’ll have my money back

Customer

Call Ended- - - - - Refund Chosen

Page 101: Transactions redefined

Let’s Check!

What do I have?

An Agreement

What do I know?

I’ll have my money back

How do I feel?

Customer

Call Ended- - - - - Refund Chosen

Page 102: Transactions redefined

Let’s Check!

What do I have?

An Agreement

What do I know?

I’ll have my money back

How do I feel?

Safe (I’m told I’ll have my money)

Customer

Call Ended- - - - - Refund Chosen

Page 103: Transactions redefined

Let’s Check!

What do I have?

An Agreement

What do I know?

I’ll have my money back

How do I feel?

Safe (I’m told I’ll have my money)

Relieved (they said no problem)

Customer

Call Ended- - - - - Refund Chosen

Page 104: Transactions redefined

For us, insteadCall Ended- - - - - Refund Chosen

Organizer

TIP: you can have many perspectives involved.

Page 105: Transactions redefined

For us, instead

What do I have?

Call Ended- - - - - Refund Chosen

Organizer

TIP: you can have many perspectives involved.

Page 106: Transactions redefined

For us, instead

What do I have?

An Agreement

Call Ended- - - - - Refund Chosen

Organizer

TIP: you can have many perspectives involved.

Page 107: Transactions redefined

For us, instead

What do I have?

An Agreement

a duty

Call Ended- - - - - Refund Chosen

Organizer

TIP: you can have many perspectives involved.

Page 108: Transactions redefined

For us, instead

What do I have?

An Agreement

a duty

What do I know?

Call Ended- - - - - Refund Chosen

Organizer

TIP: you can have many perspectives involved.

Page 109: Transactions redefined

For us, instead

What do I have?

An Agreement

a duty

What do I know?

The decision & the sales situation

Call Ended- - - - - Refund Chosen

Organizer

TIP: you can have many perspectives involved.

Page 110: Transactions redefined

For us, instead

What do I have?

An Agreement

a duty

What do I know?

The decision & the sales situation

How do I feel?

Call Ended- - - - - Refund Chosen

Organizer

TIP: you can have many perspectives involved.

Page 111: Transactions redefined

For us, instead

What do I have?

An Agreement

a duty

What do I know?

The decision & the sales situation

How do I feel?

depends on sales ;-)

Call Ended- - - - - Refund Chosen

Organizer

TIP: you can have many perspectives involved.

Page 112: Transactions redefined

Can we help?

Refund Request Received Call

CustomerPhone

Refund Chosen

Coupon Chosen

Human Refund Policy

Organizer

Other Idea Chosen

- Price paid- Sales stats- Training Lower Bound- Days Left

Page 113: Transactions redefined

Can we help?

Refund Request Received Call

CustomerPhone

Refund Chosen

Coupon Chosen

Human Refund Policy

Organizer

Other Idea Chosen

- Price paid- Sales stats- Training Lower Bound- Days Left

TIP: The read model is a decision support tool. Not an exposure of your database

Page 114: Transactions redefined

…of course…

Refund Chosen

Issue Refund

Paypal

Refund Issued

Notification Sent to Payee

Refund Policy

Organizer

Page 115: Transactions redefined

So, for the user…

Customer

Notification Sent to Payee

Page 116: Transactions redefined

So, for the user…

What do I have?Customer

Notification Sent to Payee

Page 117: Transactions redefined

So, for the user…

What do I have?

My Money back

Customer

Notification Sent to Payee

Page 118: Transactions redefined

So, for the user…

What do I have?

My Money back

What do I know?

Customer

Notification Sent to Payee

Page 119: Transactions redefined

So, for the user…

What do I have?

My Money back

What do I know?

I have my money back & No Problem

Customer

Notification Sent to Payee

Page 120: Transactions redefined

So, for the user…

What do I have?

My Money back

What do I know?

I have my money back & No Problem

How do I feel?

Customer

Notification Sent to Payee

Page 121: Transactions redefined

So, for the user…

What do I have?

My Money back

What do I know?

I have my money back & No Problem

How do I feel?

Safe (I have my money)

Customer

Notification Sent to Payee

Page 122: Transactions redefined

So, for the user…

What do I have?

My Money back

What do I know?

I have my money back & No Problem

How do I feel?

Safe (I have my money)

Grateful / Relieved

Customer

Notification Sent to Payee

Page 123: Transactions redefined

A lot better

Page 124: Transactions redefined

And also …the seat!

Refund Chosen

Registration Policy

Cancel Ticket

Ticketing System

Ticket cancelled

Notification Sent

Page 125: Transactions redefined

We still have a problem

Page 126: Transactions redefined

No automation (yet)

Refund Chosen

Issue Refund

Paypal

Refund Issued

Notification Sent to Payee

Refund Policy

Organizer

Humans are not acting instantaneously…

Page 127: Transactions redefined

Implicit deadlines

Refund Request Received Call

CustomerPhone Coupon

Chosen

Human Refund Policy

Organizer

Other Idea Chosen

- Price paid- Sales stats- Training Lower Bound- Days Left

(Implicit) Deadline

Refund Chosen

Page 128: Transactions redefined

Implicit deadlines

Refund Request Received Call

CustomerPhone Coupon

Chosen

Human Refund Policy

Organizer

Other Idea Chosen

- Price paid- Sales stats- Training Lower Bound- Days Left

(Implicit) Deadline

Refund Chosen

TIP: Implicit deadlines can be modelled as Events too

Page 129: Transactions redefined

(Implicit) Deadline

Refund Issued

Page 130: Transactions redefined

(Implicit) Deadline

Refund IssuedWhat do I have?

Page 131: Transactions redefined

(Implicit) Deadline

Refund IssuedWhat do I have?

A promise

Page 132: Transactions redefined

(Implicit) Deadline

Refund IssuedWhat do I have?

A promise

What do I know?

Page 133: Transactions redefined

(Implicit) Deadline

Refund IssuedWhat do I have?

A promise

What do I know?

I haven’t been refunded

Page 134: Transactions redefined

(Implicit) Deadline

Refund IssuedWhat do I have?

A promise

What do I know?

I haven’t been refunded

How do I feel?

Page 135: Transactions redefined

(Implicit) Deadline

Refund IssuedWhat do I have?

A promise

What do I know?

I haven’t been refunded

How do I feel?

Kinda worried, Should I remind them?

Page 136: Transactions redefined

Not good

Page 137: Transactions redefined

With normal banking…

Enter Payment

Refund Policy

Organizer

(Implicit) Deadline

Refund Chosen

Banking System Payment Entered

Page 138: Transactions redefined

With normal banking…

Enter Payment

Refund Policy

Organizer

(Implicit) Deadline

Refund Chosen

Banking System Payment Entered

WORMHOLE

Page 139: Transactions redefined

Refund Chosen

(Implicit) Deadline past

Page 140: Transactions redefined

Refund Chosen

(Implicit) Deadline past What do I have?

Page 141: Transactions redefined

Refund Chosen

(Implicit) Deadline past What do I have?

A promise

Page 142: Transactions redefined

Refund Chosen

(Implicit) Deadline past What do I have?

A promise

What do I know?

Page 143: Transactions redefined

Refund Chosen

(Implicit) Deadline past What do I have?

A promise

What do I know?

I haven’t been refunded

Page 144: Transactions redefined

Refund Chosen

(Implicit) Deadline past What do I have?

A promise

What do I know?

I haven’t been refunded

How do I feel?

Page 145: Transactions redefined

Refund Chosen

(Implicit) Deadline past What do I have?

A promise

What do I know?

I haven’t been refunded

How do I feel?

Kinda worried, Should I remind them?

Page 146: Transactions redefined

But then…

Refund Chosen

(Implicit) Deadline past

Logged Into Banking System

Page 147: Transactions redefined

But then…

Refund Chosen

(Implicit) Deadline past

What do I have?Logged Into Banking System

Page 148: Transactions redefined

But then…

Refund Chosen

(Implicit) Deadline past

What do I have?

An unfulfilled promise

Logged Into Banking System

Page 149: Transactions redefined

But then…

Refund Chosen

(Implicit) Deadline past

What do I have?

An unfulfilled promise

What do I know?

Logged Into Banking System

Page 150: Transactions redefined

But then…

Refund Chosen

(Implicit) Deadline past

What do I have?

An unfulfilled promise

What do I know?

I haven’t been refunded

Logged Into Banking System

Page 151: Transactions redefined

But then…

Refund Chosen

(Implicit) Deadline past

What do I have?

An unfulfilled promise

What do I know?

I haven’t been refunded

How do I feel?

Logged Into Banking System

Page 152: Transactions redefined

But then…

Refund Chosen

(Implicit) Deadline past

What do I have?

An unfulfilled promise

What do I know?

I haven’t been refunded

How do I feel?

Logged Into Banking System

Page 153: Transactions redefined
Page 154: Transactions redefined

OOOPS!

We aren’t in control of the whole Flow…

Page 155: Transactions redefined

But now we have an easy way to play with that!

Page 156: Transactions redefined

GROUNDBREAKING!!!

Page 157: Transactions redefined

It’s not about inventing new

things

Page 158: Transactions redefined

It’s more about removing

impediments

Page 159: Transactions redefined
Page 160: Transactions redefined

Roles,

Page 161: Transactions redefined

Roles,Processes,

Page 162: Transactions redefined

Roles,Processes, Contracts,

Page 163: Transactions redefined

Roles,Processes, Contracts,

Page 164: Transactions redefined

Roles,Processes, Contracts,

…Space limitation

Page 165: Transactions redefined

Conclusions

Page 166: Transactions redefined

in the large scale…

Page 167: Transactions redefined

There is no consistency

Page 168: Transactions redefined

But a tension to reconciliation

Page 169: Transactions redefined

“Transactions” are processes

Page 170: Transactions redefined

And some cannot be rolled back

Page 171: Transactions redefined

Make the Global state visible

Page 172: Transactions redefined

Users are part of the state

Page 173: Transactions redefined

Intermediate Steps matter

Mood, implicit deadlines, expectations

Page 174: Transactions redefined
Page 175: Transactions redefined

Mood and feelings are part

of the Global state

Page 176: Transactions redefined

Enables cross-perspective

conversation

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

Page 177: Transactions redefined
Page 178: Transactions redefined

is my pizza: You can add your

toppings

Page 179: Transactions redefined

is my pizza: You can add your

toppings

With the notable exception of database tables and pineapple

Page 180: Transactions redefined

Menu

BIG PICTURE

PROCESS DESIGN

AGGREGATE DISCOVERY

Service Design

Value-Stream Mapping

Retrospectives

Organization Design

… add yours!

Page 181: Transactions redefined

Can lead you to unexpected places

apparently, you cannot choose what your problem is

Page 182: Transactions redefined

Helps you solve the problem as a

team

Page 183: Transactions redefined

Helps you solve the problem as a

real team

It’s about contributions and insights, not roles

Page 184: Transactions redefined

We are problem solvers,

Not problem pickers

Page 185: Transactions redefined

Thank you!

Page 186: Transactions redefined

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