Structure produces architecture

Systems tend to mirror the communication structure of the organisations that build them. This is not a curiosity; it is a design tool. If you want a particular architecture, arrange the teams that way.

It also works in reverse: a structure that splits one user journey across four teams will produce a system with four seams in that journey, and every change will require four calendars to align.

Organise around outcomes

Teams built around technical layers — a front-end team, a back-end team, a database team — require every meaningful feature to cross several teams. Coordination becomes the dominant cost.

Teams built around a user outcome, containing the skills needed to deliver it, can ship independently. That independence is worth more than the specialisation it gives up.

Give each team what it needs to finish

A team that cannot deploy without another team, or cannot change a schema without a review board, does not control its own delivery. Its velocity is set by its dependencies, not by its capability.

Where a dependency is genuinely unavoidable, make it a self-service platform rather than a queue of requests.

Keep teams small

Beyond roughly eight or nine people, a team stops being a group where everyone knows the current state of the work and becomes a set of sub-groups with a shared standup.

Splitting deliberately at that point, along a real boundary in the product, is better than allowing the split to happen informally along whichever lines emerge.

Give each team a metric

A team with an outcome measure it genuinely influences makes better decisions than one with a feature list, because it can weigh options rather than execute a queue.

The measure must be something the team can actually move. Holding a team accountable for a number dominated by other teams' work produces cynicism rather than focus.

Expect to restructure

The right structure at ten people is wrong at forty. Treat structure as something reviewed periodically rather than settled once, and be explicit about what problem each change is meant to solve.

Written by the Global IT Solutions engineering team. Working through this decision right now?

Start a conversation