Skip to content

Workshop 2: Bottleneck Analysis Handout

This is what we work through together in the session. Follow along in your own clone. Record what we find in your logbook as we go.


Part 1: Rank the pipeline stages

We open baseline.log from Session 1 together and read the duration for each stage, then rank the stages 1–8 by duration (slowest = 1). The eight stages:

  • install
  • lint
  • typecheck
  • test:api
  • test:web
  • build:api
  • build:web
  • deploy

Record each stage's duration, its rank, and whether it felt slow in your logbook as we go. Note the single biggest hot spot, the total duration, and the hot spot as a percentage of total (expect ~95%: test:api).


Part 2: 5 Whys on the top three bottlenecks

For each of the three slowest stages, we apply 5 Whys together until we reach a process root cause, something about how the team works, not just about the line of code. I run the first one live on screen; we do the next two together.

The shape of a 5 Whys:

StepQuestion
Why 1Why is this slow?
Why 2Why?
Why 3Why?
Why 4Why?
Why 5Why?

Record each bottleneck, its five whys, and the root cause you land on in your logbook as we go.


Part 3: Fishbone diagram (one bottleneck of your choice)

For one bottleneck (ideally a flaky test), we sketch a fishbone together with contributing factors grouped under each category: People, Process, Tools, Environment, Materials.

There are five flaky tests in the repo (all fail ~50% of runs): processes async events within budget (apps/api/tests/reports.test.ts), auto-saves a task within budget (apps/api/tests/tasks.test.ts), renders a relative timestamp (apps/web/tests/components/CommentList.test.tsx), signs in once the request resolves (apps/web/tests/pages/Login.test.tsx), and shows the task list shortly after load (apps/web/tests/pages/Dashboard.test.tsx). The one in reports.test.ts is the canonical example.

Record your chosen bottleneck and the contributing factors per category in your logbook as we go.


Part 4: Prioritization

We plot each of the three bottlenecks on the impact / effort grid below, together.

            LOW EFFORT             HIGH EFFORT

HIGH    ┌──────────────────┬──────────────────┐
IMPACT  │  Quick wins       │  Big bets         │
        │  (fix this sprint)│  (write proposal) │
        │                  │                  │
        ├──────────────────┼──────────────────┤
LOW     │  Warm-up work    │  Don't do        │
IMPACT  │  (newcomer tasks)│  (politely kill) │
        │                  │                  │
        └──────────────────┴──────────────────┘

Record each bottleneck's impact (H/L), effort (H/L), quadrant, and priority (1-3) in your logbook as we go.


Keep your logbook

Everything above lives in your logbook. This is continuity, not an assignment: we carry your three ranked, root-caused, prioritized bottlenecks straight into Workshop 3.