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

build-measure-learn loop

Continual Team Development

change-measure-analyze loop

Retrospectives

Key components

  • Focus on metrics that matter.
    • Value delivered, morale, productivity
  • Measure the actual problem (baseline).
  • Analyze the actual causes (hard!!).
  • 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.