惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Stack Overflow Blog
Stack Overflow Blog
Y
Y Combinator Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
M
MIT News - Artificial intelligence
GbyAI
GbyAI
A
About on SuperTechFans
T
The Blog of Author Tim Ferriss
雷峰网
雷峰网
Blog — PlanetScale
Blog — PlanetScale
J
Java Code Geeks
IT之家
IT之家
Microsoft Azure Blog
Microsoft Azure Blog
V
V2EX
爱范儿
爱范儿
N
Netflix TechBlog - Medium
U
Unit 42
博客园 - 三生石上(FineUI控件)
WordPress大学
WordPress大学
博客园 - 叶小钗
G
Google Developers Blog
Jina AI
Jina AI
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
The GitHub Blog
The GitHub Blog
腾讯CDC

DEV Community

Authentication Security Deep Dive: From Brute Force to Salted Hashing (With Java Examples) Why AI Systems Don’t Fail — They Drift Spilling beans for how i learn for exam😁"Reinforcement Learning Cheat Sheet" I Replaced Chrome with Safari for AI Browser Automation. Here's What Broke (and What Finally Worked) How Python Borrows Other People's Work The $40 Architecture: Processing 1 Billion API Requests with 99.99% Uptime Vibe Coding: A Workflow Guide (From Zero to SaaS) Most webhook security guides protect the wrong side. The scary part is delivery. Headless CMS for TanStack Start: Build a Blog with Cosmic EU Age Verification App "Hacked in 2 Minutes" — What Actually Happened Comfy Cloud’s delete function does not actually remove files Running AI Models on GPU Cloud Servers: A Beginner Guide Event-driven media intelligence with AWS Step Functions and Bedrock I scored 500 AI prompts across 8 quality dimensions — here's what broke How to Call Google Gemini API from Next.js (Free Tier, No Backend Needed) The Portal Protocol: Reclaiming Human Connection in the Age of AI How to Fix Your Team's Scattered Knowledge Problem With a Self-Hosted Forum Intro to tc Cloud Functors: A Graph-First Mental Model for the Modern Cloud Designing Multi-Tenant Backends With Both Ownership and Team Access I Built a Neumorphic CSS Library with 77+ Components — Here's What I Learned PostgreSQL Performance Optimization: Why Connection Pooling Is Critical at Scale Cómo construí un SaaS multi-rubro para gestionar expensas en Argentina con FastAPI + Vue 3 🚀 I Built an Ethical Hacking Scanner Tool – Open Source Project I Replaced /usage and /context in Claude Code With a Single Statusline A Pythonic Way to Handle Emails (IMAP/SMTP) with Auto-Discovery and AI-Ready Design I Collected 8.9 Million Polymarket Price Points — Here's What I Found About How Markets Really Move EcoTrack AI — Carbon Footprint Tracker & Dashboard Everyone's Using AI. No One Agrees How. 5 self-hosted ebook managers worth trying in 2026 Building Your First AI Agent with LangChain: From Chatbot to Autonomous Assistant
Your team isn’t slow — your WIP is too high (Little’s Law...
Matías Denda · 2026-05-06 · via DEV Community

A team with 20 open PRs is mathematically slower than a team with 3.

Not “feels slower.” Not “probably slower.”

Is slower.

If your tickets take two weeks to cross the board while coding takes a few hours, the problem isn’t effort — it’s how much work your team keeps in flight at the same time.

And there’s a 65-year-old law that explains exactly why.


The equation

Little’s Law, proven by MIT professor John Little in 1961, applies to any stable flow system over a long enough interval.

Lead Time = WIP / Throughput

In plain English:

  • Lead Time — how long it takes for a ticket to go from started → merged → deployed
  • WIP — Work In Progress, the number of items currently in flight
  • Throughput — how many items your team completes per unit time (usually per week)

This is not a metaphor. It governs factories, airport security lines, and fast-food drive-throughs.

It also governs your Git workflow — whether you acknowledge it or not.


The example that breaks the illusion

Let’s run the numbers on a real team.

Priya’s team closes 10 PRs per week on average (measured over the last 8 weeks). At any given moment, they have 20 PRs open (in progress + in review).

Their lead time is:

20 WIP / 10 PRs per week = 2 weeks

That means every ticket entering the system today is guaranteed to take about two weeks to ship — even if the code itself takes 3 hours.

When someone asks:

“Why does this take two weeks if coding takes half a day?”

This is the answer.

The code is not slow.

The developers are not slow.

The queue is long.


The part that actually changes how you work

If throughput is roughly stable (your team works at a certain pace), then:

Lowering WIP lowers lead time proportionally.

Same team:

  • WIP 20 → 10 → lead time drops from 2 weeks to 1 week
  • WIP 20 → 6 → lead time drops to ~3 days

Nothing else changes.

No overtime.

No process overhaul.

Just finishing work before starting new work.

This is why WIP limits exist in Kanban — not as a constraint on developers, but as a way to shorten delivery time by physics.


“If I limit WIP, people will sit idle”

This is the most common objection — and it’s backwards.

A team with 10 open PRs is slower than a team with 3.

Why?

  1. Context switching is expensive

    Every open branch is cognitive load. Ten branches means ten partial states competing for attention.

  2. Half-done work has zero value

    A PR at 90% is still 0% delivered.

  3. Waiting PRs are inventory, not progress

    In manufacturing, inventory is waste. In software, a PR sitting in review for days is exactly that.

Limiting WIP forces a simple rule:

Finish something before starting something new.

That alone compresses your delivery timeline.


You can measure this from Git (no fancy tools needed)

You don’t need Jira dashboards or expensive analytics. You can get all three variables directly from Git.


Throughput — PRs merged per week

gh pr list --state merged --limit 200 \
  --json mergedAt \
  --jq '[.[] | .mergedAt | fromdate | strftime("%Y-W%V")] 
        | group_by(.) 
        | map({week: .[0], count: length})'

Enter fullscreen mode Exit fullscreen mode

Average the last 8 weeks for a stable number.


WIP — what’s currently in flight

# PRs in review
gh pr list --state open | wc -l

# Branches not yet merged (likely in progress)
git fetch --prune
git branch -r --no-merged origin/main | wc -l

Enter fullscreen mode Exit fullscreen mode

Add both — that’s your WIP.


Lead time — created → merged

gh pr list --state merged --limit 50 \
  --json number,createdAt,mergedAt \
  --jq '.[] | {n: .number, hours: (((.mergedAt|fromdate) - (.createdAt|fromdate))/3600|floor)}'

Enter fullscreen mode Exit fullscreen mode

Don’t just look at the average — look at the spread. A few PRs taking 10+ days can dominate the system.


What to do with the numbers

Once you have all three:

  • If the equation matches your lead time → your system is stable. Lower WIP to go faster.
  • If your lead time is longer → you have bottlenecks (reviews, CI, environments). Fix those first.
  • If it’s shorter → you’re likely measuring WIP wrong or hiding variance.

If you’re leading a team and this number is higher than expected, you’re not alone — most teams never measure it.


A practical starting point for WIP limits

There’s no universal number, but these are solid defaults:

  • In Progress ≈ team size
  • In Review ≈ team size ÷ 2

Example (6 devs):

  • In Progress = 6
  • In Review = 3

From there, adjust slowly. Not weekly — quarterly. The signal takes time.

If lead time is too long:
Don’t add people — lower WIP.


When perception and math disagree

This is the uncomfortable part.

A team with:

  • WIP = 20
  • Throughput = 5/week

Has a 4-week lead time.

It doesn’t matter if individual PRs “feel fast.”

Users don’t feel individual PR speed.

They feel system lead time.

When the board says “we’re delivering” but the math says 4 weeks — the business experiences 4 weeks.


The takeaway

You don’t need a new process.

You don’t need better estimates.

You need a constraint:

Stop starting. Start finishing.


This post is adapted from Git in Depth: From Solo Developer to Engineering Teams, a 658-page book covering Git the way it’s actually used in real engineering teams.

Little’s Law looks simple — until you apply it and realize your entire workflow is shaped by it. In the book, I go deeper into how this connects to branching strategies, PR flows, and why some teams get faster as they scale while others slow down.