Skip to content

Instantly share code, notes, and snippets.

@wrgoldstein
Last active September 8, 2022 14:20
Show Gist options
  • Save wrgoldstein/6b5bcee78ee95a2d120c9fbe1ea4f06c to your computer and use it in GitHub Desktop.
Save wrgoldstein/6b5bcee78ee95a2d120c9fbe1ea4f06c to your computer and use it in GitHub Desktop.

Simple physics:

  • velocity = distance / time
  • momentum = mass x velocity

An analogy:

  • The distance traveled by a single developer in a set amount of time is "velocity"
  • The movement of the organization as a whole is "momentum" (the sum of individual velocities)
  • If you add more people but reduce velocity then momentum decreases (this is why small teams are sometimes more productive than big teams).

The key contributor in this equation is "distance"-- how much an individual gets done in unit time. Let's break down distance into its contributing components:

velocity = distance / time

distance := (skill x precision x technology) / (friction + overhead)

  • skill := a baseline movement speed

  • precision := the percent of effort that is in the right direction

  • friction := time lost for each unit of forward movement (code review, compile time, waiting for tests, operations and configuration, etc.)

  • overhead := active job time that isn't development

Some notes:

  • precision dominates this equation: if you're not working on the right thing, precision is 0, distance is 0, and velocity is 0.
  • friction + overhead can quickly overwhelm progress-- if 80% of your productive time is meetings and each piece of work actually shipped means waiting a few cycles for the next task, velocity can approach zero.

Adding a PM either adds or reduces overhead, friction, and precision, depending on the situation and the PM.

  1. Adding a PM nearly always adds overhead in the form of meetings, explanations, translations, etc.

  2. If a team is spending a lot of time communicating outwards, dealing with inbound requests, justifying its existence with analytics, etc., a PM can take that over, reducing overhead.

  3. If a team has no idea what to do (precision is very low) OR the PM is very skilled, adding a PM can improve precision. Only the best PMs can do this quickly in a new business domain above a certain threshold.

  4. If a team has poor process and the PM is exceptionally skilled, they can identify ways to improve the process, reducing friction. If the PM is less than exceptional, they may add more process, increasing friction.

  5. PMs sometimes mean an increase in distraction: A new PM wants to "look good", which can result in politics + deflecting blame, overshadowing the true aims of the business.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment