Engineering Collaboration Practices

Project Boards And Delivery Flow

The two dominant systems for organizing flow around a board are Scrum and Kanban. Most real teams run a blend, but the ingredients are worth knowing separately, because they solve different problems.

Scrum: Timeboxed Iterations

Scrum organizes work into sprints — fixed timeboxes, usually one to four weeks, in which the team commits to a slice of work and delivers a usable increment at the end. Three roles hold it together: the product owner owns the product backlog, the ordered list of everything the product might need, and decides what matters next; the developers build the increment; and the scrum master owns the process itself, removing blockers and keeping the ceremonies honest rather than managing people.

The ceremonies map to the sprint's lifecycle:

PHP example
<?php

declare(strict_types=1);

$ceremonies = [
    'sprint planning' => 'select backlog items into the sprint and agree what done means',
    'daily standup' => 'fifteen minutes: progress, plan, and blockers - not status theater',
    'sprint review' => 'demonstrate the increment to stakeholders and gather feedback',
    'retrospective' => 'the team inspects its own process and picks one improvement',
];

foreach ($ceremonies as $ceremony => $purpose) {
    echo $ceremony . ': ' . $purpose . PHP_EOL;
}

// Prints:
// sprint planning: select backlog items into the sprint and agree what done means
// daily standup: fifteen minutes: progress, plan, and blockers - not status theater
// sprint review: demonstrate the increment to stakeholders and gather feedback
// retrospective: the team inspects its own process and picks one improvement

Scrum's measurements follow from the timebox. Velocity is how much backlog the team completes per sprint, useful for forecasting and dangerous as a performance target. A burndown chart shows remaining sprint work against time. Both are thermometers, not goals: a team that optimizes velocity numbers gets inflated estimates, not faster delivery.

Kanban: Continuous Flow

Kanban drops the timebox. Work flows continuously across the board, and the discipline comes from work-in-progress limits: each column has a maximum card count, and when a column is full, nobody starts new work — they help finish what is stuck. That single rule pulls the whole team toward finishing over starting, surfaces bottlenecks as visibly full columns, and replaces sprint commitment with a question asked per card: how long does an item take to cross the board? That measure, cycle time, is Kanban's velocity.

Kanban suits work that arrives continuously and unpredictably — support queues, operations, maintenance — where a two-week commitment would be fiction by Wednesday. Scrum suits product work that benefits from a steady cadence of planning and demonstration. A PHP product team commonly runs Scrum for feature work with a Kanban-style lane for urgent bugs, which is a deliberate blend rather than a failure to choose.

Done Criteria And Blocked Work

A board is only as honest as its definition of done. "Done" that means "code written" hides the risky remainder: review, tests, deploy, verification in production. Write the definition down — reviewed, merged, deployed, verified — and move cards only on evidence, such as the linked pull request merged and the release checked. A card moved to done before production verification is the board lying to the team.

Blocked work gets marked, dated, and named: what is it waiting on, and who owns unblocking it. A blocked card with no owner is where work goes to die quietly, and an aging report — cards untouched for a week — is the cheapest early-warning system a team can run.

Failure Modes

The universal failure is the board as decoration: updated before the meeting, ignored otherwise, while real coordination happens in chat. The fix is mechanical, not motivational — make the board the source of truth by linking cards to pull requests and deploys so most movement is automatic, and run standup from the board, walking columns right to left, instead of around the room. The second failure is unlimited work in progress: everything started, nothing finishing, and the fix is a WIP limit enforced even when it is inconvenient, because inconvenient is exactly when it is working.

What To Check

Before moving on, make sure you can:

  • explain what a board makes visible and why chat cannot substitute for it
  • describe Scrum's roles, ceremonies, and artifacts, and what a sprint commits to
  • explain velocity and burndown, and why they are thermometers rather than targets
  • describe Kanban's WIP limits, pull discipline, and cycle time
  • choose between Scrum, Kanban, or a blend for a given kind of work
  • write a definition of done that includes deployment and verification

What You Should Be Able To Do

After this lesson, you should be able to set up a board whose columns match your team's real workflow, run either sprints or WIP-limited flow over it deliberately, and spot the two classic failures — decorative boards and unlimited work in progress — early enough to fix them.

Practice

Practice: Design A Team Board

Design the project board for a five-developer PHP product team that ships a SaaS application weekly and also handles a steady trickle of support bugs. Specify columns, WIP limits, the definition of done, and which movements are automated.

Show solution

WIP limits: In Progress capped at 5 (one per developer), In Review at 4 — reviews block colleagues, so a full review column means the team reviews before starting new work. The limits will feel inconvenient within a week; that is them working.

Definition of done, written on the board: pull request merged with tests, deployed to production, verified by the author against the live system, and the card links to the PR and the deploy. A card without links does not move.

Automation: opening a linked PR moves the card to In Review; merging moves it to Deploying; the deploy pipeline's success moves it to Verified only after the author confirms. Standup walks the board right to left — finishing beats starting — and any card untouched for five days gets discussed or closed.

Feature work runs in two-week planning cycles over this board; the expedite lane keeps bug flow from making those plans fiction.

Practice: Diagnose A Lying Board

A team's board shows nine of ten sprint cards done. A customer then reports that a "done" feature errors in production; investigation shows it was never deployed. Separately, standup takes thirty minutes and the board is updated right before it.

Task

Diagnose both failures and prescribe fixes that change mechanics rather than exhort effort.

Show solution

Failure two: the board is decoration. Updated only before standup, it records history instead of coordinating work, and the thirty-minute standup is people reconstructing state the board should already show. Make the board the source of truth by wiring card movement to pull requests and deploys so it stays current without diligence, then run standup from the board — walk columns right to left, discuss only blocked and aging cards, and stop going around the room. Standups drop under fifteen minutes when they stop being verbal status reports.

The shared root cause: both failures happen when board state is maintained by memory and politeness. Boards stay honest exactly to the degree that their state is generated by the delivery machinery itself.

Practice: Define Board Health Checks

Define six checks — runnable monthly from the board's own data — that tell a team whether its board and delivery flow are healthy.

Show solution
  • Every done card links to a merged pull request and a production deploy; done cards without evidence mean the definition of done has quietly eroded.
  • Cycle time is measured and stable or falling: the days from In Progress to Verified, tracked per card, is the single most honest flow number the board produces.
  • WIP limits held: count the days each column exceeded its limit. Routinely exceeded limits are either wrong or ignored, and both need a decision.
  • No card aged silently: nothing sat untouched beyond the agreed threshold without a comment naming its blocker and an owner for unblocking it.
  • Blocked cards carry dates and owners, and their blocked time is visible — blocked-without-owner is where work dies.
  • Board movement is mostly automatic: the fraction of card transitions triggered by PR and deploy events, versus manual drag, tells you whether the board reflects the system or someone's memory.

A team passing all six has a board it can trust during an incident, which is the real test of delivery flow.