103
The alignment @ziobrando

The alignment

Embed Size (px)

Citation preview

Page 1: The alignment

The alignment

@ziobrando

Page 2: The alignment

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

Page 3: The alignment

In the last years

• seen many more companies and ecosystems

• Went quickly to the core problems

• Started to see patterns

• #SelectionBias

Page 4: The alignment

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

Page 5: The alignment

Establish a timeline

Some facilitator tricks will kickstart the discussion quickly

Page 6: The alignment

Explore with domain Events

Page 7: The alignment

The underlying knowledge

Page 8: The alignment

Enforcing the timeline

Experts will usually post a locally ordered sequence of events

But enforcing a shared timeline then triggers long awaited conversations

Page 9: The alignment

Outcome (big Picture):

The whole process is visible

Massive learning (crossing silo boundaries)

consensus around the core problem

Page 10: The alignment

Outcome (big Picture):

Multiple storytellings

Incremental Notation #NoUML #NoBPMN

A language for different tribes #Lean #UX #Agile #SW

Page 11: The alignment

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

Page 12: The alignment

Awesome! … now what?

Page 13: The alignment

1. The shape of the problem

Page 14: The alignment

I might start here

Page 15: The alignment

But it starts from here

Page 16: The alignment

#BlameTheSilos

Page 17: The alignment

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… ;-)

Page 18: The alignment

Asymmetry

Page 19: The alignment

And this is what you get

Page 20: The alignment

But fragmented knowledge is only one ingredient

Page 21: The alignment

Let’s look at the outcome

There are recurring patterns in blockers

A clear business narrative

A massive blocker

Page 22: The alignment
Page 23: The alignment

Recurring anti-pattern

Page 24: The alignment

“That’s our key class”

Big class with overloaded responsibility in the disputed land between 2 (or more) Bounded Contexts

Page 25: The alignment

Nouns won’t helpEverybody agrees what an order is?

Of course we do!

An order is an order!

And has a customer too! Agreed!

Page 26: The alignment

Perfect recipe:

Talk with many people

Model Data-First (everybody agrees on nouns)

Add some “Dogmatic DRY principle”

Repeat

Page 27: The alignment

The Big Ball of Mud

I swear it was a monolith last time I

checked!!!

Page 28: The alignment

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

Page 29: The alignment

Data-first modelling is flawed

And we knew it from Long Ago… #DDDesign

Page 30: The alignment

Everything is a code smell here!

Page 31: The alignment

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

Page 32: The alignment

Wait! Monoliths and BBoM aren’t necessarily the

same thing!

Page 33: The alignment

Monoliths mechanics

It takes little to worsen the code

It takes a lot of effort to improve it

Page 34: The alignment
Page 35: The alignment

LEGO Entropy laws

Mixing LEGO boxes takes seconds

separating LEGO boxes takes ages

Page 36: The alignment

Database Entropy laws

Make a copy of an important table and give it a nontrivial name

Measure how much time is needed to remove it

#INeedToBeSure…

Page 37: The alignment

Asymmetry

Page 38: The alignment

People will try to improve systems only if they’re going to be around long

enough to see the benefits

Will you clean your hotel’s garden?

Page 39: The alignment

Asymmetry

Page 40: The alignment

We can’t hire good developers

A portion of our codebase is so bad that devs quit

the company whenever we ask them to touch it

Page 41: The alignment
Page 42: The alignment

Most companies don’t understand technical debt

until it’s too late

They might, but waiting their “permission” is a losing strategy

Page 43: The alignment

Refactoring stories won’t help you

• Product Owners will prioritise about what they know.

• Total transparency, but YOU are the expert.

Page 44: The alignment

…Hidden agendas, unclear benefits, many other

reasons…

Page 45: The alignment

Asymmetry

Features bring revenues, refactoring reduce risk

Page 46: The alignment

If we could start from scratch…

Page 47: The alignment

Conceptual boundaries

Page 48: The alignment

Implementation boundaries

Page 49: The alignment

2. The Impediment

Page 50: The alignment
Page 51: The alignment

Some companies attacked the problem Some didn’t

You don’t mess with the Bottleneck #ToCot

Page 52: The alignment

A clear business narrative

A massive blocker

Page 53: The alignment

The author of the original software was still around

Page 54: The alignment

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

Page 55: The alignment

And then I discovered…

Bias: I only recommend books that prove me right.

Page 56: The alignment

“indefinite procrastination”

We finally opened up that portion of the

code!!

WOW! It was smelling bad in 2011!!

It was buggy as hell… :-/

Page 57: The alignment
Page 58: The alignment

Guilt?

Page 59: The alignment
Page 60: The alignment

protection?

Page 61: The alignment
Page 62: The alignment
Page 63: The alignment

We have a few problems here

Page 64: The alignment

In a talent-driven job market, nobody cares about your monolith

Page 65: The alignment

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

Page 66: The alignment

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

Page 67: The alignment

They’re the same problem

Page 68: The alignment

We don’t have dungeon masters: everything is developed by

contractors

Page 69: The alignment
Page 70: The alignment

People will try to improve systems only if they’re going to be around long

enough to see the benefits

Will you clean your hotel’s garden?

Page 71: The alignment

Accelerated Growth

• A few developers build up the foundations

• Success brings money -> Hiring frenzy #Scale #recruiting

• Hiring is too slow -> Outsourcing

• External code is now maintained internally.

• Builders -> controllers -> caretakers -> cleaners

Page 72: The alignment
Page 73: The alignment

3. The business

Page 74: The alignment

Not a single business vision wasn’t flawed

There is value in “discussing business” …and “Don’t worry about it” isn’t the best answer

Page 75: The alignment

Transparency helps

Page 76: The alignment

People won’t self organise around a system they don’t

understand

Page 77: The alignment

My personal experience

EventStorming +

Radical Transparency

A “culture” of rewarding exploration

a clear mission

Page 78: The alignment

Transparency is hard

Page 79: The alignment
Page 80: The alignment

Competing goals anyone?

Page 81: The alignment
Page 82: The alignment

“agile doesn’t work here”

Page 83: The alignment

The purpose of our organisation is to make

money

so…

Page 84: The alignment
Page 85: The alignment

“agile doesn’t work here”

Page 86: The alignment

One more time: Agile doesn’t happen in a vacuum

Page 87: The alignment

Purpose matters

Yep it’s Pink on Purpose

Page 88: The alignment

Good news: The Rise of Good Companies

Page 89: The alignment

ConclusionsSometimes you have to wrap-up

Page 90: The alignment

The curse of enterprise monolith

natural tendency

natural tendency

Page 91: The alignment

“It will pass” is not a strategy

Page 92: The alignment

Monolith and dungeon master are often the same

problem

Page 93: The alignment

The monolith is the dungeon

Page 94: The alignment

Stop pretending that it’s cheap

Page 95: The alignment

Events are way better to prevent it

Page 96: The alignment

can’t solve one ignoring the other

#feelings & #Code

Page 97: The alignment

But the coding ecosystem is OUR responsibility

Can’t delegate it to pixies

Page 98: The alignment

A clear business narrative

A platform for self-organisation

Page 99: The alignment

Transparency & purpose will make magic happen

Page 100: The alignment

Questions?

Every question is welcome, except

“When will you finish the book?”

Page 101: The alignment

Questions?

Thank you!

Page 102: The alignment

References

Page 103: The alignment

References• www.eventstorming.com

• EventStormers on Google+

• https://plus.google.com/u/0/communities/113258571348605620818

• LeanPub book in progress:

• http://leanpub.com/introducing_eventstorming

• Blog:

• https://medium.com/@ziobrando

• http://ziobrando.blogspot.com

• Twitter: @ziobrando

• Trainings & Workshop facilitation:

• http://www.avanscoperta.it