13 Building microservice teams

 

This chapter covers

  • How a microservice architecture affects your engineering culture and organization
  • Strategies and techniques for building effective microservice teams
  • Common pitfalls in microservice development
  • Governance and best practice in large microservice applications

Throughout this book, we’ve focused on the technical side of microservices: how to design, deploy, and operate services. But it’d be a mistake to examine the technical nature of microservices alone. People implement software, and building great software is as much about effective communication, alignment, and collaboration as implementation choices.

A microservice architecture is great for getting things done. It allows you to build new services and capabilities rapidly and independently of existing functionality. Conversely, it increases the scope and complexity of day-to-day tasks, such as operations, security, and on-call support. It can significantly change an organization’s technical strategy. It demands a strong culture of ownership and accountability from engineers. Achieving this culture, while minimizing friction and increasing pace, is vital to a successful microservice implementation.

13.1 Building effective teams

13.1.1 Conway’s Law

13.1.2 Principles for effective teams

13.2 Team models

13.2.1 Grouping by function

13.2.2 Grouping across functions

13.2.3 Setting team boundaries

13.2.4 Infrastructure, platform, and product

13.2.5 Who’s on-call?

13.2.6 Sharing knowledge

13.3 Recommended practices for microservice teams

13.3.1 Drivers of change in microservices

13.3.2 The role of architecture

13.3.3 Homogeneity versus technical flexibility

13.3.4 Open source model

13.3.5 Design review

13.3.6 Living documentation

13.3.7 Answering questions about your application

13.4 Further reading

Summary