Team Topologies: Organizing Business and Technology Teams for Fast Flow
Rate it:
33%
Flag icon
The four fundamental team topologies—stream aligned, enabling, complicated subsystem, and platform—should act as “magnets” for all team types. All teams should move toward one of these four magnetic poles; that is, we should prefer these types, and aim to adopt the purpose, role, responsibility, and interaction behavior of these fundamental types for every team in our organization.
33%
Flag icon
Stream-Aligned Teams A “stream” is the continuous flow of work aligned to a business domain or organizational capability. Continuous flow requires clarity of purpose and responsibility so that multiple teams can coexist, each with their own flow of work. A stream-aligned team is a team aligned to a single, valuable stream of work; this might be a single product or service, a single set of features, a single user journey, or a single user persona. Further, the team is empowered to build and deliver customer or user value as quickly, safely, and independently as possible, without requiring ...more
33%
Flag icon
the mission of an enabling team, for instance, is to help stream-aligned teams acquire missing capabilities, taking on the effort of research and trials, and setting up successful practices.
33%
Flag icon
The mission of a platform team is to reduce the cognitive load of stream-aligned teams by off-loading lower level detailed knowledge (e.g., provisioning, monitoring, or deployment), providing easy-to-consume services around them.
33%
Flag icon
Because a stream-aligned team works on the full spectrum of delivery, they are, by necessity, closer to the customer and able to quickly incorporate feedback from customers while monitoring their software in production. Such a team can react t...
This highlight has been truncated due to consecutive passage length restrictions.
33%
Flag icon
Different streams can coexist in an organization: specific customer streams, business-area streams, geography streams, product streams, user-persona streams, or even compliance streams (in highly regulated industries).
34%
Flag icon
A stream can even take the form of a micro-enterprise within a large firm, with an independent focus and purpose (e.g., innovating on products that do not exist yet). Whichever kind of stream of changes a stream-aligned team is aligned to, that team is funded in a long-term, sustainable manner as part of a portfolio or program of work, not as a fleeting project.
34%
Flag icon
Aligning a team’s purpose with a stream helps to reinforce a focus on flow at the organization level—a stream should flow unimpeded. With the advent of IoT, embedded devices everywhere, and holistic approaches to service management, the end-to-end user experience looks different. Customers interact not just with a discrete piece of software but with a range of products and devices that all run different kinds of software, from mobile to embedded to voice-led controls. Customers also interact with brands via multiple channels (in person, social media, website, phone), expecting consistent ...more
35%
Flag icon
Not only is the term “stream aligned” more suited to a wider range of situations than either “product” of “feature,” but “stream aligned” also incorporates and helps to emphasize a sense of flow (because a stream flows). Finally, not all software situations need products or features (especially those focused on providing public services), but all software situations benefit from alignment to flow.
35%
Flag icon
What kind of behaviors and outcomes do we expect to see in an effective stream-aligned team?
35%
Flag icon
A stream-aligned team aims to produce a steady flow of feature delivery.
35%
Flag icon
A stream-aligned team is quick to course correct based on feedback fr...
This highlight has been truncated due to consecutive passage length restrictions.
35%
Flag icon
A stream-aligned team uses an experimental approach to product evolution, expecting to c...
This highlight has been truncated due to consecutive passage length restrictions.
35%
Flag icon
A stream-aligned team has minimal (ideally zero) hand-offs of ...
This highlight has been truncated due to consecutive passage length restrictions.
35%
Flag icon
A stream-aligned team is evaluated on the sustainable flow of change it produces (together with some supporting te...
This highlight has been truncated due to consecutive passage length restrictions.
35%
Flag icon
A stream-aligned team must have time and space to address code quality changes (sometimes called “tech debt”) to ensure that changing...
This highlight has been truncated due to consecutive passage length restrictions.
35%
Flag icon
A stream-aligned team proactively and regularly reaches out to the supporting fundamental-topologies teams (complicated s...
This highlight has been truncated due to consecutive passage length restrictions.
35%
Flag icon
Members of a stream-aligned team feel they have achieved or are in the path to achieving “autonomy, mastery, and purpose,” the three key components of engaged ...
This highlight has been truncated due to consecutive passage length restrictions.
35%
Flag icon
In the book Accelerate, Forsgren, Humble, and Kim tell us that high-performing teams are continuously improving their capabilities in order to stay ahead.
35%
Flag icon
But how can a stream-aligned team with end-to-end ownership find the space for researching, reading about, learning, and practicing new skills? Stream-aligned teams are also under constant pressure to deliver and respond to change quickly. An enabling team is composed of specialists in a given technical (or product) domain, and they help bridge this capability gap. Such teams cross-cut to the stream-aligned teams and have the required bandwidth to research, try out options, and make informed suggestions on adequate tooling, practices, frameworks, and any of the ecosystem choices around the ...more
35%
Flag icon
Enabling teams have a strongly collaborative nature; they thrive to understand the problems and shortcomings of stream-aligned teams in order to provide effective guidance. Jutta Eckstein calls them “Technical Consulting Teams,”8 a definition that maps well to what we’d expect a consulting team to provide (guidance, not execution), whether internal or external to the organization.
35%
Flag icon
Enabling teams actively avoid becoming “ivory towers” of knowledge, dictating technical choices for other teams to follow, while helping teams to understand and comply with organization-wide technology constraints. This is akin to the idea of “servant leadership” but applied to team interactions rather than individuals. The end goal of an enabling team is to increase the autonomy of stream-aligned teams by growing their capabilities with a focus on their problems first, not the solutions per se. If an enabling team does its job well, the team that it is helping should no longer need the help ...more
Goke Pelemo
🙌🏾
35%
Flag icon
Knowledge transfer between an enabling and a stream-aligned team can take shape on a temporary basis (when a stream-aligned team adopts a new technology, like containerization, for instance) or on a long-term basis (for continuously improving aspects, such as faster builds or faster test execution). Pairing can be quite effective for some types of practices, such as defining Infrastructure-as-Code.
Goke Pelemo
🙌🏾
35%
Flag icon
the mission of enabling teams is to help stream-aligned teams acquire missing capabilities, usually around a specific technical or product management area.
35%
Flag icon
What kind of behaviors and outcomes do we expect to see in an effective enabling team?
35%
Flag icon
An enabling team proactively seeks to understand the needs of stream-aligned teams, establishing regular checkpoints and jointly agreeing when more collaboration is needed.
36%
Flag icon
An enabling team stays ahead of the curve in keeping abreast of new approaches, tooling, and practices in their area of expertise, well before an actual need is expected from stream-aligned teams. In the past, this has been the mission of architecture or innovation teams, but the focus on enabling other teams creates a better dynamic.
36%
Flag icon
An enabling team acts as a messenger of both good news (e.g., “There’s a new UI automation framework that can reduce our custom test code by 50%.”) and bad news (e.g., “Javascript framework X, which we’re using extensively, is no longer actively main...
This highlight has been truncated due to consecutive passage length restrictions.
36%
Flag icon
Occasionally, the enabling team might act as a proxy for external (or internal) services that are currently too difficult for s...
This highlight has been truncated due to consecutive passage length restrictions.
36%
Flag icon
An enabling team promotes learning not only inside the enabling team but across stream-aligned teams, acting as a curator that facilitates appropriate knowledge sharing inside the organization (supporting what T...
This highlight has been truncated due to consecutive passage length restrictions.
36%
Flag icon
The primary purpose of an enabling team is to help stream-aligned teams deliver working software in a sustainable, responsible way. Enabling teams do not exist to fix problems that arise from poor practices, poor prioritization choices, or poor code quality within stream-aligned teams. Stream-aligned teams should expect to work with enabling teams only for short periods of time (weeks or months) in order to increase their capabilities around a new technology, concept, or approach. After the new skills and understanding have been embedded in the stream-aligned team, the enabling team will stop ...more
36%
Flag icon
In her book Building Successful Communities of Practice, Emily Webber says “Communities of practice create the right environment for social learning, experiential learning, and a rounded curriculum, leading to accelerated learning for members.”
36%
Flag icon
Complicated-Subsystem Teams A complicated-subsystem team is responsible for building and maintaining a part of the system that depends heavily on specialist knowledge, to the extent that most team members must be specialists in that area of knowledge in order to understand and make changes to the subsystem.
37%
Flag icon
What kind of behaviors and outcomes do we expect to see in an effective complicated-subsystem team?
37%
Flag icon
A complicated-subsystem team is mindful of the current stage of development of the subsystem and acts accordingly: high collaboration with stream-aligned teams during early exploration and development phases; reduced interaction and focus on the subsystem interface and feature evolution and usage during later stages, when the subsystem has stabilized.
37%
Flag icon
With a complicated-subsystem team, delivery speed and quality for the subsystem is clearly higher than if/when the subsystem was being developed by a stream-...
This highlight has been truncated due to consecutive passage length restrictions.
37%
Flag icon
The complicated-subsystem team correctly prioritizes and delivers upcoming work respecting the needs of the stream-aligned teams...
This highlight has been truncated due to consecutive passage length restrictions.
37%
Flag icon
Platform Teams The purpose of a platform team is to enable stream-aligned teams to deliver work with substantial autonomy. The stream-aligned team maintains full ownership of building, running, and fixing their application in production. The platform team provides internal services to reduce the cognitive load that would be required from stream-aligned teams to develop these underlying services.
37%
Flag icon
A digital platform is a foundation of self-service APIs, tools, services, knowledge and support which are arranged as a compelling internal product. Autonomous delivery teams can make use of the platform to deliver product features at a higher pace, with reduced coordination.
37%
Flag icon
The platform team’s knowledge is best made available via self-service capabilities via a web portal and/or programmable API (as opposed to lengthy instruction manuals) that the stream-aligned teams can easily consume. “Ease of use” is fundamental for platform adoption and reflects the fact that platform teams must treat the services they offer as products that are reliable, usable, and fit for purpose, regardless of if they are consumed by internal or external customers.
37%
Flag icon
“A platform team’s value can be measured by the value of the services they provide to product teams.”
37%
Flag icon
Common platforms we find abstract away infrastructure, networking, and other cross-cutting capabilities at a lower level of the stack. This is a great first step but, as explained later in this chapter, a platform can refer to a higher level of abstraction.
38%
Flag icon
What kind of behaviors and outcomes do we expect to see in an effective platform team?
38%
Flag icon
A platform team uses strong collaboration with stream-aligned teams to understand their needs.
38%
Flag icon
A platform team relies on fast prototyping techniques and involves stream-aligned team members for fast feedback ...
This highlight has been truncated due to consecutive passage length restrictions.
38%
Flag icon
A platform team has a strong focus on usability and reliability for their services (treating the platform as a product), and regularly assesses if the ser...
This highlight has been truncated due to consecutive passage length restrictions.
38%
Flag icon
A platform team leads by example: using the services they provide internally (when applicable), partnering with stream-aligned teams and enabling teams, and consuming lower level platforms...
This highlight has been truncated due to consecutive passage length restrictions.
38%
Flag icon
A platform team understands that adoption of internal new services, like new technologies, is not immediate, but instea...
This highlight has been truncated due to consecutive passage length restrictions.
38%
Flag icon
During this time of rapid growth, we needed to solve the problem of configuration management, and to make our services more reliable and to help provide the tools needed to maintain a disaster recovery (DR) environment in sync with production systems. Drawing from the lessons of how we started our DevOps journey, we created a platform evolution team drawn from a mixture of software and infrastructure backgrounds. The platform evolution team’s first priority was implementing a configuration management system using the well-known tool Chef—working to “Chef all the things,” working through the ...more
38%
Flag icon
In large organizations, a platform will need more than one team to build and run it (and in some cases, separate streams may each have their own platform). In these situations, a platform is composed of groups of other fundamental team types: stream aligned, enabling, complicated subsystem, and platform. Yes: the platform is itself built on a platform (see more on this later in this chapter). However, the streams to which platform teams align are different from the streams for teams building the main (revenue-generating or customer-facing) products and services.