Philosophy and Team Structure
There is a philosophical aspect to the relationship between microservices and team organization. This comes from the application of Conway’s law10, which states that “any organization that designs a system will inevitably produce a design whose structure is a copy of the organization’s communication structure.” In “Building Microservices”, Sam Newman puts Conway’s law into context, and devotes an entire chapter to the interaction between an organization’s structure and system design.
Conway's law specifically focuses on communication and coordination between disparate groups of people. If the organization sequesters database administrators off into a group separate from application developers, the resulting architecture will have a distinct data tier managed in a way that is optimal for database administrators. Application developers would then need to coordinate changes that they need with database administrators. Conversely, if the development team handles data management itself, this kind of coordination is unnecessary.
A move to building microservices applications should include a discussion about organizational structure and what changes may be necessary to streamline communication patterns to complement the creation and growth of independent microservices. This is a common thread in the convergence of DevOps and microservices. Creating an agile ecosystem that is capable of fast and frequent change requires streamlined communications, and lots of automation.