Retrospectives
The hardest, most important agile practice
Retrospectives (retros)
The obvious part
Look at what happened
Figure out how to do better
Retrospectives
Why they don't work
Gut feelings
"Our codebase sucks!"
Misdirected focus
"Attendance at swarms sucks!"
Blame
"That's the third time you've broken the app!"
Aspirational not operational proposals
"Ensure all important requirements identified"
Cures worse than the disease
"Everyone who is late pays a buck per minute."
"All code has to be reviewed by all team members before committing to main."
Useless metrics
"Tardiness is down 20%"
"Lines of code written is up 25%"
Continual Product Development
Continual Team Development
Retrospectives
Key components
Focus on metrics that matter.
Value delivered, morale, productivity
Measure the actual problem (baseline).
Analyze the actual causes (hard!!).
5 why's root cause analysis
Find a simple change for a fixable root cause.
Not an immediate cause
Not an external cause, e.g., client behavior
Identify tradeoffs
Other metrics that matter (not target) that the change might hurt
E.g., more testing means fewer bugs but reduced productivity
Set tradeoff: maximum cost, minimum benefit.
"At most 15 minutes per meeting, at least 20% decrease in defects released"
Track and review at future retros.
Example causal analysis
Example causal analysis
Example causal analysis
Example causal analysis
Example causal analysis
Example causal analysis
Example causal analysis
What are good changes to propose?
Common Agile Changes
Acceptance tests
Backlogs
Burnup / burndown charts
Continuous deployment
Continuous integration
Daily stand-up
DTSTTCPW
Feature teams
Four-panel Storyboards
Information Radiators
Iterations
Niko-niko charts
Parking lot
Plan B
Post-It notes
Refactoring
Retrospectives
Scenarios
Story points
Swarming and pairing
Taskboards
TDD
Technical spike
Timebox
Transparency
User stories
Velocity
Vertical slices
Wideband polling
YAGNI
Agile Alliance Subway Map to Agile Practices
Anti-Agile Techniques
BDUF
Distributed teams
Extensive mockups and wireframe sequences
Scheduled milestones
Silos
Waterfall
Weekly task assignments
Underlying Agile Themes
Deliver value early
Define by story
Fail fast
Timebox
Defer commitment
Slice
Make it visible
Make it testable
Minimize work in progress
Minimize non-production
Retrospective reports
First two columns before meeting. Rest are for ideas generated in coaching.
Focus on trends. Compare to previous week. Better or Worse? Avoid "this week seemed OK"
Back up claims with data. Stories done. Features added. Bugs fixed.
Use mood charts for multiple insights. Number of meetings. Attendance, Common positives. Common negatives.
Tracking productivity ideas
Mark tasks with common Github tags: new feature, enhancement, bug fix.
Track things done per swarm.
Set team goal for what a swarm should be able to get done. Tally how often you make that goal.
Tracking team development ideas
Mood chart. Keep comments short and specific -- easy to compare for trends.
Schedule mood chart for last action in every swarm, big or small.
Enter mood color in parallel first to avoid group-think, then enter comments.
Note who did what in git commit messages or Trello. Catch bus factor issues.
Thanks to Hakim El Hattab for
the slide template