Can we write successful enterprise software without challenging assumptions? Agile doesn't happen in a vacuum. Here's what I discovered using EventStorming as a blade to cut through business, software and organisation dysfunctions. From XP2017 Cologne.
2. 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
3. In the last years
• seen many more companies and ecosystems
• Went quickly to the core problems
• Started to see patterns
• #SelectionBias
4. 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
8. Enforcing the timeline
Experts will usually post a locally
ordered sequence of events
But enforcing a shared timeline then
triggers long awaited conversations
9. Outcome (big Picture):
The whole process is visible
Massive learning (crossing silo boundaries)
consensus around the core problem
10. Outcome (big Picture):
Multiple storytellings
Incremental Notation #NoUML #NoBPMN
A language for different tribes #Lean #UX #Agile #SW
11. 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
17. Silos must have a reason
Silos minimise the amount of learning
needed to be “productive”
unfortunately, the emerging
structure of silos is hardly
reversible
Even small organisations will tend to
become silos if not managed
otherwise
… if only we could
make learning
cheaper… ;-)
24. “That’s our key class”
Big class with overloaded responsibility in the disputed land
between 2 (or more) Bounded Contexts
25. Nouns won’t helpEverybody agrees
what an order is?
Of course we do!
An order is an
order!
And has a
customer
too! Agreed!
26. Perfect recipe:
Talk with many people
Model Data-First (everybody agrees on
nouns)
Add some “Dogmatic DRY principle”
Repeat
27. The Big Ball of Mud
I swear it was a
monolith last time I
checked!!!
28. One solution
A Draft Model with
loose integrity
constraints
Constraints
implemented as
warnings
A Validation barrier (constraints
implemented as blockers)
An Execution Model,
with similar data
structure, but
different behaviour
31. follow the money
• Bad code is everywhere!
• Implementation flaws with the
highest negative impact on the
enterprise are mostly related to
missing or wrong bounded contexts
53. The author of the original
software was still around
54. The dungeon master
• Authors of the original code
• Only ones knowing some areas
• Can’t be beaten on their own playground
https://medium.com/@ziobrando/the-rise-and-fall-of-the-dungeon-master-c2d511eed12f#.1koij6bk1
65. Thin red line
• Start a project with a data first approach
• Lack of control requires protection & specialisation
• few people become key, others retire or get minionized
Business grows on top of old code
• More responsibilities: less time to change it, harder to
make the call
• Hard to recruit seniors to finish the job
66. Thin red line
• Postpone evolutions of critical software
• prevent the organisation from getting new feedback
• -> how long are your iterations?
• Suddenly realise that the organisation is dumbed down
and blames IT for everything