Enjoyed this book a lot. The top down globalization section really stood out to me. Feel like I have always worked in those environments, where performance was assessed at the individual level and then high performing individuals are moved around to lower performing teams to try and remediate. Viewing performance at the team level and trying to optimize for that (and then not messing with it) would take a lot of discipline but seems rewarding.

Assorted notes below.

Organizations

Team Sizing

  • managers should support 6-8 engineers
  • managers supporting fewer than 4 engineers tend to function as TLMs
  • managers of managers should support 4-6 managers
  • two-tier 24/7 support requires 8 engineers
  • small teams less than 4 people are not teams
  • keep innovation and maintenace together
  • to create a new team, grow an existing team to 8-10, then split to two teams of 4-5
  • add people all at once if possible, to reduce total amount of time teams need to “jell”
  • Avoid

Team States

State: Falling behind. Solution: Add people

State: Treading water. Solution: Reduce WIP

State: Repaying debt. Solution: Add time

State: Innovating. Solution: Add slack

Against Top Down Global Optimization

  • Teams take a long time to jell and become productive
  • Moving people off a productive team to a less productive team now leaves you with two unproductive teams. Moving people resets the jelling clock
  • Fixed costs are high (standup, on call, planning, slack)

Productivity

Developer Feedback Loop

  • Pull requests become ready commits based on code review rate
  • Ready commits become deployed commits based on deployment rate
  • Deployed commits become incidents based on incident rate
  • Incidents become reverted commits at recovery rate
  • reverted commits become new pull requests at debug rate

Setting Goals

  • Target
  • Baseline
  • Trend
  • Time frame

Example: In Q3, we will reduce rendering time from 600ms to 300ms. In Q2, rendering time increased from 500ms to 600ms.

Culture

Distributing Opportunity

  • Have rubrics everywhere
  • Wisely selecting project leaders
  • Have xplicit budgets
  • Nudge involvement
  • Education programs

Useful Metrics

  • Retention
  • Usage rate
  • Level distribution
  • Time at level

Selecting Project Leads

The more people capable of leading a project at your organization is a signal of health. To make it so more people can lead, there are many strategies outlined.

The Hero Programmer

When projects are behind, the temptation is just to “work harder”. But lack of hard work is not often the problem. Creating the hero programmer doesn’t work because it leads to burnout and they eventually quit or get frustrated and stop being productive. Meanwhile you alienated your other programmers.

Projects fall behind one sprint at a time. Fixing that takes time too.