Microservices Team Models

  1. Grouping by function
  • Unclear ownership
  • Lack of autonomy
  • No long-term responsibility
  • Risk of silos
  1. Grouping across functions
  • Aligning teams with business value will be reflected in the application developed; the teams will build services that explicitly implement business capabilities.
  • Individual services will have clear ownership.
  • Service architecture will reflect low coupling and high cohesiveness of teams.
  • Functional specialists in different teams can collaborate informally to develop shared practices and ways of working.

In the fine grained services approach that we use at Amazon, services do not only represent
a software structure but also the organizational structure. The services have a strong
ownership model, which combined with the small team size is intended to make it very easy
to innovate. In some sense you can see these services as small startups within the walls of
a bigger company. Each of these services require a strong focus on who their customers are,
regardless whether they are externally or internally.
-—Werner Vogels

3. **Setting team boundaries**
  * A cross-functional team should have a mission. A mission is inspirational: it gives the team something to strive toward but also sets the boundaries of a team’s responsibilities.
4. **Infrastructure, platform, and product**
Sanjay Over 4 years ago