AnyKanban

Docs › Get a board

Build a board across several teams' sprints

Claims Intake is three days into Sprint 41; Regulatory Reporting is halfway through Cycle 17. Two teams, two different current sprints, one program, and a delivery manager who wants a single view of what is in flight right now. A native board belongs to exactly one team, so no board shows both. A query with one @CurrentIteration clause per team has no such boundary.

This is the short version. One board across several teams' sprints covers the query variants and the troubleshooting in full.

Before you start

Every team the query names must have a current iteration scheduled. The union stands on that, and the Notes below cover what happens when one does not. Both teams here live in Claims Platform; teams from different projects work too, with the cross-project switch from Build a board across several projects.

Steps

  1. In the query editor, add one Iteration Path = @CurrentIteration clause per team, each with its team as the parameter, as @CurrentIteration('[Claims Platform]\Claims Intake'), and join the clauses with Or. Keep the type Flat list of work items, with no ORDER BY or sorted by your process's order field ascending.
  2. Save it in Shared Queries.
  3. Open Boards → AnyKanban and select New board, then Use existing query in the gallery. Name it, pick the query, and pick Product Backlog Item under Work item type.
  4. On the Fields tab, add Iteration Path to Fields shown on cards. On a board where every card belongs to some team's sprint, the sprint is the context a card cannot do without.
  5. Select Create, then open the board. In Settings, on the Swimlanes tab, type System.IterationPath into the lane field box. That gives one row per sprint, and the union reads at a glance.

What you should see

Four columns, New, Approved, Committed and Done, and two swimlanes, one per current sprint: Claims Platform\Intake\Sprint 41 with ten cards above Claims Platform\Regulatory\Cycle 17 with nine. Committed holds two cards from each team; give it a WIP limit of 4 and its header in each lane reads 2 beside 4/4: the lane's own two, then one number for work two different sprint plans put in flight.

The union is live, not a snapshot: Parse vet invoices for pet claims sits in Sprint 42 and Prepare the year-end solvency pack in Cycle 18, so the query returns neither. When the sprints roll, the board follows without anyone editing a filter.

One board over two teams' current sprints, one swimlane per sprint

Notes

Azure DevOps enforces the current-iteration requirement the hard way: a named team with no scheduled current sprint does not return fewer rows. It fails the whole query, so one team between sprints takes the other team's cards with it. The board degrades by name rather than by mystery: opening it tells you which team has no scheduled current iteration and that no cards can be shown, and a board already open keeps the cards it last read and warns that refreshing has stopped, and why. The fix belongs to the named team's iteration settings; the warning clears on the next successful refresh.

If a team's sprints have gaps by design, the macro is the wrong tool. Name iteration paths with UNDER instead. The full guide shows that variant, and one by team areas with no sprint dependency at all.