Slide 1

Slide 1 text

Growing and Thriving in a Multi-Model World Alberto Brandolini @Ziobrando

Slide 2

Slide 2 text

My Plan • Good Old Times • Starting with the right foot • Transitioning to Multi-Model • Bonus Round

Slide 3

Slide 3 text

Good Old Times

Slide 4

Slide 4 text

Multiple Models? • Read about it in 2005 • Thought: “Not my problem!” • …”My project is simpler than that” • What a Fool!

Slide 5

Slide 5 text

Models sprawl … let me add just one more table…

Slide 6

Slide 6 text

Somebody gotta stop this!!!

Slide 7

Slide 7 text

But first, a few more features…

Slide 8

Slide 8 text

Fake Gantt Someone talking about serverless Someone saying: “It will take longer than this”

Slide 9

Slide 9 text

The illusion of parallelism Team A Project Project Project Project Project Project Project Project Team B Team C Impact Impact Impact Impact Impact Impact Impact Impact Team D Project Project Project

Slide 10

Slide 10 text

The reality of dependencies Team A Project Project Project Project Project Necessary refactoring Project Project Team B Team C Impact Impact Impact Impact Impact Impact Impact Impa Team D Project Project Project Depend ency Depend ency Depend ency Depend ency Depend ency Depend ency Depend ency Depend ency Depend ency Depend ency

Slide 11

Slide 11 text

Planning meetings

Slide 12

Slide 12 text

Black Market Planning

Slide 13

Slide 13 text

How does it look like?

Slide 14

Slide 14 text

From above… Information Technology Increased spending Progressively diminishing returns

Slide 15

Slide 15 text

More “precisely” • But consider also: • Extra overhead for management layer(s) • Extra costs for supporting roles • Inertia and lagging metrics development team size almost linear costs Progressively decreasing returns

Slide 16

Slide 16 text

Many variations are possible

Slide 17

Slide 17 text

But the pattern repeats

Slide 18

Slide 18 text

Repainting with Microservices

Slide 19

Slide 19 text

Splitting around data won’t help you

Slide 20

Slide 20 text

Single Model • Serves Multiple Purposes • without excelling in any • More stakeholders == more trade-offs • More stakeholders == More risks

Slide 21

Slide 21 text

The Bali Urban Legend Easy to get in, hard to get out

Slide 22

Slide 22 text

Summary: Good Old Times Sprawling is natural or… do we lack antibodies? Nobody intentionally starts a Big Ball of Mud But a Single Model turns into coupling, increased risk and paralysis Latency and luck delay the warning signals …while the cost of recovery progressively increases

Slide 23

Slide 23 text

Starting with the right foot Is it even possible?

Slide 24

Slide 24 text

Small experiment Photo by Nicolas Thomas on Unsplash

Slide 25

Slide 25 text

I am the business

Slide 26

Slide 26 text

Proxies to the rescue? • Unfortunately, most of these proxies are only visible in large organisations Bounded Context Limit of applicability of a model Team Subdomain Organization Technology Legacy • A single model tailored around a specific purpose

Slide 27

Slide 27 text

Boundaries are still visible! And Swimlanes too! You can be picky on Purpose, though

Slide 28

Slide 28 text

Can quickly lead us to • Purpose-oriented models • Separated by Events Bounded Context Bounded Context Bounded Context Public Event Local Event Public Event Bounded Context Local Event Local Event Public Event Public Event Local Event Just event-driven Storytelling about something happening outside the system Something happening inside a software system Something happening in a third-party system Something happening in the heal world

Slide 29

Slide 29 text

Not every model will be implemented… (…Now)

Slide 30

Slide 30 text

… but they’re models! And the business-oriented me wants to know about them!

Slide 31

Slide 31 text

Is it enough to avoid this?

Slide 32

Slide 32 text

Treat it like an addiction • Define guiding principle • Intercept the moment we are triggering the old habit • Do something different instead

Slide 33

Slide 33 text

We don’t change working design WE don’t open boxes without a very good reason

Slide 34

Slide 34 text

Alberto, I am revisiting your carbonara recipe with new ingredients

Slide 35

Slide 35 text

What’s the right bucket? Photo by Green Grasshopper on Unsplash

Slide 36

Slide 36 text

“Context Roadmapping” • Make sure every new feature has a place on the context map • Make sure the consequences of the decision are clear • (ADRs anyone?) • Ask yourself the tough questions: • Can it work without our legacy? • Can it work with Other Models (Products, competitors)? • Can it be valuable standalone? • How would I implement it without the legacy? Our Model New Feature New Feature (Conformist) Our new Model Our Model Our Model New Feature ACL New Feature

Slide 37

Slide 37 text

We have a problem… • Our brain still defaults to Canonical Model • This happens especially if we are talking to ourselves • …is the difference between verbal and visual thinkers relevant?

Slide 38

Slide 38 text

I Think it is

Slide 39

Slide 39 text

We need a map! Photo by The Cleveland Museum of Art on Unsplash

Slide 40

Slide 40 text

Context Map for one Business Line Strategy Pricing negotiation Training Experience Design Content Design Planning Publishing Sales Marketing Billing Reservation Date Picking Logistics Delivery Follow Up Claims Forecast Treasury Catalog

Slide 41

Slide 41 text

And for more… Books Public Trainings Private Trainings Consulting Sponsorships Public Speaking Software Delivery Meetups Events Planning Sales Delivery Billing Product Design Financial Analysis Strategy Marketing Inventory Date Picking Tracking Value Tickets and discounts Print on Demand Personal Availability Engagement Strategy Deals Pricing Budget Contracts & Engagement Partnerships Forecast Global Analysis Billing Billing Scouting Date Picking Content design Review Logistics Scouting Courseware and certificates Newsletter & social Newsletter & social Content Design Format Design

Slide 42

Slide 42 text

Framing Discussions 1. Visualise the current problem -> We don’t discuss invisible things 2. Highlight critical issues -> We don’t discuss invisible things 3. Visualise alternative solutions -> One is never enough. 4. Visualise Pros & Cons (Obvious, but not resolutive) 5. Highlight Scenarios …and their probability 6. Pick your preferred solution 7. Capture the discussion with an ADR

Slide 43

Slide 43 text

https://www.dropbox.com/s/czn6ee9fejs61t9/ Screenshot%202024-10-13%20at%2007.57.47.png?dl=0 https://www.dropbox.com/s/czn6ee9fejs61t9/ Screenshot%202024-10-13%20at%2007.57.47.png?dl=0

Slide 44

Slide 44 text

Structuring thoughts?

Slide 45

Slide 45 text

But Think freely! • Discussion alone isn’t design • Balance solo and team • Balance Computer and Lo-Fi • Balance Indoor and Outdoor

Slide 46

Slide 46 text

Most design happens in the boundaries

Slide 47

Slide 47 text

Explicit Purpose • Reaching clarity is HARD • …and clarity is EPHEMERAL • Let’s capture the CONVERSATION as a memento! • The bare minimum to get back in the “clarity mood”. Filtering out terms is key!

Slide 48

Slide 48 text

Strong Logical Boundaries

Slide 49

Slide 49 text

Deferred Physical Ones

Slide 50

Slide 50 text

Result?

Slide 51

Slide 51 text

Promise fulfilled • Complexity remained under control 🎉 • No High-Risk Hotspot in the system 🎯 • Many purposes and functionalities served without increasing fragility 👍 • (We still have issues with third-party integrations) 😒

Slide 52

Slide 52 text

Splitting around Events enables model simplicity It wouldn’t work if we just split around glorified tables: you still would have ONE model, just chopped into smaller pieces

Slide 53

Slide 53 text

Models’ simplicity enables Business Options

Slide 54

Slide 54 text

The Obvious Math Model Model Model New Model Model New Model Model Model + = Well designed System Well designed component Well designed System

Slide 55

Slide 55 text

Multi-Model in the small Counterintuitive: still our brain will be tempted Logical Boundaries, but ready to go physical Discipline is essential Stable team, Maps are the winning ingredient Hack the habit with new routines

Slide 56

Slide 56 text

Multi-Model in Startups Happens Rarely… “We don’t need multi models, we are a startup” But works really well! Quick Time To Market Ability to Pivot without being destructive.

Slide 57

Slide 57 text

Too Late, man Nice story, but our problem is a little different

Slide 58

Slide 58 text

WE are getting late with more Features! But we understand we need to change

Slide 59

Slide 59 text

But an opportunity isn’t enough

Slide 60

Slide 60 text

Plenty of Blockers • There is no time for refactoring • Where do we start? • Who’s going to be responsible? • Can we estimate? • Who decides where to start? • We never really did anything like this… • …fear? • Imposter Syndrome?

Slide 61

Slide 61 text

We’re stuck in deciding! Turns out the technical part isn’t the hardest one

Slide 62

Slide 62 text

DETECTING WHERE TO START

Slide 63

Slide 63 text

A little expectation reminder… Information Technology Increased spending Progressively diminishing returns

Slide 64

Slide 64 text

Where do we start?

Slide 65

Slide 65 text

Consensus is blocker Number one

Slide 66

Slide 66 text

Coupling increases the cost of consensus Remember Bali!!!

Slide 67

Slide 67 text

We can see frictions between model and reality And the ones more sensitive for the business

Slide 68

Slide 68 text

Splitting has risks!

Slide 69

Slide 69 text

Make it worthy!

Slide 70

Slide 70 text

Model splitting There are tools and practices to make it happen But the safety scaffolding takes time (The time someone forgot on the current implementation. Sorry for being picky.) Architecture views will tell us where it’s ugly Business will tell us where is worthy

Slide 71

Slide 71 text

Not the whole story What if actions and logic start to diverge?

Slide 72

Slide 72 text

What about Fear?

Slide 73

Slide 73 text

Fear Map • If FEAR is the hidden driver, let’s make it explicit! • Map the critical components in a quadrant. • Decide your strategy together Disposable Business critical Scary Safe Can we talk about it?

Slide 74

Slide 74 text

Overcoming the deadlocks

Slide 75

Slide 75 text

Everybody’s secret dream

Slide 76

Slide 76 text

They’re your decisions, sorry.

Slide 77

Slide 77 text

We need guidance! Build your own guidelines -> Wiki Style / Pull Driven Experiment transparently -> A Document Decisions -> ADRs to the rescue Make Uncertainties explicit -> You won’t have all the information you need.

Slide 78

Slide 78 text

Spikes and experiments

Slide 79

Slide 79 text

You can have both!

Slide 80

Slide 80 text

Model Model ??? The adapter stalemate Two models need an adapter in-between Teams would not start develoment unless ownership is defined. Apparently a design problem, but really a political one.

Slide 81

Slide 81 text

Pairing at the boundaries • If Both teams are active, pick experts from both sides to work on the frontier implementation • Decide on the responsibility attribution only after is completed •The journey will give you the information to decide, or can make the decision pointless.

Slide 82

Slide 82 text

See the pattern?

Slide 83

Slide 83 text

Don’t get blocked by uncertainty

Slide 84

Slide 84 text

Reduce Uncertainty by explicit exploration

Slide 85

Slide 85 text

Alone in the dark?

Slide 86

Slide 86 text

Better team up! Photo by Austin Distel on Unsplash

Slide 87

Slide 87 text

And show some vulnerability Nobody has all the answers

Slide 88

Slide 88 text

“Resistance” can be many things Habits Habits and pressure Imposter syndrome Cognitive dissonance …

Slide 89

Slide 89 text

Patterns?

Slide 90

Slide 90 text

They need to coexist! Ubiquitous Ubiquitous Ubiquitous Ubiquitous Surface (Canonical) Ubiquitous Ubiquitous BI (canonical)

Slide 91

Slide 91 text

The Draft-Executable-Tracking Archetype Draft Model Executable Tracking Easy to change, possibly partially specified Solid, running on read- only data Collecting or visualizing Validation Different Models, very similar languages, different paradigms

Slide 92

Slide 92 text

The Joys of Multi-Country

Slide 93

Slide 93 text

The Joys of Multi-country Read the forces shaping the model(s) Language? Regulations? Customs? Market Maturity? Debunk Powerpoint assumptions like “economy of scale” or “Reuse”

Slide 94

Slide 94 text

Don’t force solutions in

Slide 95

Slide 95 text

Events enable a new type of simplicity

Slide 96

Slide 96 text

It’s more emotions than skills

Slide 97

Slide 97 text

Confidence must be built

Slide 98

Slide 98 text

Decisions need to happen

Slide 99

Slide 99 text

Maps and new Habits

Slide 100

Slide 100 text

Good old times were wrong, sorry

Slide 101

Slide 101 text

Thank You! Alberto Brandolini @Ziobrando

Slide 102

Slide 102 text

Contacts: • Blog: • https://blog.avanscoperta.it << Cool new stuff! • https://medium.com/@ziobrando • http://ziobrando.blogspot.com • Twitter: @ziobrando • Mastodon: @[email protected] • Consulting & Training: [email protected] • http://eventstorming.com • http://www.avanscoperta.it