Example: A Microservice Team

  • The service is treated as an internal product, used by many customer-facing products.

  • There is a set of teams dedicated to the service, in order to ensure that the cohesion of the service is preserved over time.

  • The team has a tech lead, and that person also has strong skills in positive forms of leadership (servant leadership, Socratic inquiry, and is action-oriented), and so there is not a separate team lead.

  • The teams maintain a lightweight in-memory mock of the service, so that application teams can run rapid tests using the service without having to deploy it.

  • The service’s deployment template is published so that application teams can deploy the service in their own test environments whenever they desire.

  • The service’s build program is published so that members of the service’s teams can make tentative changes, rebuild the service, and locally try out those changes whenever they desire.

  • The team includes an Agile data architect who oversees and documents the database(s) maintained by the service, its API, and also any data objects that it emits or sends to a data lake.

  • There is a testing strategy for the service.

  • There is a test lead who assesses if the service’s test suite is sufficient.

  • The team performs design reviews of changes to the service, to ensure that the service’s design is correct, can handle concurrent requests, and that all sagas are handled in the microservice ecosystem.

Related Topics