Chapter 5. Building Effective Teams

In this chapter, I’m going to talk about the type of organization that enables a microservice-based architecture: it should be loosely coupled and made up of autonomous teams, each with a clear area of responsibility that maps to one or more microservices.

Within an organization, teams are the fundamental units of software delivery. We’ll look at what makes for an effective team, and I’ll describe the types of teams you should have in place, drawing heavily on the definitions in Matthew Skelton and Manuel Pais’s Team Topologies,1 which match very closely to the types of teams we had adopted at the FT as we moved to a microservice architecture.

But first, let’s talk about organizational culture.

Organizational Culture

A microservice architecture is loosely coupled, so you need your teams to be loosely coupled as well. That means setting up those teams so that they can get their work done without needing coordination with other teams. The reward for this is the fast flow of change, delivering frequent business value—but only if the organizational culture can let that happen. What characteristics of a culture support autonomy and a fast flow of change?

Open

Information is shared, not hoarded.

Learning

People are encouraged to try out new things.

Empowering

Teams are encouraged to work independently and make their own decisions.

Optimized for change

The organization is flexible and able to respond quickly when things change.

Bringing ...

Get Enabling Microservice Success now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.