# 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](https://anykanban.com/docs/guide-several-teams-one-board/) 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](https://anykanban.com/docs/get-a-board/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](https://anykanban.com/docs/_img/several-teams-board.png)

## 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](https://anykanban.com/docs/guide-several-teams-one-board/) shows that variant, and one by team
areas with no sprint dependency at all.

## Related

- [One board across several teams' sprints](https://anykanban.com/docs/guide-several-teams-one-board/): the full guide
- [Build a board across several projects](https://anykanban.com/docs/get-a-board/board-across-several-projects/)
- [Get one row per work item type](https://anykanban.com/docs/shape-the-board/one-row-per-work-item-type/): the same swimlane mechanism, by type instead of sprint
- [Create a named board](https://anykanban.com/docs/get-a-board/create-a-named-board/)
