Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo
Optimised for…
@ziobrando
avanscopertaAlberto 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 priority
ITERATIVELY*: 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
Optimized for what
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”
G
ood
guy,
tries
to
help
Terrible
idea
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
Optimized for what
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
Optimized for what
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
Optimized for what
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
Optimized for what
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
Optimized for what
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
Optimized for what
Optimized for what
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

More Related Content

Optimized for what