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
Real Agile
By Kyle Coberly
Real Agile
Meetup talk for DenverScript, April 2020
- 1,461