rethinking enterprise software

130
Rethinking Enterprise Software @ziobrando Thursday, September 19, 13

Post on 17-Oct-2014

684 views

Category:

Technology


2 download

DESCRIPTION

My presentation at London's DDDeXchange 2013 where I talk about a different approach to enterprise modeling.

TRANSCRIPT

Page 1: Rethinking enterprise software

Rethinking EnterpriseSoftware

@ziobrandoThursday, September 19, 13

Page 2: Rethinking enterprise software

What do I do?

Who am I?

Thursday, September 19, 13

Page 3: Rethinking enterprise software

What do I do?

I do other things instead

Who am I?

Thursday, September 19, 13

Page 4: Rethinking enterprise software

Enterprise software

Thursday, September 19, 13

Page 5: Rethinking enterprise software

Ignorance is the single greatest impediment to

throughput.

Dan Northhttp://dannorth.net/2010/08/30/introducing-deliberate-discovery/

Thursday, September 19, 13

Page 6: Rethinking enterprise software

Learning is the constraint

Dan Northhttp://dannorth.net/2010/08/30/introducing-deliberate-discovery/

Thursday, September 19, 13

Page 7: Rethinking enterprise software

...maybe not the only one...

Thursday, September 19, 13

Page 8: Rethinking enterprise software

When doing DDD...

Thursday, September 19, 13

Page 9: Rethinking enterprise software

Software development is a learning process

Working code is a side effect

Thursday, September 19, 13

Page 10: Rethinking enterprise software

Learning

Thursday, September 19, 13

Page 11: Rethinking enterprise software

MemoriesThursday, September 19, 13

Page 12: Rethinking enterprise software

Thursday, September 19, 13

Page 13: Rethinking enterprise software

Learning

Thursday, September 19, 13

Page 14: Rethinking enterprise software

LearningSchool

Thursday, September 19, 13

Page 15: Rethinking enterprise software

LearningSchool

Bo

rin

gThursday, September 19, 13

Page 16: Rethinking enterprise software

LearningSchool

Bo

rin

g

Study

Thursday, September 19, 13

Page 17: Rethinking enterprise software

LearningSchool

Bo

rin

g

Study

Less

on

Thursday, September 19, 13

Page 18: Rethinking enterprise software

LearningSchool

Bo

rin

g

Study

Less

on

Exp

erim

ent

Thursday, September 19, 13

Page 19: Rethinking enterprise software

LearningSchool

Bo

rin

g

Study

Less

on

Exp

erim

ent

Mistakes

Thursday, September 19, 13

Page 20: Rethinking enterprise software

LearningSchool

Bo

rin

g

Study

Less

on

Exp

erim

ent

MistakesFun

Thursday, September 19, 13

Page 21: Rethinking enterprise software

LearningSchool

Bo

rin

g

Study

Less

on

Exp

erim

ent

MistakesFun

Marks

Thursday, September 19, 13

Page 22: Rethinking enterprise software

LearningSchool

Bo

rin

g

Study

Less

on

Exp

erim

ent

MistakesFun

Marks

Exams

Thursday, September 19, 13

Page 23: Rethinking enterprise software

LearningSchool

Bo

rin

g

Study

Less

on

Exp

erim

ent

MistakesFun

Marks

Exams

Stre

ss

Thursday, September 19, 13

Page 24: Rethinking enterprise software

LearningSchool

Bo

rin

g

Study

Less

on

Exp

erim

ent

MistakesFun

Marks

Exams

Stre

ss

LifeThursday, September 19, 13

Page 25: Rethinking enterprise software

Learning is so important, and yet we don’t know

much about it

Thursday, September 19, 13

Page 26: Rethinking enterprise software

Learning is non linear

Thursday, September 19, 13

Page 27: Rethinking enterprise software

Learning is non linear

(doesn’t fit into spreadsheets, burndown and Gantt charts)

Thursday, September 19, 13

Page 28: Rethinking enterprise software

Stress

Psycological reaction

To an adverse situation

Situation is perceived as inevitable

Thursday, September 19, 13

Page 29: Rethinking enterprise software

Braincan’t learn under

stress

Thursday, September 19, 13

Page 30: Rethinking enterprise software

Relax

Thursday, September 19, 13

Page 31: Rethinking enterprise software

Conformity kills creativity

Thursday, September 19, 13

Page 32: Rethinking enterprise software

Pressure hurts problem solving

Thursday, September 19, 13

Page 33: Rethinking enterprise software

Can’t actually predict when the

learning will happen

Thursday, September 19, 13

Page 34: Rethinking enterprise software

Guaranteed?

Thursday, September 19, 13

Page 35: Rethinking enterprise software

Thursday, September 19, 13

Page 36: Rethinking enterprise software

Thursday, September 19, 13

Page 37: Rethinking enterprise software

Thursday, September 19, 13

Page 38: Rethinking enterprise software

Coding against an ecosystem

Thursday, September 19, 13

Page 39: Rethinking enterprise software

Coding against an ecosystem

How do we measure effect on an ecosystem?

Thursday, September 19, 13

Page 40: Rethinking enterprise software

Thursday, September 19, 13

Page 41: Rethinking enterprise software

Value Stream Mapping

http://agile.dzone.com/books/continuous-delivery-freeThursday, September 19, 13

Page 42: Rethinking enterprise software

A quickernotation..

Thursday, September 19, 13

Page 43: Rethinking enterprise software

Coding 20cl, learning 20cl, deciding 20cl, waiting...

Thursday, September 19, 13

Page 44: Rethinking enterprise software

Mutual waiting

Thursday, September 19, 13

Page 45: Rethinking enterprise software

Mutual waiting

Apparently, a process and organization issue...

Thursday, September 19, 13

Page 46: Rethinking enterprise software

Learning is not the only constraint

Thursday, September 19, 13

Page 47: Rethinking enterprise software

Deciding?

Thursday, September 19, 13

Page 48: Rethinking enterprise software

We’re damn bad at it

Thursday, September 19, 13

Page 49: Rethinking enterprise software

How many DDD practitioners are

needed to name a class?

Thursday, September 19, 13

Page 50: Rethinking enterprise software

Thursday, September 19, 13

Page 51: Rethinking enterprise software

We should really find a name for our

daughter...

Thursday, September 19, 13

Page 52: Rethinking enterprise software

We should really find a name for our

daughter...

Isn’t a GUID sufficient?

Thursday, September 19, 13

Page 53: Rethinking enterprise software

We should really find a name for our

daughter...

Isn’t a GUID sufficient?

No, a proper name...

Thursday, September 19, 13

Page 54: Rethinking enterprise software

We should really find a name for our

daughter...

Isn’t a GUID sufficient?

No, a proper name...

What about Foo now, and refactor later?

Thursday, September 19, 13

Page 55: Rethinking enterprise software

Thursday, September 19, 13

Page 56: Rethinking enterprise software

Should I marry her?

YesNo

Thursday, September 19, 13

Page 57: Rethinking enterprise software

Thursday, September 19, 13

Page 58: Rethinking enterprise software

We really should be getting married soon...

Thursday, September 19, 13

Page 59: Rethinking enterprise software

We really should be getting married soon...

Can we talk about this another time, dear? I’m facing a zerg assault right

now...

Thursday, September 19, 13

Page 60: Rethinking enterprise software

The strategy?

Thursday, September 19, 13

Page 61: Rethinking enterprise software

Deadline!

Thursday, September 19, 13

Page 62: Rethinking enterprise software

Wedding cerimony is a Ponzi schema

designed to stop the man procrastinating

Thursday, September 19, 13

Page 63: Rethinking enterprise software

...but can we stop afterthoughts?

Thursday, September 19, 13

Page 64: Rethinking enterprise software

Thursday, September 19, 13

Page 65: Rethinking enterprise software

I really should have married Kate

instead...

Thursday, September 19, 13

Page 66: Rethinking enterprise software

I really should have married Kate

instead...

...and used MongoDB in that

project

Thursday, September 19, 13

Page 67: Rethinking enterprise software

Problem

Thursday, September 19, 13

Page 68: Rethinking enterprise software

Thursday, September 19, 13

Page 69: Rethinking enterprise software

Ubiquitous LanguageReloaded

Thursday, September 19, 13

Page 70: Rethinking enterprise software

Model Affinity

Thursday, September 19, 13

Page 71: Rethinking enterprise software

Domain Events work better

Thursday, September 19, 13

Page 72: Rethinking enterprise software

Thursday, September 19, 13

Page 73: Rethinking enterprise software

Thursday, September 19, 13

Page 74: Rethinking enterprise software

here the user decidesCommand

User

issues

influences

External information

influencesRead Model

Thursday, September 19, 13

Page 75: Rethinking enterprise software

Quali informazioni

Thursday, September 19, 13

Page 76: Rethinking enterprise software

Thursday, September 19, 13

Page 77: Rethinking enterprise software

Fine-Grained Delegation

Management 30.com

Thursday, September 19, 13

Page 78: Rethinking enterprise software

Steal and tweak

Thursday, September 19, 13

Page 79: Rethinking enterprise software

Process fine tuning

Thursday, September 19, 13

Page 80: Rethinking enterprise software

Growth engine

Thursday, September 19, 13

Page 81: Rethinking enterprise software

3 model archetypes

-Collaborative construction

-Execution

-Tracking & Control

Thursday, September 19, 13

Page 82: Rethinking enterprise software

Engagement

Thursday, September 19, 13

Page 83: Rethinking enterprise software

meaningful conversation with the domain expert

Thursday, September 19, 13

Page 84: Rethinking enterprise software

Thursday, September 19, 13

Page 85: Rethinking enterprise software

“...Eric?”

Thursday, September 19, 13

Page 86: Rethinking enterprise software

Thursday, September 19, 13

Page 87: Rethinking enterprise software

...even better!Thursday, September 19, 13

Page 88: Rethinking enterprise software

Hack!

Thursday, September 19, 13

Page 89: Rethinking enterprise software

Hack!

Warning: DDD doesn’t work on the Death StarThursday, September 19, 13

Page 90: Rethinking enterprise software

Gamification!

Thursday, September 19, 13

Page 91: Rethinking enterprise software

Constraints

Thursday, September 19, 13

Page 92: Rethinking enterprise software

Constraints

Rules

Thursday, September 19, 13

Page 93: Rethinking enterprise software

Constraints

Rules

TimeboxingThursday, September 19, 13

Page 94: Rethinking enterprise software

Let’s collect key events for our domain

Let’s place events on a timeline

Look for pre- and post-

An event is something meaningful that happened in our domain.We can express it as a verb in the past. Es. “Payment Received”We can model it with an orange sticker like...

Ask the domain expert if necessary

Thursday, September 19, 13

Page 95: Rethinking enterprise software

Thursday, September 19, 13

Page 96: Rethinking enterprise software

Space

Thursday, September 19, 13

Page 97: Rethinking enterprise software

Yes, I mean that much space...

Thursday, September 19, 13

Page 98: Rethinking enterprise software

Can’t see big problems in a little

space

Thursday, September 19, 13

Page 99: Rethinking enterprise software

Context is constraining the solution space

Thursday, September 19, 13

Page 100: Rethinking enterprise software

Take control of the constraints

Thursday, September 19, 13

Page 101: Rethinking enterprise software

Some great ideas here...

BDD

Specification by example

Concrete scenarios

Thursday, September 19, 13

Page 102: Rethinking enterprise software

Solution Space

Thursday, September 19, 13

Page 103: Rethinking enterprise software

Short timeboxesthrowaway code

...more ;-)

coderetreat.orgThursday, September 19, 13

Page 104: Rethinking enterprise software

coderetreat.orgThursday, September 19, 13

Page 105: Rethinking enterprise software

coderetreat.orgThursday, September 19, 13

Page 106: Rethinking enterprise software

coderetreat.orgThursday, September 19, 13

Page 107: Rethinking enterprise software

coderetreat.orgThursday, September 19, 13

Page 108: Rethinking enterprise software

coderetreat.orgThursday, September 19, 13

Page 109: Rethinking enterprise software

coderetreat.orgThursday, September 19, 13

Page 110: Rethinking enterprise software

coderetreat.orgThursday, September 19, 13

Page 111: Rethinking enterprise software

coderetreat.orgThursday, September 19, 13

Page 112: Rethinking enterprise software

Can we tweak it?

Thursday, September 19, 13

Page 113: Rethinking enterprise software

Conflict resolution

Thursday, September 19, 13

Page 114: Rethinking enterprise software

The only thing they agree on is fooling us!

Thursday, September 19, 13

Page 115: Rethinking enterprise software

They’re both right!

Context A

Context B

Thursday, September 19, 13

Page 116: Rethinking enterprise software

whew!

Thursday, September 19, 13

Page 117: Rethinking enterprise software

Tool Affinity

Thursday, September 19, 13

Page 118: Rethinking enterprise software

Thursday, September 19, 13

Page 119: Rethinking enterprise software

Simple notation

Thursday, September 19, 13

Page 120: Rethinking enterprise software

Thursday, September 19, 13

Page 121: Rethinking enterprise software

Thursday, September 19, 13

Page 122: Rethinking enterprise software

How long is this cycle?

Thursday, September 19, 13

Page 123: Rethinking enterprise software

What about ...minutes?

Thursday, September 19, 13

Page 124: Rethinking enterprise software

Me and UML...Thursday, September 19, 13

Page 125: Rethinking enterprise software

...Waiting

Thursday, September 19, 13

Page 126: Rethinking enterprise software

We’re changing the ecosystem...

Thursday, September 19, 13

Page 127: Rethinking enterprise software

But most of all...

Thursday, September 19, 13

Page 128: Rethinking enterprise software

Experience!

Thursday, September 19, 13

Page 129: Rethinking enterprise software

Experience!

...as an imperative verbThursday, September 19, 13

Page 130: Rethinking enterprise software

[email protected]

@ziobrando

Thursday, September 19, 13