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 budget
Bad 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?
clueless dude in
the middle
Slacking off
gears?
clueless dude in
the middle
Slacking off
gears?
xactly!!
clueless dude in
the middle
Slacking off
gears?
Watching porn
xactly!!
clueless dude in
the middle
Slacking off
gears?
Watching porn
My man!
xactly!!
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

Chasing elephants