79
Why do all my DDD apps look the same? @ziobrando

Why do all my ddd apps look the same - Vienna 2014

Embed Size (px)

Citation preview

Page 1: Why do all my ddd apps look the same - Vienna 2014

Why  do  all  my  DDD  apps  look  the  same?

@ziobrando

Page 2: Why do all my ddd apps look the same - Vienna 2014

About  meIn  the  IT  field  since  ZX  Spectrum  Generally  in  large  scale  projects  (I  might  be  biased)  Freelance  consultant:  NotOnlyCode  Trainer  (Freelance  &  Skills  MaDer)  Technical  Writer  Blogger:  h=p://ziobrando.blogspot.com  TwiDer:  @ziobrando  

My  e-­‐mail:  [email protected]

Page 3: Why do all my ddd apps look the same - Vienna 2014

What  I  do

9%

11%

12%

31%

38%

Agile  processesDomain-­‐Driven  DesignEfficiency  &  ManagementArchitectureFunny  clown

Page 4: Why do all my ddd apps look the same - Vienna 2014
Page 5: Why do all my ddd apps look the same - Vienna 2014

Some  things  work  pre=y  well

Focusing on Core Domain

Page 6: Why do all my ddd apps look the same - Vienna 2014
Page 7: Why do all my ddd apps look the same - Vienna 2014

Core Domain

Page 8: Why do all my ddd apps look the same - Vienna 2014

Core  Domain

Nothing  less  than  your  best  here.

Page 9: Why do all my ddd apps look the same - Vienna 2014

Some  things  work  pre=y  well

Focusing on Core Domain Software Development as a Learning Process

Page 10: Why do all my ddd apps look the same - Vienna 2014

Ignorance  is  the  single  greatest  impediment  

to  throughput

Dan  North

Page 11: Why do all my ddd apps look the same - Vienna 2014

100 1 2 3 4 5 6 7 8 9

100%

0

10%

20%

30%

40%

50%

60%

70%

80%

90%

Time

Igno

ranc

e

Ignorance

This is when we make critical decisions

Page 12: Why do all my ddd apps look the same - Vienna 2014

100 1 2 3 4 5 6 7 8 9

100%

0

10%

20%

30%

40%

50%

60%

70%

80%

90%

Time

Igno

ranc

e

IgnoranceBreakthrough

Can we anticipate this moment?

Page 13: Why do all my ddd apps look the same - Vienna 2014

Is  there  any  impediments  to  breakthroughs  in  the  

way  we  develop  soGware?

Page 14: Why do all my ddd apps look the same - Vienna 2014

Hmm...  let  me  think

Page 15: Why do all my ddd apps look the same - Vienna 2014

Learning  impediments

Time pressure --> estimations / expectations

Domain Experts availability / First Person experience

Learning Tools --> Discussion space, whiteboards, etc

Safety --> consequences of mistakes / Test env., etc.

Organization & Logistics --> noise, interruptions

Architecture

Food

Page 16: Why do all my ddd apps look the same - Vienna 2014

100 1 2 3 4 5 6 7 8 9

100%

0

10%

20%

30%

40%

50%

60%

70%

80%

90%

Time

Igno

ranc

e

IgnoranceBreakthrough

Ignorance

Page 17: Why do all my ddd apps look the same - Vienna 2014

Some  things  work  pre=y  well

Focusing on Core Domain Software Development as a Learning Process Explicit Bounded Context management

Page 18: Why do all my ddd apps look the same - Vienna 2014

Establish  a  defensive  perimeter

Page 19: Why do all my ddd apps look the same - Vienna 2014

...and  a  fence

Page 20: Why do all my ddd apps look the same - Vienna 2014

Know  your  bordersOur Bounded Context

Friendly BC

Pool

Promo

Campaign

...ACL

ACL

External Service Provider

...

ACL

APIData Exchange

Danger 1

Danger 2

obscure unnecessary complicated concept

Promozione

FilterCondition

Reward

Legacy Mess

Page 21: Why do all my ddd apps look the same - Vienna 2014

Some  things  work  pre=y  well

Focusing on Core Domain Developing software as a learning process Explicit bounded context management Modeling the domain starting from Events

Page 22: Why do all my ddd apps look the same - Vienna 2014

flow

EventEvent

Event

Event

Event

Domain  Experts  like  Events

Page 23: Why do all my ddd apps look the same - Vienna 2014

flow

EventEvent

Event

Event

Event

Domain  Experts  like  Events

Command

Command

Page 24: Why do all my ddd apps look the same - Vienna 2014

flow

EventEvent

Event

Event

Event

Domain  Experts  like  Events

Command

Command

Command Event

Page 25: Why do all my ddd apps look the same - Vienna 2014
Page 26: Why do all my ddd apps look the same - Vienna 2014

But...

Page 27: Why do all my ddd apps look the same - Vienna 2014
Page 28: Why do all my ddd apps look the same - Vienna 2014
Page 29: Why do all my ddd apps look the same - Vienna 2014

Why?

Page 30: Why do all my ddd apps look the same - Vienna 2014

2  similar  problems

Page 31: Why do all my ddd apps look the same - Vienna 2014

STOP

Validation

Page 32: Why do all my ddd apps look the same - Vienna 2014

We  should  prevent  the  user  from  entering  incorrect  data.

Page 33: Why do all my ddd apps look the same - Vienna 2014

The Notorious Pub

hypothesis

Page 34: Why do all my ddd apps look the same - Vienna 2014
Page 35: Why do all my ddd apps look the same - Vienna 2014

Why  doesn’t  the  police  shut  down  this  place?

Mother:

Page 36: Why do all my ddd apps look the same - Vienna 2014

...

Page 37: Why do all my ddd apps look the same - Vienna 2014

There’s  a  universe  out  there

Page 38: Why do all my ddd apps look the same - Vienna 2014

Same  data different  behaviour

Page 39: Why do all my ddd apps look the same - Vienna 2014

Before AGer

missing  or  inconsistent  informaSon  ModificaSons  are  possible  DraG-­‐like  semanScs

all  mandatory  informaSon  present  No  changes  allowed  Printed  &  Signed  paper  semanScs

Page 40: Why do all my ddd apps look the same - Vienna 2014

DraG Contract

Deal

Source Executable

negoSaSon

finalize

sign  off

compile

CartOrderPlan

Page 41: Why do all my ddd apps look the same - Vienna 2014

CollaboraSve  ConstrucSonMissingRoof

Warning

Comments  &  ConversaOon

Incomplete, growing artifact

Page 42: Why do all my ddd apps look the same - Vienna 2014

...just  like  building  soGware

Page 43: Why do all my ddd apps look the same - Vienna 2014

The Deja-vu hypothesis

Page 44: Why do all my ddd apps look the same - Vienna 2014
Page 45: Why do all my ddd apps look the same - Vienna 2014

...not  always

Page 46: Why do all my ddd apps look the same - Vienna 2014

What  if  the  domain  expert  is...  

badly  wrong

Page 47: Why do all my ddd apps look the same - Vienna 2014

Boss:

Users  must  follow  a  prescripSve,  

mandatory  process

Page 48: Why do all my ddd apps look the same - Vienna 2014

User:

The  process  as-­‐is  cannot  be  applied  in  

pracSce

Page 49: Why do all my ddd apps look the same - Vienna 2014

Boss:

Users  must  follow  a  prescripSve,  

mandatory  process

Page 50: Why do all my ddd apps look the same - Vienna 2014
Page 51: Why do all my ddd apps look the same - Vienna 2014

Problem  is...

Page 52: Why do all my ddd apps look the same - Vienna 2014
Page 53: Why do all my ddd apps look the same - Vienna 2014

©  Alberto  Brandolini  -­‐  2008-­‐2010

I’ve  tried  all  this  sh*t,  man...

...and  your  idea  doesn’t  work...

Page 54: Why do all my ddd apps look the same - Vienna 2014

Some  problems  have  been  solved  well

in  soGware  development

Page 55: Why do all my ddd apps look the same - Vienna 2014

©  Alberto  Brandolini  -­‐  2008-­‐2010

Don’t  push  it  too  far...

but  we’ve  learnt  something

Page 56: Why do all my ddd apps look the same - Vienna 2014

How we thought we solved the

problem

Page 57: Why do all my ddd apps look the same - Vienna 2014
Page 58: Why do all my ddd apps look the same - Vienna 2014

R.I.P.

Page 59: Why do all my ddd apps look the same - Vienna 2014
Page 60: Why do all my ddd apps look the same - Vienna 2014

Maybe  a  be=er  example...

Why  don’t  we  just  teach  them  to  use  github?

Page 61: Why do all my ddd apps look the same - Vienna 2014

Cognitive load

Page 62: Why do all my ddd apps look the same - Vienna 2014

©  Alberto  Brandolini  -­‐  2008-­‐2010

They’re  users,  not  hackers

too  much  cogniSve  load

Page 63: Why do all my ddd apps look the same - Vienna 2014

Integration strategies

Page 64: Why do all my ddd apps look the same - Vienna 2014

Core  Domain  Strategy:

Simple enough to be included (in the domain) Good architectural integration UX Demanding (..?) ...increasing amount of generic requirements

Collaboration

Page 65: Why do all my ddd apps look the same - Vienna 2014

Where’s  the  instrucSon  manual?

Page 66: Why do all my ddd apps look the same - Vienna 2014

UX  Demanding

...pervasive changes in presentation layer user implicit expectations are high if it’s not beautiful & simple it won’t work

...remember we’re changing people’s behaviour

Page 67: Why do all my ddd apps look the same - Vienna 2014

Conformist

(hopefully) better UI Lock-in (surrendering to zombies)

Our stuff

Big Collaboration Software

Page 68: Why do all my ddd apps look the same - Vienna 2014

Zombies  can  be  friendly  aGer  all...

Page 69: Why do all my ddd apps look the same - Vienna 2014

Welcome����������� ������������������  in����������� ������������������  the����������� ������������������  world����������� ������������������  of����������� ������������������  plugin����������� ������������������  &����������� ������������������  customization

Page 70: Why do all my ddd apps look the same - Vienna 2014

Separate  Ways

lightweight links user cognitive load increased

Collaboration app

Our B.C.

Page 71: Why do all my ddd apps look the same - Vienna 2014

Shared  Kernel

Potentially reusable possibly overkill for generic subdomain unpredictable social consequences (the wizard)

Core domain

Collaboration

Page 72: Why do all my ddd apps look the same - Vienna 2014

Domain-­‐Specific  commands

Domain-­‐agnosSc  primiSves

Page 73: Why do all my ddd apps look the same - Vienna 2014

©  Alberto  Brandolini  -­‐  2008-­‐2010

Yeah  ...the  problem’s  sSll  

open

...what  about  a  White  Russian?

Page 74: Why do all my ddd apps look the same - Vienna 2014

From  the  UX  expert

Need  Help

Page 75: Why do all my ddd apps look the same - Vienna 2014

Results  -­‐  Confidence  -­‐  Safety

Build  Trust

Page 76: Why do all my ddd apps look the same - Vienna 2014

(Having  ideas  !=  being  right)

Experiment

Page 77: Why do all my ddd apps look the same - Vienna 2014

be  prepared  to  surprises (we  are  changing  an  ecosystem)

Measure

Page 78: Why do all my ddd apps look the same - Vienna 2014

We’re  both   learning  now...

Page 79: Why do all my ddd apps look the same - Vienna 2014

Thank  [email protected]  hDp://ziobrando.blogspot.com  

twiDer:  ziobrando