Optimized for what

152
Optimised for… @ziobrando avanscoperta Alberto Brandolini

Transcript of Optimized for what

Page 1: Optimized for what

Optimised for…

@ziobrandoavanscopertaAlberto Brandolini

Page 2: Optimized for what

About me@ziobrando

I do something else instead

@ziobrandoAbout me

avanscoperta

#DDD

#Agile

#Lean

#Entrepreneur

#Developer

#EventStorming

#Coach

#Facilitator

#Consultant

Page 3: Optimized for what

Let’s start with a long boring recap

Part 1

Page 4: Optimized for what

In principle there was “waterfall*”…

*Yes, I know Royce actually meant a different thing. I just need a stereotypical villain as a starter. And no one applies waterfall the way royce intended anyway.

Page 5: Optimized for what

…but no one uses waterfall anymore

Page 6: Optimized for what

{end}

Page 7: Optimized for what

How did humans behave in there?

Page 8: Optimized for what

...we wanted only one thing

Well… 3 things actually

Autonomy

Mastery

Purpose

https://vimeo.com/15488784

Page 9: Optimized for what

We need to feel We did a good job

Page 10: Optimized for what

In principle there was waterfall…

Page 11: Optimized for what

The Pink Check (Early Waterfall)

Autonomy:

Totally depending on specs

Mastery:

Overdesigning architectures

Purpose:

Let’s not screw up everything this time!

Note to technicians: The projector isn’t broken, it’s me. ;-)

Page 12: Optimized for what

After some months…

Page 13: Optimized for what

The Pink Check (Late Waterfall)

Autonomy:

guessing and cutting corners

Mastery:

Cowboy coding

Purpose:

Let’s get out of here (possibly alive)

Page 14: Optimized for what

The one thing “waterfall”is optimised for

Page 15: Optimized for what

…is finger pointing

Page 16: Optimized for what

What about “agile” then?

Page 17: Optimized for what

{Boring slide about the Agile

Manifesto Omitted}

Page 18: Optimized for what

More specifically…

Page 19: Optimized for what

in Scrum…

TEAM

iteratively* delivering quality software in sprints

Scrum Master

removing impediments

Product owner

providing clear vision and priorityITERATIVELY*: means that you’ll rewrite existing software, when learning new stuff,

with incremental, you can pile up crap week after week.

Page 20: Optimized for what

In principle there was waterfall…

Page 21: Optimized for what

The Pink Check (Ideal Scrum)

Autonomy

Cross-functional autonomous team

Mastery

Best engineering practices

Purpose

Satisfying customers, Shipping quality software week after week

Page 22: Optimized for what

Not bad, apparently

Page 23: Optimized for what

What is agile optimised for?

Page 24: Optimized for what

Responding to change?

Page 25: Optimized for what

But then I see this…

Page 26: Optimized for what

How many days is a story point?

Page 27: Optimized for what

And i realise the secret desire is predictability*

*this color is “Boredom Grey” I took some risk in choosing it before checking the projector. I hope you can see it

Page 28: Optimized for what
Page 29: Optimized for what

But maybe…

Page 30: Optimized for what

Dan North

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

“Learning is the bottleneck”

Page 31: Optimized for what

“Software development is a learning process

Working code is a side effect”

Me, whenever I have a chance

Page 32: Optimized for what

We’ve been optimising the wrong thing

Page 33: Optimized for what

Learning isn’t a deliverable

note to self: if you’re reading this note you’re not looking at the audience.

Page 34: Optimized for what

Learning isn’t VISIBLE

Page 35: Optimized for what

BuT…

Page 36: Optimized for what

It’s developer’s (mis)understanding,

not expert knowledge that gets

released in production

Page 37: Optimized for what

Learning is an ASSET

Page 38: Optimized for what

In principle there was waterfall…

with a little fine tuning…

Page 39: Optimized for what

When I look at this…

Page 40: Optimized for what

…I don’t see breakthroughs

Page 41: Optimized for what

Focus on predictable

delivery is postponing breakthroughs

Page 42: Optimized for what

And of course “It Depends”

There still will always be some boring activity still labelled “Software development”

consolidated vs new domain

Core vs non-core (supporting or generic)

Change might be coming from the outside, so it’s a BET

Page 43: Optimized for what

More specifically

In high value / High Risk areas, learning has a clear payoff

In low value areas, you’ll be more likely to end up doing a watered down, tracking oriented, version of agile.

Page 44: Optimized for what

Focus on predictable

delivery is postponing breakthroughs

But the problem remains

Page 45: Optimized for what

Let’s get back to pink

Well… 3 things actually

Autonomy

Mastery

Purpose

Page 46: Optimized for what

we need to feel we did a good job

Page 47: Optimized for what

We’re programmers

Page 48: Optimized for what

We’re Learners

Page 49: Optimized for what

We’re hackers

Page 50: Optimized for what

Learning is going to happen anyway

Page 51: Optimized for what

Let’s try to see things with different

eyes

And now…

Page 52: Optimized for what

Product Owner as Domain Expert

Antipattern

Page 53: Optimized for what

The context

Page 54: Optimized for what

The resulting knowledge

#DDD

Page 55: Optimized for what

PO thinks: “I am going to do all the learning in order to speed up the coding”

Good guy,

tries to help

Terr

ible id

ea

Page 56: Optimized for what

Key feedback loops

Sprint planning?

Sprint retrospective?

Backlog Grooming?

Page 57: Optimized for what

You just talk with me!

Page 58: Optimized for what

Oops

Page 59: Optimized for what

Pink Check: PO as Domain Expert

Autonomy:

Need to ask to the PO

Mastery:

… mmm

Purpose:

Making the PO happy (kinda weak…)

Page 60: Optimized for what

Patronising slide:

Product Owner wasn’t intended to be that way,

Managing priority and vision doesn’t mean “be a single source of truth”

Page 61: Optimized for what

Do I have a solution for

that?

Page 62: Optimized for what

Of course I do!

Page 63: Optimized for what

Big Picture Workshop

Invite the right people

The ones with questions

The ones with answers

a facilitator

Provide an unlimited modelling space

Surface, Markers, stickies

Start Modelling with Domain Events

Page 64: Optimized for what

But I already talked about it way too much

Page 65: Optimized for what

It’s about the problem, not my

solution

Page 66: Optimized for what

A single person knowing

everything is a risk

Page 67: Optimized for what

A single person pretending to

know everything is an even bigger

risk

Page 68: Optimized for what

But who can tell the difference?

Page 69: Optimized for what

User Stories as specification

Antipattern

Page 70: Optimized for what
Page 71: Optimized for what

WOW! A template!

Page 72: Optimized for what

Not so far from reality

As a Project Manager I want feature #245 So That we can release the project

Page 73: Optimized for what

I guess the “future

conversation” was meant to be…

Page 74: Optimized for what

What’s the link to the

specification?

Page 75: Optimized for what

Optimised for… reducing meeting

time

Page 76: Optimized for what

Pink Check: User Stories as spec

Autonomy:

Need to ask to the PO, anyway

Mastery:

… mmm (feeling almost insulted)

Purpose:

deliver something on friday

Page 77: Optimized for what

Specifications are BORING

Page 78: Optimized for what

I won’t read your 200 pages spec

Page 79: Optimized for what

But I will read this

Page 80: Optimized for what
Page 81: Optimized for what

Learning is the arch-enemy of

boredom

Page 82: Optimized for what

Boredom is the arch-enemy of

Learning

Page 83: Optimized for what

So, whenever the specification is too detailed

Page 84: Optimized for what

Let’s add some new technology!

Do you mean there’s a close connection between boredom and microservices? …Yes I do!

Page 85: Optimized for what

Learning how to ride a bike

Exercise

Page 86: Optimized for what

Possible strategies

Take a bike and ride it

Ask a guy that rides a bike

Read a book about bikes

Talk to a guy that knows somebody that has a bike

Read a specification document written by a person that probably interviewed some bikers

Page 87: Optimized for what

Even worse

Take a bike and ride it

Ask a guy that rides a bike

Read a book about bikes

Talk to a guy that knows somebody that has a bike

Read a specification document written by a person that probably interviewed some bikers

Read a specification document written by a guy that talked with the wheels guy, the chassis guy, the pedal guy and the tyres guy.

Page 88: Optimized for what

Let’s rename the pattern

Page 89: Optimized for what

Domain Expert as Spoiler

Antipattern

Page 90: Optimized for what

I’ll write you a document so that you won’t waste time learning

Page 91: Optimized for what

…It’s not “wasted”

Page 92: Optimized for what

there’s a misconception about learning

Page 93: Optimized for what

Learning needs mistakes

Page 94: Optimized for what
Page 95: Optimized for what

expert Experience

Experiments

Page 96: Optimized for what

http://darkroom.baltimoresun.com/wp-content/uploads/2012/12/REU-POY-157.jpg

Page 97: Optimized for what

possibly in a safe to fail context

Page 98: Optimized for what

Lessons learned

There is a window of opportunity for asking newbie questions

…better anticipate the learning.

Looks like I am Quoting Dan North again: https://dannorth.net/2010/08/30/introducing-deliberate-discovery/

Page 99: Optimized for what

The Dungeon Master

Antipattern

Page 100: Optimized for what

Yes I am quoting myself, sorry.

https://medium.com/@ziobrando/the-rise-and-fall-of-the-dungeon-master-c2d511eed12f#.1koij6bk1

Page 101: Optimized for what

Then I added this picture…

Page 102: Optimized for what

And then I discovered…

Bias: I only recommend books that prove me right.

Page 103: Optimized for what

Pink Check: Dungeon Master

Autonomy:

as long as your chain

Mastery:

can’t beat the master in the dungeon

Purpose:

Page 104: Optimized for what

Learning check

I’ll be learning somebody else’s perversion

Page 105: Optimized for what

Cadence

Antipattern

Page 106: Optimized for what

http://www.diaperswappers.com/diaper-blog/wp-content/uploads/2015/04/Learning-to-Walk.jpg

Page 107: Optimized for what

My kids

Started Walking while on holiday

Started Talking while on holiday

Started Climbing while on holiday

Started coding while on holiday

Page 108: Optimized for what

I see a pattern

Page 109: Optimized for what

https://blogs.balsamiq.com/product/files/2008/10/beachcoding.jpg

Page 110: Optimized for what

Unexpected Stimuli force us

to think

Page 111: Optimized for what

But iterations are repeating in a boring way

Page 112: Optimized for what

Idea: take a ‘special day’

Page 113: Optimized for what

On a ‘Special Day’

People take deliberate actions to learn as much as they can

Visiting or observing real users

Engaging with real users

Talking with experts

Studying competitors

… you name it!

Page 114: Optimized for what

Unfortunately…

Page 115: Optimized for what

‘impediment list’ is long

the agenda is already planned

We can’t get out of office

we’re already committed to a schedule

We’re not supposed to do that

We’re not paid for doing that

Travelling is expensive

Page 116: Optimized for what

‘impediment list’ is longer

I won’t be able to calculate velocity any more

It’s not my responsibility to do it

Page 117: Optimized for what

the temptation for predictability is still there…

Page 118: Optimized for what

Reinventing the wheel

Antipattern

Page 119: Optimized for what

reinventing the wheel is learning

Page 120: Optimized for what

reinventing the wheel is

necessary

Page 121: Optimized for what
Page 122: Optimized for what

Who’s got a pet project?

accountants don’t have a pet balance sheet, we’re programmers

Page 123: Optimized for what

reinventing the wheel is

necessary

Page 124: Optimized for what

But no one told us to mix them with production

Page 125: Optimized for what
Page 126: Optimized for what

Same office, same desk

Antipattern

Page 127: Optimized for what

Same office, same desk

Antipattern

Page 128: Optimized for what

Exchangeable “resources”

Antipattern

Page 129: Optimized for what

I could continue for weeks…

Page 130: Optimized for what

Most of our working habits aren’t designed for learning

Page 131: Optimized for what

Developers in a vacuum

Page 132: Optimized for what
Page 133: Optimized for what
Page 134: Optimized for what

Where is the purpose?

Page 135: Optimized for what

Who are we helping?

Page 136: Optimized for what

Without a real purpose, we’ll

find another one

introducing new technology, pretending to write great code, maybe becoming a dungeon master one day

Page 137: Optimized for what

Find your users

Page 138: Optimized for what

Deserve yourself a “Thank you”

Page 139: Optimized for what

Wrapping up

Page 140: Optimized for what

learning is crucial, but…

Page 141: Optimized for what

Our environments aren’t designed for learning

Page 142: Optimized for what

In principle there was waterfall…

Page 143: Optimized for what

Take a different perspective and

look for opportunities

Page 144: Optimized for what

Re-embrace change

…with a lot of inspiration from the Lean Startup field

Page 145: Optimized for what

Managing tendencies is

more interesting than blaming

Page 146: Optimized for what

We’re humans and we won’t change

easily

Page 147: Optimized for what

Learning is going to happen anyway

Page 148: Optimized for what

Purpose is a great driver for doing a god job

Page 149: Optimized for what

Questions?

Every question is welcome, except

“When will you finish the book?”

Page 150: Optimized for what

Questions?

Thank you!

Page 151: Optimized for what

References

Page 152: Optimized for what

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