Practice · Better Ways of Working

Process Flow Basics

A process flow is a shared picture of how work actually moves through steps, handoffs, and feedback loops. Drawn from the real behavior of the people who do the work, it shows the decisions, the exceptions, and the places where work sits and waits, all in one view a team can read together. It turns a vague sense that something is slow into a specific place you can point to and fix.

FlowBottlenecksMapping
~9 min

When this matters

  • A process feels slow or unpredictable and nobody can point to exactly where the time goes.
  • Several people touch the same work and each one describes the path differently.
  • You are about to change, automate, or hand off a process and need an honest baseline first.
  • Requests keep arriving faster than they leave, and the backlog grows without anyone deciding to grow it.

Key ideas

Steps, decisions, handoffs
Most flows are built from three things: actions someone takes, decisions that branch the path, and handoffs where work passes between people, teams, or systems. Naming which is which, and writing down exactly what travels across each handoff, removes most of the confusion in a single pass. Handoffs are where the most information goes missing.
Watch where work waits
The slow part of a process is usually the waiting between steps, not the active work. Flow efficiency, the share of total elapsed time that work is actually being touched, commonly sits in the 15-25% range for knowledge work and rarely passes 40%. For every hour of real work, three to five hours of waiting is normal. Marking the queues and the rework loops is where the real time hides.
Map what happens, not what should happen
Start from the real, current behavior, including the workarounds and the exceptions people treat as rare. A flow that only shows the official version hides the friction you are trying to find. Draw the current state with the people who do the work before you draw any better one. The map is honest or it is useless.
One bottleneck sets the pace
A process moves only as fast as its slowest constrained step, and work piles up just in front of it. This is the core idea of the Theory of Constraints. Find the step with the longest queue and the longest wait, fix that one first, and the whole flow speeds up. Improving any other step only makes the pile in front of the bottleneck grow faster.

Why this matters

When a team cannot point to where a process slows down, it guesses. It adds a status meeting, buys a tool, or tells people to work harder, and the request that took eleven days still takes eleven days. The reason is almost always invisible without a map. In most knowledge work, the share of total time that a piece of work is actively being touched, a measure called flow efficiency, sits in the 15-25% range. Highly tuned teams reach about 40%, and very few go higher. That means for a request that takes ten working days end to end, two days or less involves anyone doing anything. The other eight days, the work sits in a queue, waits for an approval, or bounces back for a redo.

That waiting is expensive and quiet. A support request that waits four days for an owner does not show up as wasted effort on anyone's timesheet, because nobody is working on it. It shows up as a slow customer, a tense escalation, and a team that feels busy while throughput stays flat. Speeding up the active work, the 20%, barely moves the total. Removing the waiting, the 80%, is where the time actually is.

The payoff of a good map is concrete. You stop arguing about who is slow and start looking at a shared picture. You can see that triage is fast, the real delay is the four-day queue before a request gets an owner, and the redo loop after review adds two more days for one request in five. Now the conversation has a target. The next section breaks down the moving parts so you can build that picture for your own work.

How it works

A process flow has a small number of moving parts. Once you can name them, you can draw any workflow. Walk the work item from the moment it arrives to the moment it leaves, and tag each thing that happens as one of these:

  • Step : an action someone performs on the work. Name it with a plain verb: receive, triage, draft, review, approve, send.
  • Decision : a point where the path branches. Write it as a yes or no question, for example "is this urgent?", and draw a branch for each answer, including the unhappy ones.
  • Handoff : a point where the work passes to a different person, team, or system. For each handoff, write down what gets passed and in what form, because this is where information goes missing.
  • Queue : a place where the work waits before the next step can start. Mark it explicitly. Queues are usually the largest part of the total time.
  • Loop : a path that sends work backward, such as a failed review going back to the author. Loops add hidden time and are easy to forget.

Two measurements turn the picture into something you can reason about. Lead time is the total elapsed time from when work is requested to when it is finished, queues and all. Cycle time is the elapsed time once someone actually starts it. The gap between the two is waiting. Flow efficiency is the active time divided by the lead time, expressed as a percentage.

A short worked calculation

Suppose a request takes 10 working days from arrival to delivery. Across those 10 days, the active touches add up to 2 days; the rest is waiting in queues and one redo loop. Flow efficiency is 2 divided by 10, which is 20%. That single number tells you the win is in the waiting, not in working faster.

One more rule explains why backlogs grow. Little's Law says the average amount of work in progress equals throughput multiplied by cycle time. Hold throughput steady and pile on more work in progress (WIP), and cycle time rises in lockstep. This is why limiting WIP, deliberately capping how many items are open at once, shortens cycle time without anyone working faster. The bottleneck, the slowest constrained step, sets the throughput for the whole flow, and WIP stacks up just in front of it. Find that step and you have found where to look first. The next section runs a real request through all of this.

A worked scenario

Take a support-or-request workflow on Maya's team. A request comes in, gets triaged, waits in a queue, is assigned, worked, reviewed, and sent back. Leads feel it is slow but nobody agrees on where. Maya sits with the two people who actually run it and maps the current state from real tickets, not from the runbook.

  1. They agree on the edges: the flow starts when a request lands in the shared inbox and ends when the requester gets the answer.
  2. They list the steps with plain verbs: receive, triage, assign, work, review, send.
  3. They mark the one decision, "is it urgent?", and both branches.
  4. They mark the handoffs: inbox to triager, triager to the assignment queue, queue to an assignee, assignee to reviewer, reviewer back to requester.
  5. They write the time each part really takes, pulled from a sample of twenty recent tickets.

The numbers are revealing. Triage takes about 15 minutes. The active work is roughly half a day. Review is 20 minutes. But the queue between triage and assignment averages four days, because nobody owns the act of assigning, so tickets sit until someone has a slow afternoon. On top of that, one ticket in five fails review and loops back, adding two more days each.

Lead time averages about six days; active time is well under one. Flow efficiency is roughly 12%, below even the typical band, and the four-day assignment queue is the bottleneck. Maya does not touch triage or review, which are already fast. She makes one change: a named owner pulls from the assignment queue twice a day, and she caps work in progress so no one holds more than three open tickets. Within two weeks the assignment queue drops from four days to under one, and average lead time falls from six days to under three. The active work never changed. The waiting did.

Pitfalls and edge cases

The most common failure is mapping the process you wish you had. People draw the clean official version and leave out the workaround that everyone actually uses, so the map hides the very friction you are hunting. Draw what happens on a real, recent item, and ask the people who do the work to correct you out loud. The first map is usually wrong in an interesting way, and that is the point.

A second trap is recording only the active steps and skipping the gaps between them. The boxes feel like the work, so the eye skips the white space. Force yourself to mark every queue as its own block with its own time, because the waiting is usually most of the lead time.

A few edge cases break the simple version:

  • No clear owner of a step : the assignment queue in Maya's case sat because owning "assign" belonged to no one. When a step has no owner, the queue in front of it is the symptom. Name an owner before you tune the step.
  • A moving bottleneck : fix the slowest step and a different step becomes the new constraint. This is expected. The map is a baseline you revisit, not a one-time drawing. Plan to redraw it after the first fix lands.
  • High variation, not high average : a step can average two hours but spike to two days for a tenth of items. Averages hide this. Look at the spread, not just the mean, and treat the long tail as its own problem.

State the better behavior plainly. Map the real path, give every queue a time, and expect the bottleneck to move once you fix it. With those habits, the practice holds up when more than one person depends on the flow, which is the next thing to plan for.

Doing it with a team and at scale

One person can map a flow on a whiteboard in an hour. Keeping it true as a team relies on it is the harder part, and it is where the practice earns its keep. A map drawn once and filed away goes stale the moment the process changes, and a stale map is worse than none because people trust it. Make the map a living artifact with a small cadence, not a deliverable.

Three lightweight habits keep it alive:

  • A single intake queue : route all requests through one visible entry point instead of private inboxes. You cannot see a queue you cannot find, and hidden intake is where lead time goes dark.
  • An explicit WIP limit : cap how many items are open at each stage. By Little's Law, less work in progress means shorter cycle time at the same throughput, and the limit makes the bottleneck visible as the place where work backs up.
  • A standing review trigger : revisit the map whenever the bottleneck moves or a recurring exception appears, not on a fixed calendar. The signal to redraw is a surprise in the numbers.

At larger scale, the same map becomes the boundary object between teams. When work crosses from one team to another, the handoff on your map is a real handoff in the org, and the queue in front of it is often the worst delay in the whole system. That is the seam where this practice connects to the others. Use Handoff Quality to define what must be complete before work crosses each boundary, and Workflow Ownership to name a single accountable owner for each step before you change it. The durable principle is simple. Make the flow visible, watch where work waits, fix the one constraint that sets the pace, then look again.

Practical steps

  1. 01Agree on where the process starts and where it ends, so the map has clear edges everyone shares.
  2. 02List the steps in order, using a plain verb for each one (receive, triage, review, approve, send).
  3. 03Mark every decision point and the branches that come out of it, including the unhappy ones.
  4. 04Mark every handoff between people, teams, or systems, and note what gets passed and in what form.
  5. 05Mark every queue where work waits, and write the time it really sits there, pulled from real items.
  6. 06Add the loops where work goes backward, then measure lead time and active time to get flow efficiency.
  7. 07Circle the one bottleneck, the step with the longest queue in front of it, and fix that one first.

Common mistakes

  • Mapping the idealized version and leaving out the workarounds and exceptions people actually rely on.
  • Recording only the active steps and skipping the waits between them, which is usually where the delay lives.
  • Drawing the flow alone, without the people who do the work, so it stays an assumption rather than a baseline.
  • Tuning a fast step because it is easy to improve, while the real bottleneck and its queue go untouched.
  • Filing the map after one drawing, so it goes stale the moment the process changes and quietly misleads people.

Examples

Plain-text flow sketch
Request received -> triaged (urgent? yes/no) -> [queue: waits ~4 days for owner] -> assigned -> work done (~0.5 day) -> reviewed (pass? yes/no) -> sent to requester. Exception: review fails -> back to assignee (~2 days). The queue before "assigned" holds most of the lead time, so it is the bottleneck to fix first, not the active steps.
Reading the flow efficiency
Lead time = 10 working days (request to delivery). Active time across all steps = 2 days. Flow efficiency = 2 / 10 = 20%, a typical knowledge-work figure. Reading: working twice as fast on the active steps saves at most 1 day; removing 3 days of queue saves 3. The win is in the waiting, so target the longest queue.

Notes

  • This is the anchor for the section: other pages reference flow, handoffs, and feedback loops back to here. The map is a baseline to improve from, not a one-time deliverable; revisit it when the bottleneck moves. It deliberately stops at seeing the flow and finding the constraint; it does not cover the redesign or automation of the future state.
  • Pairs with Handoff Quality for the boundaries the flow exposes, and with Workflow Ownership to name who owns each step before you change it.
  • Pairs with Feedback Loops for closing the gap between a change and the signal that tells you whether it worked.