Optimized for what
-
Upload
alberto-brandolini -
Category
Leadership & Management
-
view
2.094 -
download
0
Transcript of Optimized for what
Optimised for…
@ziobrandoavanscopertaAlberto Brandolini
About me@ziobrando
I do something else instead
@ziobrandoAbout me
avanscoperta
#DDD
#Agile
#Lean
#Entrepreneur
#Developer
#EventStorming
#Coach
#Facilitator
#Consultant
Let’s start with a long boring recap
Part 1
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.
…but no one uses waterfall anymore
{end}
How did humans behave in there?
...we wanted only one thing
Well… 3 things actually
Autonomy
Mastery
Purpose
https://vimeo.com/15488784
We need to feel We did a good job
In principle there was waterfall…
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. ;-)
After some months…
The Pink Check (Late Waterfall)
Autonomy:
guessing and cutting corners
Mastery:
Cowboy coding
Purpose:
Let’s get out of here (possibly alive)
The one thing “waterfall”is optimised for
…is finger pointing
What about “agile” then?
{Boring slide about the Agile
Manifesto Omitted}
More specifically…
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.
In principle there was waterfall…
The Pink Check (Ideal Scrum)
Autonomy
Cross-functional autonomous team
Mastery
Best engineering practices
Purpose
Satisfying customers, Shipping quality software week after week
Not bad, apparently
What is agile optimised for?
Responding to change?
But then I see this…
How many days is a story point?
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
But maybe…
Dan North
https://dannorth.net/2010/08/30/introducing-deliberate-discovery/
“Learning is the bottleneck”
“Software development is a learning process
Working code is a side effect”
Me, whenever I have a chance
We’ve been optimising the wrong thing
Learning isn’t a deliverable
note to self: if you’re reading this note you’re not looking at the audience.
Learning isn’t VISIBLE
BuT…
It’s developer’s (mis)understanding,
not expert knowledge that gets
released in production
Learning is an ASSET
In principle there was waterfall…
with a little fine tuning…
When I look at this…
…I don’t see breakthroughs
Focus on predictable
delivery is postponing breakthroughs
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
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.
Focus on predictable
delivery is postponing breakthroughs
But the problem remains
Let’s get back to pink
Well… 3 things actually
Autonomy
Mastery
Purpose
we need to feel we did a good job
We’re programmers
We’re Learners
We’re hackers
Learning is going to happen anyway
Let’s try to see things with different
eyes
And now…
Product Owner as Domain Expert
Antipattern
The context
The resulting knowledge
#DDD
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
Key feedback loops
Sprint planning?
Sprint retrospective?
Backlog Grooming?
You just talk with me!
Oops
Pink Check: PO as Domain Expert
Autonomy:
Need to ask to the PO
Mastery:
… mmm
Purpose:
Making the PO happy (kinda weak…)
Patronising slide:
Product Owner wasn’t intended to be that way,
Managing priority and vision doesn’t mean “be a single source of truth”
Do I have a solution for
that?
Of course I do!
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
But I already talked about it way too much
It’s about the problem, not my
solution
A single person knowing
everything is a risk
A single person pretending to
know everything is an even bigger
risk
But who can tell the difference?
User Stories as specification
Antipattern
WOW! A template!
Not so far from reality
As a Project Manager I want feature #245 So That we can release the project
I guess the “future
conversation” was meant to be…
What’s the link to the
specification?
Optimised for… reducing meeting
time
Pink Check: User Stories as spec
Autonomy:
Need to ask to the PO, anyway
Mastery:
… mmm (feeling almost insulted)
Purpose:
deliver something on friday
Specifications are BORING
I won’t read your 200 pages spec
But I will read this
Learning is the arch-enemy of
boredom
Boredom is the arch-enemy of
Learning
So, whenever the specification is too detailed
Let’s add some new technology!
Do you mean there’s a close connection between boredom and microservices? …Yes I do!
Learning how to ride a bike
Exercise
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
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.
Let’s rename the pattern
Domain Expert as Spoiler
Antipattern
I’ll write you a document so that you won’t waste time learning
…It’s not “wasted”
there’s a misconception about learning
Learning needs mistakes
expert Experience
Experiments
http://darkroom.baltimoresun.com/wp-content/uploads/2012/12/REU-POY-157.jpg
possibly in a safe to fail context
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/
The Dungeon Master
Antipattern
Yes I am quoting myself, sorry.
https://medium.com/@ziobrando/the-rise-and-fall-of-the-dungeon-master-c2d511eed12f#.1koij6bk1
Then I added this picture…
And then I discovered…
Bias: I only recommend books that prove me right.
Pink Check: Dungeon Master
Autonomy:
as long as your chain
Mastery:
can’t beat the master in the dungeon
Purpose:
…
Learning check
I’ll be learning somebody else’s perversion
Cadence
Antipattern
http://www.diaperswappers.com/diaper-blog/wp-content/uploads/2015/04/Learning-to-Walk.jpg
My kids
Started Walking while on holiday
Started Talking while on holiday
Started Climbing while on holiday
Started coding while on holiday
I see a pattern
https://blogs.balsamiq.com/product/files/2008/10/beachcoding.jpg
Unexpected Stimuli force us
to think
But iterations are repeating in a boring way
Idea: take a ‘special day’
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!
Unfortunately…
‘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
‘impediment list’ is longer
I won’t be able to calculate velocity any more
It’s not my responsibility to do it
the temptation for predictability is still there…
Reinventing the wheel
Antipattern
reinventing the wheel is learning
reinventing the wheel is
necessary
Who’s got a pet project?
accountants don’t have a pet balance sheet, we’re programmers
reinventing the wheel is
necessary
But no one told us to mix them with production
Same office, same desk
Antipattern
Same office, same desk
Antipattern
Exchangeable “resources”
Antipattern
I could continue for weeks…
Most of our working habits aren’t designed for learning
Developers in a vacuum
Where is the purpose?
Who are we helping?
Without a real purpose, we’ll
find another one
introducing new technology, pretending to write great code, maybe becoming a dungeon master one day
Find your users
Deserve yourself a “Thank you”
Wrapping up
learning is crucial, but…
Our environments aren’t designed for learning
In principle there was waterfall…
Take a different perspective and
look for opportunities
Re-embrace change
…with a lot of inspiration from the Lean Startup field
Managing tendencies is
more interesting than blaming
We’re humans and we won’t change
easily
Learning is going to happen anyway
Purpose is a great driver for doing a god job
Questions?
Every question is welcome, except
“When will you finish the book?”
Questions?
Thank you!
References
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