# Teams and Ownership — Monolith vs Microservices

Source: https://www.skillbyai.com/en/monolith-microservices/p-teams

> Align team structure with architecture using ownership and Team Topologies ideas.

## Architecture is also an org chart

Microservices succeed when each service has **one owning team** responsible for building, running and fixing it ("you build it, you run it"). The book **Team Topologies** (Skelton and Pais) describes four team types that map well onto architecture: **stream-aligned teams** own a slice of business value end to end; **platform teams** provide self-service infrastructure (pipelines, clusters, observability) as an internal product; **enabling teams** coach others in new skills; and **complicated-subsystem teams** own parts needing deep specialist knowledge. Keep **cognitive load** manageable: a team should be able to understand everything it owns. Interaction modes matter too: collaboration for discovery, X-as-a-service for stable platforms. Without a strong platform, every stream-aligned team reinvents pipelines and monitoring, and microservices become expensive.

## Stream-aligned teams on a platform

Product teams each own a slice of the system and build on a shared self-service platform.

![Several vertical team columns standing on a wide horizontal platform slab, with a small helper shape moving between columns.](assets/figures/monolith-microservices/section-8-map.svg) — Figure 8.1 — Stream-aligned teams supported by a platform team.

## An ownership entry in a service catalogue

Every service declares its owner, on-call, docs and dependencies.

```yaml
apiVersion: backstage.io/v1alpha1
kind: Component
metadata:
  name: checkout
  description: Cart, pricing, coupons and order placement
  annotations:
    pagerduty.com/service-id: PCHK123
  links:
    - url: https://grafana.example.com/d/checkout
      title: Dashboard
    - url: https://runbooks.example.com/checkout
      title: Runbook
spec:
  type: service
  lifecycle: production
  owner: team-checkout
  system: storefront
  dependsOn:
    - component:pricing-rules
    - resource:checkout-db
```

## No orphan services

A service without a clear owner will be the one nobody patches. Make ownership part of the definition of done for any new service, and reassign it explicitly when teams change.

**Quiz:** In Team Topologies, what is the role of a platform team?

- [ ] Owning a customer-facing feature end to end
- [ ] Approving every deployment manually
- [x] Providing self-service internal capabilities such as pipelines and infrastructure for other teams
- [ ] Writing all the business logic

*Answer:* Providing self-service internal capabilities such as pipelines and infrastructure for other teams. Platform teams reduce the load on stream-aligned teams by offering infrastructure as a product.
