Rethinking enterprise software

Preview:

DESCRIPTION

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

Citation preview

Rethinking EnterpriseSoftware

@ziobrandoThursday, September 19, 13

What do I do?

Who am I?

Thursday, September 19, 13

What do I do?

I do other things instead

Who am I?

Thursday, September 19, 13

Enterprise software

Thursday, September 19, 13

Ignorance is the single greatest impediment to

throughput.

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

Thursday, September 19, 13

Learning is the constraint

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

Thursday, September 19, 13

...maybe not the only one...

Thursday, September 19, 13

When doing DDD...

Thursday, September 19, 13

Software development is a learning process

Working code is a side effect

Thursday, September 19, 13

Learning

Thursday, September 19, 13

MemoriesThursday, September 19, 13

Thursday, September 19, 13

Learning

Thursday, September 19, 13

LearningSchool

Thursday, September 19, 13

LearningSchool

Bo

rin

gThursday, September 19, 13

LearningSchool

Bo

rin

g

Study

Thursday, September 19, 13

LearningSchool

Bo

rin

g

Study

Less

on

Thursday, September 19, 13

LearningSchool

Bo

rin

g

Study

Less

on

Exp

erim

ent

Thursday, September 19, 13

LearningSchool

Bo

rin

g

Study

Less

on

Exp

erim

ent

Mistakes

Thursday, September 19, 13

LearningSchool

Bo

rin

g

Study

Less

on

Exp

erim

ent

MistakesFun

Thursday, September 19, 13

LearningSchool

Bo

rin

g

Study

Less

on

Exp

erim

ent

MistakesFun

Marks

Thursday, September 19, 13

LearningSchool

Bo

rin

g

Study

Less

on

Exp

erim

ent

MistakesFun

Marks

Exams

Thursday, September 19, 13

LearningSchool

Bo

rin

g

Study

Less

on

Exp

erim

ent

MistakesFun

Marks

Exams

Stre

ss

Thursday, September 19, 13

LearningSchool

Bo

rin

g

Study

Less

on

Exp

erim

ent

MistakesFun

Marks

Exams

Stre

ss

LifeThursday, September 19, 13

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

much about it

Thursday, September 19, 13

Learning is non linear

Thursday, September 19, 13

Learning is non linear

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

Thursday, September 19, 13

Stress

Psycological reaction

To an adverse situation

Situation is perceived as inevitable

Thursday, September 19, 13

Braincan’t learn under

stress

Thursday, September 19, 13

Relax

Thursday, September 19, 13

Conformity kills creativity

Thursday, September 19, 13

Pressure hurts problem solving

Thursday, September 19, 13

Can’t actually predict when the

learning will happen

Thursday, September 19, 13

Guaranteed?

Thursday, September 19, 13

Thursday, September 19, 13

Thursday, September 19, 13

Thursday, September 19, 13

Coding against an ecosystem

Thursday, September 19, 13

Coding against an ecosystem

How do we measure effect on an ecosystem?

Thursday, September 19, 13

Thursday, September 19, 13

Value Stream Mapping

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

A quickernotation..

Thursday, September 19, 13

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

Thursday, September 19, 13

Mutual waiting

Thursday, September 19, 13

Mutual waiting

Apparently, a process and organization issue...

Thursday, September 19, 13

Learning is not the only constraint

Thursday, September 19, 13

Deciding?

Thursday, September 19, 13

We’re damn bad at it

Thursday, September 19, 13

How many DDD practitioners are

needed to name a class?

Thursday, September 19, 13

Thursday, September 19, 13

We should really find a name for our

daughter...

Thursday, September 19, 13

We should really find a name for our

daughter...

Isn’t a GUID sufficient?

Thursday, September 19, 13

We should really find a name for our

daughter...

Isn’t a GUID sufficient?

No, a proper name...

Thursday, September 19, 13

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

Thursday, September 19, 13

Should I marry her?

YesNo

Thursday, September 19, 13

Thursday, September 19, 13

We really should be getting married soon...

Thursday, September 19, 13

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

The strategy?

Thursday, September 19, 13

Deadline!

Thursday, September 19, 13

Wedding cerimony is a Ponzi schema

designed to stop the man procrastinating

Thursday, September 19, 13

...but can we stop afterthoughts?

Thursday, September 19, 13

Thursday, September 19, 13

I really should have married Kate

instead...

Thursday, September 19, 13

I really should have married Kate

instead...

...and used MongoDB in that

project

Thursday, September 19, 13

Problem

Thursday, September 19, 13

Thursday, September 19, 13

Ubiquitous LanguageReloaded

Thursday, September 19, 13

Model Affinity

Thursday, September 19, 13

Domain Events work better

Thursday, September 19, 13

Thursday, September 19, 13

Thursday, September 19, 13

here the user decidesCommand

User

issues

influences

External information

influencesRead Model

Thursday, September 19, 13

Quali informazioni

Thursday, September 19, 13

Thursday, September 19, 13

Fine-Grained Delegation

Management 30.com

Thursday, September 19, 13

Steal and tweak

Thursday, September 19, 13

Process fine tuning

Thursday, September 19, 13

Growth engine

Thursday, September 19, 13

3 model archetypes

-Collaborative construction

-Execution

-Tracking & Control

Thursday, September 19, 13

Engagement

Thursday, September 19, 13

meaningful conversation with the domain expert

Thursday, September 19, 13

Thursday, September 19, 13

“...Eric?”

Thursday, September 19, 13

Thursday, September 19, 13

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

Hack!

Thursday, September 19, 13

Hack!

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

Gamification!

Thursday, September 19, 13

Constraints

Thursday, September 19, 13

Constraints

Rules

Thursday, September 19, 13

Constraints

Rules

TimeboxingThursday, September 19, 13

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

Thursday, September 19, 13

Space

Thursday, September 19, 13

Yes, I mean that much space...

Thursday, September 19, 13

Can’t see big problems in a little

space

Thursday, September 19, 13

Context is constraining the solution space

Thursday, September 19, 13

Take control of the constraints

Thursday, September 19, 13

Some great ideas here...

BDD

Specification by example

Concrete scenarios

Thursday, September 19, 13

Solution Space

Thursday, September 19, 13

Short timeboxesthrowaway code

...more ;-)

coderetreat.orgThursday, September 19, 13

coderetreat.orgThursday, September 19, 13

coderetreat.orgThursday, September 19, 13

coderetreat.orgThursday, September 19, 13

coderetreat.orgThursday, September 19, 13

coderetreat.orgThursday, September 19, 13

coderetreat.orgThursday, September 19, 13

coderetreat.orgThursday, September 19, 13

coderetreat.orgThursday, September 19, 13

Can we tweak it?

Thursday, September 19, 13

Conflict resolution

Thursday, September 19, 13

The only thing they agree on is fooling us!

Thursday, September 19, 13

They’re both right!

Context A

Context B

Thursday, September 19, 13

whew!

Thursday, September 19, 13

Tool Affinity

Thursday, September 19, 13

Thursday, September 19, 13

Simple notation

Thursday, September 19, 13

Thursday, September 19, 13

Thursday, September 19, 13

How long is this cycle?

Thursday, September 19, 13

What about ...minutes?

Thursday, September 19, 13

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

...Waiting

Thursday, September 19, 13

We’re changing the ecosystem...

Thursday, September 19, 13

But most of all...

Thursday, September 19, 13

Experience!

Thursday, September 19, 13

Experience!

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

Grazie!Alberto.brandolini@avanscoperta.it

@ziobrando

Thursday, September 19, 13

Recommended