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 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 master."
  • 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.
    • Productivity, value delivered, morale
  • 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 change dangers.
    • Other metrics that matter (not target) that the change might hurt
    • E.g., 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

Start with an issue

Link to a metric that matters

Identify the causes

Propose a change

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