UX Encyclopedia

Swimlane Flow

A swimlane flow organizes a process into parallel lanes — one per actor, system, or department — so that every step sits in the lane of whoever performs it, and every handoff is visible as an arrow crossing a lane boundary. It is the notation that makes WHO as prominent as WHAT. Near-synonyms: cross-functional flowchart, deployment flowchart, Rummler-Brache diagram.

Origin (labeled as history, not law)

Multi-column process charts existed decades earlier, but the swimming-pool framing was popularized by Geary Rummler and Alan Brache in Improving Performance: How to Manage the White Space on the Organization Chart (1990). Their thesis is the reason the notation matters: processes fail disproportionately at the boundaries between functions — the "white space" on the org chart — so a diagram that renders every boundary crossing visibly is a diagnostic instrument, not decoration. BPMN (OMG standard, v2.0.2, 2014) formalized the idea as pools (separate organizations/ participants) subdivided into lanes (roles within one participant); if you exchange diagrams with process or BPM teams, that's the vocabulary they'll use.

When lanes beat a single line

  • Three or more actors. With two, "User → System" annotations on a plain flow are fine (User Flow, System Flow). At three-plus, single-line diagrams turn into label soup; lanes restore legibility.
  • The problem IS the handoffs: work stalls "between" people, ownership is disputed, things vanish into queues. Lanes make each transfer a visible, countable event (Workflow Diagram).
  • Mixed human/system processes, where you need to see which steps are automated and which wait on a person.
  • Service design: a service blueprint (Service Blueprint) is essentially a swimlane diagram with conventionalized lanes (customer actions, frontstage, backstage, support).

Notation, text-first

Convention: one lane per actor; time flows in one direction (pick left→right or top→bottom and stick to it); each step sits in exactly one lane; arrows crossing lanes are handoffs. In markdown, a table works: columns are lanes, rows are time steps.

Example — image upload and review

Step User Website Server Admin Email System
1 Uploads images Shows upload UI, progress bar Receives files
2 Waits / may leave "Processing…" status Validates + processes images
2a Shows "upload failed — Retry" (files kept) ✗ Validation fails → error to Website
3 Queues for review → notifies Admin Review request lands in queue
4 Reviews images (wait: hours–days — what does User see meanwhile?)
5a Gallery updates Publishes approved images Approves → Sends "approved" email to User
5b Shows rejection + reason + re-upload path Flags rejected Rejects with reason → Sends "rejected" email to User
5c Still says "Processing…" ← the bug ✗ Never reviews (queue overflow) ✗ Nothing sent
6 Reads email, returns Logs outcome ✗ Email bounces → outcome must ALSO show in-app

Row 5c is deliberately in the diagram: the no-action branch is a real outcome and needs a design (SLA timer, admin escalation, honest user-facing status). Row 6's bounce branch is why email can never be the only channel for an outcome.

Reading rule: crossings are the risky moments

Every arrow that crosses a lane is a handoff, and every handoff is a place where work can be dropped, delayed, duplicated, or garbled. So review a swimlane flow by walking the crossings, not the boxes. At each crossing ask: How does the receiver find out it's their turn (notification? queue? nothing?)? What context travels with the work? What happens if the receiver never acts — who notices, when? What does the actor in the User lane see while other lanes are busy? A lane that goes quiet for a long stretch while others work is a waiting user — that silence is a design surface (status page, progress email), not empty space. And a step that appears in two lanes means disputed ownership — resolve it before build, because the permission model will force the answer anyway (Permission Flow).

Common mistakes

  • Too many lanes (>6–7): merge minor actors or split the diagram — an unreadable swimlane hides handoffs instead of exposing them.
  • Steps floating between lanes or duplicated across lanes — ownership must be unambiguous.
  • No lane for automated systems, leaving automation invisible — the server and the email system earn lanes like anyone else.
  • Zig-zag audit: lots of rapid back-and-forth between two lanes is a process smell (consolidate steps or question the split), and the diagram is how you spot it.
  • Only drawing the approve path — rejection, timeout, and bounce branches (5b, 5c, 6 above) are where the design work is.
  • Time not flowing one way — loops back are fine, but label them.

Checklist

  • Every actor AND automated system has a lane; ≤7 lanes total.
  • Every step sits in exactly one lane; disputed steps resolved.
  • Time flows one direction; loop-backs are explicit and labeled.
  • Every lane crossing annotated: how the receiver is notified, what context transfers.
  • Every crossing has a "receiver never acts" branch with an escalation or timeout.
  • The user lane never goes silently dark — long waits map to visible status (State Flow).
  • Failure branches drawn per lane (validation fails, review never happens, email bounces) — see Error Flow.
  • Outcomes surface in-app, not only via one channel.

Sources

  • Rummler, G. & Brache, A. (1990). Improving Performance: How to Manage the White Space on the Organization Chart. Jossey-Bass — popularized swimlanes and the handoff/"white space" diagnosis; multi-column process charts predate it (1940s flow-process-chart variants).
  • Object Management Group — Business Process Model and Notation (BPMN), v2.0.2 (2014), omg.org/spec/BPMN — pools and lanes as the formal standard.
  • ISO 5807:1985 — underlying flowchart symbol conventions.
↑↓ to navigate · Enter to open · Esc to close