Teams Topologies

  • ISBN : 978-1-942788-81-2
  • Author : Mathew Skelton
  • Author : Manuel Pais

What is the Problem?

How we view Organisations

  • Are viewed as highly viscous.
  • Are seen a linear mechanical systems.
  • Should be viewed as complex adaptive systems.

The Nature of Modern systems

  • Are highly complex due to their need to interact with other systems.
  • Need to be able to evolve to meet the constant change that businesses demand.

Organisation chat structure and matrix management

  • They do not create the conditions needed to innovate and deliver fast.
  • They do not represent the real communication channels that are needed for delivery.

What is the solutions?

Teams as a unit of delivery

  • Because of the range of skills needed to build modern systems.
  • Multiple perspectives on a problem.
  • Smooth out delivery profiles, humans are not robots.
  • Organised around the components in the system.

Organise teams around needed communication channels

  • Inter team you want high connectivity.
  • Intra team depends on the reason the teams need to communicate.

Intra team communication is not a free for all

  • It can blur boundaries leading to monoliths.
  • Exponential cost in communication.
  • Cumulative errors.

Summary of solution

  • Teams and how they collaborate.
  • Loosely coupled architecture.

How do we achieve the solution?

Team Characteristics

  • Should have a clearly defined purpose.
  • Should be long lived.
  • Should be stable ( 1 change per year ).
  • Are the unit of delivery.
  • They have a cognitive load capacity.
  • Should not be too large:
    • Two pizza.
    • Fully connected graph n(n-1)/2

Team types

  • Stream aligned.
  • Platform.
  • Enabling.
  • Complicated Subsystem.

Stream aligned

  • Aligned to a single stream of work.
  • Steer their own work as needed.
  • Their goal is effective flow of delivery.
  • They need to encompass all product delivery skills:
    • Cradle to grave
    • They include ops and service desk

Platform

  • Enable stream aligned teams to deliver work.
  • Provide internal services to reduce cognitive load:
    • These should be made up of self service APIs.
    • They should be easy to consume.
  • The focus should be a small number of resilient services.
  • Services should abstract the hardware.

Enabling

  • Help stream aligned teams apply new technology and techniques.
  • Research and apply new technology and techniques.
  • The goal is to increase autonomy of stream aligned teams.

Complicated Subsystem

  • Their goal is to reduce the cognitive load of a stream aligned team.
  • Deals with subsystems that require specialist knowledge.
  • These should be highly specialised like mathematical models etc.

Conway's Law

Organisations which design systems are constrained to produce designs which are copies of the communication structure of these organisations.

Team Interactions

  • Collaboration
  • X-as-a-service
  • Facilitating

Collaboration

  • Teams work together on a shared goal.
  • Generally in a discovery phase.
  • High collaboration between teams.
  • Should enable rapid innovation and discovery.
  • Low admin as the teams work closely together.

X-as-a-service

  • One or more teams consume something another team has created.
  • Low collaboration between teams.
  • Enforces clear boundaries between teams.
  • Low detail/context swapping between teams minimizes cognitive load.

Facilitating

  • One team facilitates another teams adoption of a new product.
  • High collaboration between teams.
  • Help teams increase flow.
  • Can be helpful in identifying gaps and issues in services.

What is missing?

  • A culture of learning.
  • Good engineering practices.
  • Healthy funding and financial practices:
    • No CapEx/OpEx split.
    • No project deadlines or large batch budgeting.
    • Training budget allocated to team rather than individual.

My opinion on the ideas.

  • I like the teams and interaction definitions.
  • Would have liked to see a section on how to introduce it into a workplace.
  • I think the justification lack coherence and clarity.
  • I do not think it is enough on its own to work.