chasing elephants

139
Chasing Elephants @ziobrando

Upload: alberto-brandolini

Post on 21-Apr-2017

1.394 views

Category:

Leadership & Management


0 download

TRANSCRIPT

Page 1: Chasing elephants

Chasing Elephants

@ziobrando

Page 2: Chasing elephants

About me• Coding since 1982

• … but that’s not what I get paid for

• #DDDesign #Agile #Lean #Complexity

• I invented

• I smell

Page 3: Chasing elephants

Disclaimer

• This talk will be a collection of obviousness and inconvenient truth

• … something like a pub rant,

• … or maybe I do have a plan.

Page 4: Chasing elephants

My first elephant

Page 5: Chasing elephants

Long long time ago…

Page 6: Chasing elephants

Long long time ago…

• Customer: “we need a new architecture!”

Page 7: Chasing elephants

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…”

Page 8: Chasing elephants

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!”

Page 9: Chasing elephants

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!”

Page 10: Chasing elephants
Page 11: Chasing elephants

Especially if they are in the way between you and the solution

Labels are Crap

Page 12: Chasing elephants

… or that was what i thought

We’re just problem solvers with a common goal

Page 13: Chasing elephants

Saying NO is always an option

Page 14: Chasing elephants

Accelerated growth

Page 15: Chasing elephants

Phase one: Inception

Page 16: Chasing elephants

Phase one: Inception

• team Building (whatever that means)

Page 17: Chasing elephants

Phase one: Inception

• team Building (whatever that means)

• Pile up features in any possible way

Page 18: Chasing elephants

Phase one: Inception

• team Building (whatever that means)

• Pile up features in any possible way

#Purpose

Page 19: Chasing elephants

Phase one: Inception

• team Building (whatever that means)

• Pile up features in any possible way

#energy #Purpose

Page 20: Chasing elephants

Phase one: Inception

• team Building (whatever that means)

• Pile up features in any possible way

#energy #Purpose #FUN

Page 21: Chasing elephants

Phase two: Ramp up

Page 22: Chasing elephants

Phase two: Ramp up• Money pouring in

Page 23: Chasing elephants

Phase two: Ramp up• Money pouring in

• Hiring frenzy

Page 24: Chasing elephants

Phase two: Ramp up• Money pouring in

• Hiring frenzy

• Massive recruitment schema

Page 25: Chasing elephants

Phase two: Ramp up• Money pouring in

• Hiring frenzy

• Massive recruitment schema

• Externalise recruiting

Page 26: Chasing elephants

Phase two: Ramp up• Money pouring in

• Hiring frenzy

• Massive recruitment schema

• Externalise recruiting

• More people

Page 27: Chasing elephants

Phase two: Ramp up• Money pouring in

• Hiring frenzy

• Massive recruitment schema

• Externalise recruiting

• More people

• Interruptions / meetings / bugs

Page 28: Chasing elephants

Phase two: Ramp up• Money pouring in

• Hiring frenzy

• Massive recruitment schema

• Externalise recruiting

• More people

• Interruptions / meetings / bugs

#energy

Page 29: Chasing elephants

“we hired random dudes and the results were amazing!!!”

Page 30: Chasing elephants

no one ever

“we hired random dudes and the results were amazing!!!”

Page 31: Chasing elephants

Phase Three: Outsourcing

Page 32: Chasing elephants

Phase Three: Outsourcing

• Internal devs turned into supervisors

Page 33: Chasing elephants

Phase Three: Outsourcing

• Internal devs turned into supervisors

• From doing

Page 34: Chasing elephants

Phase Three: Outsourcing

• Internal devs turned into supervisors

• From doing

• To controlling

Page 35: Chasing elephants

Phase Three: Outsourcing

• Internal devs turned into supervisors

• From doing

• To controlling

• To fixing

Page 36: Chasing elephants

Phase Three: Outsourcing

• Internal devs turned into supervisors

• From doing

• To controlling

• To fixing

#Scaling

Page 37: Chasing elephants

Phase Three: Outsourcing

• Internal devs turned into supervisors

• From doing

• To controlling

• To fixing

#Scaling #Bureaucracy

Page 38: Chasing elephants

Phase Three: Outsourcing

• Internal devs turned into supervisors

• From doing

• To controlling

• To fixing

#Scaling #Bureaucracy #Boredom

Page 39: Chasing elephants
Page 40: Chasing elephants

an inconvenient truth

Bad developers code

Good developers cleanup

Page 41: Chasing elephants

Sure! Cleaning up your dishes has always been my

secret goal.

Page 42: Chasing elephants

Phase Four: The aftermath

• Welcome to Legacyland!!!

• quite a few good devs leave

#Ouch

Page 43: Chasing elephants

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

?

Page 44: Chasing elephants

How can it be possible?

Page 45: Chasing elephants
Page 46: Chasing elephants

Being richer doesn’t make you right

Page 47: Chasing elephants

What happens when you google “software

developer” for images?

Page 48: Chasing elephants
Page 49: Chasing elephants

Slacking off

Page 50: Chasing elephants

Slacking off

gears?

Page 51: Chasing elephants

cluele

ss du

de in

the m

iddle

Slacking off

gears?

Page 52: Chasing elephants

cluele

ss du

de in

the m

iddle

Slacking off

gears?

Exac

tly!!

Page 53: Chasing elephants

cluele

ss du

de in

the m

iddle

Slacking off

gears?

Watching porn

Exac

tly!!

Page 54: Chasing elephants

cluele

ss du

de in

the m

iddle

Slacking off

gears?

Watching porn

My man!

Exac

tly!!

Page 55: Chasing elephants

Typical developer

“I think in 0 and 1, then I mind transmit it

straight to my computer screen”

Page 56: Chasing elephants
Page 57: Chasing elephants

There’s a blind spot

Page 58: Chasing elephants
Page 59: Chasing elephants

Many companies have never seen a real senior developer

Page 60: Chasing elephants

Many companies have never seen a real senior developer

…and probably never will

Page 61: Chasing elephants

“We want to reward individual

productivity!”

Page 62: Chasing elephants

“We want to reward individual

productivity!”

Page 63: Chasing elephants

“We want to reward individual

productivity!”

Page 64: Chasing elephants

“We want to reward individual

productivity!”

Page 65: Chasing elephants

The Cheaper Talent Hypothesis

Courtesy of Martin Fowler (2008)

Page 66: Chasing elephants
Page 67: Chasing elephants

Salary elephant

Page 68: Chasing elephants

Salary elephant

• A good developer could be significantly more effective than a bad one

Page 69: Chasing elephants

Salary elephant

• A good developer could be significantly more effective than a bad one

• up to an order of magnitude more,

Page 70: Chasing elephants

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

Page 71: Chasing elephants

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

Page 72: Chasing elephants

What would you do?

Page 73: Chasing elephants
Page 74: Chasing elephants

Entangled problems

• Seniors are more expensive … but also more risky!

• Can’t recognise a good senior

Page 75: Chasing elephants

“Years of experience” don’t make seniority

Page 76: Chasing elephants

Let’s hire juniors instead!

Page 77: Chasing elephants

The Junior Elephant

Page 78: Chasing elephants

The “young promise” scenario

Page 79: Chasing elephants

The “young promise” scenario

1. Hire cheap juniors … one will shine!

Page 80: Chasing elephants

The “young promise” scenario

1. Hire cheap juniors … one will shine!

2. Provide them training…

Page 81: Chasing elephants

The “young promise” scenario

1. Hire cheap juniors … one will shine!

2. Provide them training…

3. No, Step 2 was a joke! :-)

Page 82: Chasing elephants

Hire cheap + Add Pressure

Page 83: Chasing elephants

Hire cheap + Add Pressure

???

Page 84: Chasing elephants

What happens when…The gifted one discovers he/She’s good?

Page 85: Chasing elephants

Even if you were lucky, the chances you’ll be able to

retain a gifted one, are really low.

Page 86: Chasing elephants

And bribing won’t work

Page 87: Chasing elephants

Autonomy

Mastery

Purpose

https://vimeo.com/15488784

…a good model?

Page 88: Chasing elephants

The talented elephant

Page 89: Chasing elephants

Where do the talented go?

Page 90: Chasing elephants

good developers go where good

developers are

Page 91: Chasing elephants

–Johnny Appleseed

“Type a quote here.”

Page 92: Chasing elephants

good developers go where they can learn something

Page 93: Chasing elephants

good developers go where there some good stuff to do

Page 94: Chasing elephants

“Software development is a learning process

Working code is a side effect”

Page 95: Chasing elephants

Good Software developers are

compulsive learners

Page 96: Chasing elephants
Page 97: Chasing elephants

They’ll leave when there’s no

learning left.

Page 98: Chasing elephants

The elephant in the middle of the road

Page 99: Chasing elephants

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

Page 100: Chasing elephants

How the hell are we

supposed to learn?

Page 101: Chasing elephants

But there’s something worse than that

Page 102: Chasing elephants

Purpose is lost

Page 103: Chasing elephants
Page 104: Chasing elephants
Page 105: Chasing elephants

I am a Craftsman!

Page 106: Chasing elephants

I am a Craftsman! I am the Product Owner

Page 107: Chasing elephants

I am a Craftsman! I am the Product Owner

I am a Senior Architect!

Page 108: Chasing elephants

I am a Craftsman! I am the Product Owner

I am a Senior Architect!

I am the boss!

Page 109: Chasing elephants

–Johnny Appleseed

“Type a quote here.”

Page 110: Chasing elephants

Long time ago

Page 111: Chasing elephants

Long time ago

• Surveyed a huge codebase:

Page 112: Chasing elephants

Long time ago

• Surveyed a huge codebase:

• 500 k lines of code

Page 113: Chasing elephants

Long time ago

• Surveyed a huge codebase:

• 500 k lines of code

• Obsolete technology

Page 114: Chasing elephants

Long time ago

• Surveyed a huge codebase:

• 500 k lines of code

• Obsolete technology

• Oscillating between useless and poisonous

Page 115: Chasing elephants

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

Page 116: Chasing elephants

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.

Page 117: Chasing elephants
Page 118: Chasing elephants

No purpose

(again)

Page 119: Chasing elephants

and no regrets!

Goodbye!

Page 120: Chasing elephants

No joy in writing, damn hard to remove and change

Software without a purpose is poisonous

Page 121: Chasing elephants

Not much time ago

Page 122: Chasing elephants

Not much time ago

• Cool startup

Page 123: Chasing elephants

Not much time ago

• Cool startup

• Tons of money

Page 124: Chasing elephants

Not much time ago

• Cool startup

• Tons of money

• Cool technology

Page 125: Chasing elephants

Not much time ago

• Cool startup

• Tons of money

• Cool technology

• Not so clear purpose …They must be right!

Page 126: Chasing elephants

No purpose

(again)

Page 127: Chasing elephants

Symptoms

• Feature creep

• lots of unproven hypothesis

Page 128: Chasing elephants

Takeaways

Page 129: Chasing elephants

I’ve seen many places, but the problems are always the same

Page 130: Chasing elephants

In 2017 software development is still managed as a production

process…

Management advice

Page 131: Chasing elephants

In 2017 software development is still managed as a production

process…

IT IS NOT

Management advice

Page 132: Chasing elephants

Management advice

Work to create an ecosystem where

learning and delivery are possible

Page 133: Chasing elephants

Learn! Practice!

Experiment!

Developers advice

Be Safe, Fail, retry

Page 134: Chasing elephants

Stop writing purposeless software

Developers advice

Page 135: Chasing elephants

1. Find your real users

2. make them happy

3. repeat

Page 136: Chasing elephants

Chase your elephants…

Page 137: Chasing elephants

…Or they’ll chase you

Page 138: Chasing elephants

Thank you!

Page 139: Chasing elephants

Game Changers