Real Agile

Kyle Coberly

kylecoberly.com

What is agile?

Why change direction quickly?

  • Reality is messy
  • Communication is lossy
  • Prediction is hard

So why aren't you doing it?

  • Collective Commitment
  • Self-organizing Teams
  • Retros
  • Quality practices
  • ...
  • ...
  • ...
  • ...
  • ...
  • ...
  • ...
  • Sprints
  • User stories
  • Points
  • Stand ups

This matters

This doesn't

A History of Control vs Freedom

1875

Present

1950

1995

1910

Frederick Taylor

Henry Gantt

Harrington Emerson

James McKinsey

Peter Drucker

Jack Welch

Winston Royce

Dean Leffingwell

CI Lewis

Walter Shewart

W. Edwards Deming

Taichii Ohno

Joseph Juran

The Agile 17

Joshua Kerievsky

Symbolic logic, pragmatism

Control charts

Quality engineering

TPS

Quality management

The agile manifesto

Modern agile

"Scientific" management

Bonuses, predictive planning

Management hierarchy

Budgetary control

MBO, Outsourcing

Stack ranking

Waterfall

SAFe

Brian Robertson

Holocracy

Freedom

Control

Aubrey Daniels

Performance management

UK Government

Systems Analysis & Design

Flow

This is not flow

...and neither is this

Flow

This is Flow

Flow

Phase

Flow

Why People Think Phases Are Good

Planning

Testing

Building

Important geniouses

Understand customers

Consider the big picture

Gotta design before you build

Cheap idiots

Bugs, gotta catch 'em all

Outsource? Offshore?

Probably won't have much to do anyway

Expensive jerks

Don't waste their time!

Scared of other humans

Just need to be told what to do by a genious

Accountability for jerks

?

??

Users

Reality

Flow

What Actually Happens

(Goes to work on another project)

(Goes to work on another project)

(Competitor launches a better product)

What even is this shit?

Our DBA quit, we're stalled until we get another

Just doin' what I'm told

Remember, think like a user!

You're just bringing me in now??

None of this even kind of works

(Late coming in from another project)

Happy now??

No!

This sucks

Blame the nerds, my plan ruled

Flow

Why Predictive Planning Doesn't Work

  • Increased WIP and Inventory increases risk
  • Can't account for every external factor
  • Need extra space and people to buffer irregularities
  • Slow feedback loops with the team and users
  • No gets bought in on someone else's plan

Flow

What Should Happen

Next project

Let's build something useful!

This sucks

Ok, what about now?

I hate this

Next project

Let's build something useful!

This is ok

Ok, what about now?

Google's is better

Let's build something useful!

This is ok

Ok, what about now?

A little less of that

Ok, what about now?

Awesome!

Flow

What happens within an iteration

We're building a boat!

Ok, we made something that floats

How is it going to move across land though?

Oh shit, that's a good point- I guess this needs to be more like a car than a boat

Just adding wheels to the boat didn't work

Now that I'm looking at it though, we could modify the hull a little

Oh that works great

We built a floating car!

Flow

Why Adaptive Planning Works

  • Tight feedback loops reduce the need for prediction
  • Dedicated teams simplify resource management
  • Collective commitment increases buy-in

Flow

Why Crunch-Time Is Dumb

  • Tired people do bad work
  • Burning people out is expensive
  • It's caused by predictive planning

Sustainable Pace

-Or-

Flow

The Effects of Fatigue

  • Ability to make decisions
  • Ability to do complex planning
  • Communication skills
  • Productivity and performance
  • Attention
  • Ability to handle stress
  • Reaction time
  • Ability to recall details
  • Ability to respond to changes in surroundings or information provided

Flow

How Much Does a $100k Developer Cost to Replace?

  • $25k to recruit
  • $6k for 2 weeks of on-boarding
  • $12k for 4 weeks to become productive

$42,000

Flow

Fixed vs. Variable Scope

Scope

Cost

Time

Cost

Time

Scope

This is fixed up front

We guess at these

We control these

This is flexible

Flow

Running at Capacity

No Flow!

Flow

Running with Headroom

Flow

Team Structure

Self-Organization

Birds do it!

Bees do it!

Even tiny parts of me do it!

Team Structure

...a self-organizing system is intrinsically adaptive: it maintains its basic organization in spite of continuing changes in its environment. As noted, perturbations may even make the system more robust, by helping it to discover a more stable organization.

- Francis Heylighen

Team Structure

Controlled Team Composition (theory)

Analyst Designer Tester
Senior Dev Senior Dev Mid-Level Dev
Mid-Level Dev
Junior Dev Infrastructure

Team Structure

Controlled Team Composition (actual)

Some Bureaucrat Person who will only write SQL Junior dev who does all the testing and documentation
Exhausted Senior Dev who does all the work Bored Senior Dev who criticizes everything Laid off
Technically on another team Borrowed designer Fired

Team Structure

Free Team Composition

Human 1

Human 2

Human 3

Human 4

Human 5

Analysis

Design

Development

Testing

Team Structure

Collective Commitment: The IKEA Effect

Team Structure

Standups

The team gets together once a day to talk about how to attack the day together and reaffirm their collective commitment. The "status" is already captured with an information radiator.

Status Meetings

Everyone recites the details of their last 24 hours to a bored audience that isn't paying attention, often for the benefit of a manager whose only connection to this project is this meeting.

VERSUS

Team Structure

Product Owner

Team Structure

ScrumMaster

Team Structure

PM != PO != SM

Team Structure

Quality

Quality = Fitness for purpose

Quality

'Quality cannot be tested in' means, testing your product after it has been built, no matter how many times you do so, isn't going to add quality to your original design; build it right the first time and it will pass every test.

- Deming

Quality

Title Text

BDD Cycle

Quality

Time

Complexity

Speed

Speed vs. Complexity

Cut corners reduce speed

Quality

  • A misunderstood metaphor
  • "Interest"?
  • The social cost

Quality

Agile code == Quality code

Quality

Measurement

Accurate != Precise

Measurement

User Stories

  • Card, Conversation, Confirmation
  • Not technical
  • Measure meaningful progress

Measurement

0% DONE

100%

Measurement

100%

100%

100%

100%

100%

100%

100%

100%

100%

100%

100%

100%

100%

100%

100%

MMFs vs. User Stories

Minimally Marketable Features

User Stories

Measurement

Story Points

Measurement

Normal Velocity

Measurement

Worrisome Velocity

What corners are being cut? Who's burning out?

Why are we slower than we used to be?

Measurement

Don't Min-Max Made-up Numbers

Measurement

Common-Cause vs. Special-Cause Variation

Measurement

Performance Reviews

  • Can't use points or velocity
  • Can't use the success of the project
  • Can't use ratings
  • Can't use numbers

Performance Previews

TDD for the team!

Measurement

Questions?

Kyle Coberly

kylecoberly.com

Made with Slides.com