Chasing elephants

Post on 21-Apr-2017

1.396 views 0 download

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