Warm up Let’s sing the song. Elephants and Fishes How many elephants? Elephants, elephants.
Chasing elephants
-
Upload
alberto-brandolini -
Category
Leadership & Management
-
view
1.396 -
download
0
Transcript of Chasing elephants
Chasing Elephants
@ziobrando
About me• Coding since 1982
• … but that’s not what I get paid for
• #DDDesign #Agile #Lean #Complexity
• I invented
• I smell
Disclaimer
• This talk will be a collection of obviousness and inconvenient truth
• … something like a pub rant,
• … or maybe I do have a plan.
My first elephant
Long long time ago…
Long long time ago…
• Customer: “we need a new architecture!”
Long long time ago…
• Customer: “we need a new architecture!”
• Me: “A good architecture won’t save you! You have a bigger problem than that…”
Long long time ago…
• Customer: “we need a new architecture!”
• Me: “A good architecture won’t save you! You have a bigger problem than that…”
• Customer: “That is not what you’re hired for: you’re an architect!”
Long long time ago…
• Customer: “we need a new architecture!”
• Me: “A good architecture won’t save you! You have a bigger problem than that…”
• Customer: “That is not what you’re hired for: you’re an architect!”
Especially if they are in the way between you and the solution
Labels are Crap
… or that was what i thought
We’re just problem solvers with a common goal
Saying NO is always an option
Accelerated growth
Phase one: Inception
Phase one: Inception
• team Building (whatever that means)
Phase one: Inception
• team Building (whatever that means)
• Pile up features in any possible way
Phase one: Inception
• team Building (whatever that means)
• Pile up features in any possible way
#Purpose
Phase one: Inception
• team Building (whatever that means)
• Pile up features in any possible way
#energy #Purpose
Phase one: Inception
• team Building (whatever that means)
• Pile up features in any possible way
#energy #Purpose #FUN
Phase two: Ramp up
Phase two: Ramp up• Money pouring in
Phase two: Ramp up• Money pouring in
• Hiring frenzy
Phase two: Ramp up• Money pouring in
• Hiring frenzy
• Massive recruitment schema
Phase two: Ramp up• Money pouring in
• Hiring frenzy
• Massive recruitment schema
• Externalise recruiting
Phase two: Ramp up• Money pouring in
• Hiring frenzy
• Massive recruitment schema
• Externalise recruiting
• More people
Phase two: Ramp up• Money pouring in
• Hiring frenzy
• Massive recruitment schema
• Externalise recruiting
• More people
• Interruptions / meetings / bugs
Phase two: Ramp up• Money pouring in
• Hiring frenzy
• Massive recruitment schema
• Externalise recruiting
• More people
• Interruptions / meetings / bugs
#energy
“we hired random dudes and the results were amazing!!!”
no one ever
“we hired random dudes and the results were amazing!!!”
Phase Three: Outsourcing
Phase Three: Outsourcing
• Internal devs turned into supervisors
Phase Three: Outsourcing
• Internal devs turned into supervisors
• From doing
Phase Three: Outsourcing
• Internal devs turned into supervisors
• From doing
• To controlling
Phase Three: Outsourcing
• Internal devs turned into supervisors
• From doing
• To controlling
• To fixing
Phase Three: Outsourcing
• Internal devs turned into supervisors
• From doing
• To controlling
• To fixing
#Scaling
Phase Three: Outsourcing
• Internal devs turned into supervisors
• From doing
• To controlling
• To fixing
#Scaling #Bureaucracy
Phase Three: Outsourcing
• Internal devs turned into supervisors
• From doing
• To controlling
• To fixing
#Scaling #Bureaucracy #Boredom
an inconvenient truth
Bad developers code
Good developers cleanup
Sure! Cleaning up your dishes has always been my
secret goal.
Phase Four: The aftermath
• Welcome to Legacyland!!!
• quite a few good devs leave
#Ouch
More or less…
Good developers
mostly cleaning
Good developers will leave
Massive hire of external contractors Internal
developers need to
coordinate externals
No time for coding for
internal devs
Economic Opportunity
Enough budgetBad code will
stay
Increased amount of crappy code
?
How can it be possible?
Being richer doesn’t make you right
What happens when you google “software
developer” for images?
Slacking off
Slacking off
gears?
cluele
ss du
de in
the m
iddle
Slacking off
gears?
cluele
ss du
de in
the m
iddle
Slacking off
gears?
Exac
tly!!
cluele
ss du
de in
the m
iddle
Slacking off
gears?
Watching porn
Exac
tly!!
cluele
ss du
de in
the m
iddle
Slacking off
gears?
Watching porn
My man!
Exac
tly!!
Typical developer
“I think in 0 and 1, then I mind transmit it
straight to my computer screen”
There’s a blind spot
Many companies have never seen a real senior developer
Many companies have never seen a real senior developer
…and probably never will
“We want to reward individual
productivity!”
“We want to reward individual
productivity!”
“We want to reward individual
productivity!”
“We want to reward individual
productivity!”
The Cheaper Talent Hypothesis
Courtesy of Martin Fowler (2008)
Salary elephant
Salary elephant
• A good developer could be significantly more effective than a bad one
Salary elephant
• A good developer could be significantly more effective than a bad one
• up to an order of magnitude more,
Salary elephant
• A good developer could be significantly more effective than a bad one
• up to an order of magnitude more,
• not to mention negative productivity
Salary elephant
• A good developer could be significantly more effective than a bad one
• up to an order of magnitude more,
• not to mention negative productivity
• Salary won’t grow in proportion
What would you do?
Entangled problems
• Seniors are more expensive … but also more risky!
• Can’t recognise a good senior
“Years of experience” don’t make seniority
Let’s hire juniors instead!
The Junior Elephant
The “young promise” scenario
The “young promise” scenario
1. Hire cheap juniors … one will shine!
The “young promise” scenario
1. Hire cheap juniors … one will shine!
2. Provide them training…
The “young promise” scenario
1. Hire cheap juniors … one will shine!
2. Provide them training…
3. No, Step 2 was a joke! :-)
Hire cheap + Add Pressure
Hire cheap + Add Pressure
???
What happens when…The gifted one discovers he/She’s good?
Even if you were lucky, the chances you’ll be able to
retain a gifted one, are really low.
And bribing won’t work
Autonomy
Mastery
Purpose
https://vimeo.com/15488784
…a good model?
The talented elephant
Where do the talented go?
good developers go where good
developers are
–Johnny Appleseed
“Type a quote here.”
good developers go where they can learn something
good developers go where there some good stuff to do
“Software development is a learning process
Working code is a side effect”
Good Software developers are
compulsive learners
They’ll leave when there’s no
learning left.
The elephant in the middle of the road
Development team
• It’s not supposed to talk with the users
• It’s not supposed to talk with the real experts
• It’s not supposed to talk with the real customer
How the hell are we
supposed to learn?
But there’s something worse than that
Purpose is lost
I am a Craftsman!
I am a Craftsman! I am the Product Owner
I am a Craftsman! I am the Product Owner
I am a Senior Architect!
I am a Craftsman! I am the Product Owner
I am a Senior Architect!
I am the boss!
–Johnny Appleseed
“Type a quote here.”
Long time ago
Long time ago
• Surveyed a huge codebase:
Long time ago
• Surveyed a huge codebase:
• 500 k lines of code
Long time ago
• Surveyed a huge codebase:
• 500 k lines of code
• Obsolete technology
Long time ago
• Surveyed a huge codebase:
• 500 k lines of code
• Obsolete technology
• Oscillating between useless and poisonous
Long time ago
• Surveyed a huge codebase:
• 500 k lines of code
• Obsolete technology
• Oscillating between useless and poisonous
• Strong political backing to “revive” the project
Long time ago
• Surveyed a huge codebase:
• 500 k lines of code
• Obsolete technology
• Oscillating between useless and poisonous
• Strong political backing to “revive” the project
• Negligible user base.
No purpose
(again)
and no regrets!
Goodbye!
No joy in writing, damn hard to remove and change
Software without a purpose is poisonous
Not much time ago
Not much time ago
• Cool startup
Not much time ago
• Cool startup
• Tons of money
Not much time ago
• Cool startup
• Tons of money
• Cool technology
Not much time ago
• Cool startup
• Tons of money
• Cool technology
• Not so clear purpose …They must be right!
No purpose
(again)
Symptoms
• Feature creep
• lots of unproven hypothesis
Takeaways
I’ve seen many places, but the problems are always the same
In 2017 software development is still managed as a production
process…
Management advice
In 2017 software development is still managed as a production
process…
IT IS NOT
Management advice
Management advice
Work to create an ecosystem where
learning and delivery are possible
Learn! Practice!
Experiment!
Developers advice
Be Safe, Fail, retry
Stop writing purposeless software
Developers advice
1. Find your real users
2. make them happy
3. repeat
Chase your elephants…
…Or they’ll chase you
Thank you!
Game Changers