Team Topologies: Organizing Business and Technology Teams for Fast Flow
Rate it:
25%
Flag icon
In a virtual environment, it can be useful to use naming conventions in usernames to make it easy for people to identify who’s in a particular team, especially if that team is a central X-as-a-Service team, providing a platform or component (more on this in Chapter 5). Instead of simply “Jai Kale” as the display name within the chat tool and wiki, use something like “[Platform] Jai Kale” to identify that Jai Kale is in the platform team.
Adam Frisbee
I disagree with putting people into boxes and categorizing them as if they are robots.
25%
Flag icon
test-first development,
25%
Flag icon
Continuous delivery practices support hypothesis-driven development
25%
Flag icon
Crucially, because communication between individuals is de-emphasized in favor of communication between teams for day-to-day work, the organization supports a wide range of communication preferences, from those people who communicate best one to one to those who like large group conversations. Furthermore, the effect of previously destructive individuals is curtailed. This humanistic approach is a huge benefit of choosing teams first.
Adam Frisbee
This is a humanistic approach?
26%
Flag icon
Today, the prevailing way to set up or reorganize teams is ad hoc, focused on immediate needs rather than the ability to adapt in the long run.
26%
Flag icon
When organizations do not explicitly think about team structures and patterns of interaction, they encounter unexpected difficulties building and running software systems.
26%
Flag icon
The first anti-pattern is ad hoc team design.
26%
Flag icon
This includes teams that have grown too large and been broken up as the communication overhead starts taking a toll, teams created to take care of all COTS software or all middleware, or a DBA team created after a software crash in production due to poor database handling. Of course, all of these situations should trigger some action, but without considering the broader context of the interrelationships between teams, what seems like a natural solution might slow down delivery and eat away at the autonomy of teams.
26%
Flag icon
The other common anti-pattern is shufflin...
This highlight has been truncated due to consecutive passage length restrictions.
26%
Flag icon
an engineer placed on Team A may perform very differently than if placed on Team B.
26%
Flag icon
Organizations must design teams intentionally by asking these questions: Given our skills, constraints, cultural and engineering maturity, desired software architecture, and business goals, which team topology will help us deliver results faster and safer?
26%
Flag icon
How can we reduce or avoid handovers between teams in the main flow of change? Where should the boundaries be in the software system in order to preserve system viability and encou...
This highlight has been truncated due to consecutive passage length restrictions.
27%
Flag icon
Older organizational
27%
Flag icon
models—with functional silos between different departments, heavy use of outsourcing, and repeated hand-offs between teams—do not provide the safety at speed or the organizational feedback mechanisms necessary for the ongoing evolution of business services needed to respond to customer and market conditions on a daily basis. As Naomi Stanford points out, “an organization has a better chance of success if it is reflectively designed.”
27%
Flag icon
So, for example, all the testers across six squads in a tribe could be part of a testers chapter.
27%
Flag icon
Line management also happens via chapters, but the line manager (the chapter lead) is also part of the day-to-day work of a squad, not an aloof manager.
27%
Flag icon
“guild,” akin to a community of practice, that can include people from across multiple tribes, chapters, and squads. “Chapters and guilds . . . [are] the glue that keeps the company together, [providing] ec...
This highlight has been truncated due to consecutive passage length restrictions.
27%
Flag icon
It is essential that organizations take into account more than a static placement of people when looking at the design of team interactions.
27%
Flag icon
The assumption that the software-development process has little or nothing to learn from how the software runs in the live environment is fundamentally flawed.
27%
Flag icon
“we must . . . ensure delivery teams are cross-functional, with all the skills necessary to design,
27%
Flag icon
develop, test, deploy, and operate the system on the same team.”
27%
Flag icon
This superior “sensing” ability comes from treating frontline staff and teams as highly valuable sources of signals about the market and environment in which the organization is operating.
27%
Flag icon
sensing
28%
Flag icon
Even though many people see DevOps as fundamentally addressing technological aspects of automation and tooling, only organizations that also address fundamental misalignments between teams are able to achieve the full potential benefits from adopting DevOps.
28%
Flag icon
The implicit idea was that teams should evolve and morph over time.
28%
Flag icon
There is no one-size-fits-all approach to structuring teams for DevOps success. The suitability and effectiveness of any given topology depends on the organization’s context. (2) There are several topologies known to be detrimental (anti-patterns) to DevOps success, as they overlook or go against core tenets of DevOps. In short, there is no “right” topology, but several “bad” topologies for any one organization.
28%
Flag icon
it also depends on (perhaps most importantly) the surrounding environment, teams, and interactions.
28%
Flag icon
We consider a feature team to be a cross-functional, cross-component team that can take a customer facing feature from idea all the way to production, making them available to customers and, ideally, monitoring its usage and performance.
28%
Flag icon
But this can only happen when the feature team is self-sufficient, meaning they are able to deliver features into production without waiting for other teams.
29%
Flag icon
Therefore, specific roles were created, such as system architects, system owners, or integration leads. Crucially, people in these roles work across the entire project/organization sort of like “communication conduits,” with direct and frequent interaction with feature teams.
29%
Flag icon
The key for the team to remain autonomous is for external dependencies to be non-blocking, meaning that new features don’t sit idle, waiting for something to happen beyond the control of the team.
29%
Flag icon
Product teams need autonomy to provision their own environments and resources in the cloud, creating new images and templates where necessary. The cloud team might still own the provisioning process—ensuring that the necessary controls, policies, and auditing are in place (especially in highly regulated industries)—but their focus should be in providing high-quality self-services that match both the needs of product teams and the need for adequate risk and compliance management.
29%
Flag icon
In other words, there needs to be a split between the responsibility of designing the cloud
29%
Flag icon
infrastructure process (by the cloud team) and the actual provisioning and updates to application res...
This highlight has been truncated due to consecutive passage length restrictions.
30%
Flag icon
etc. Figure 4.3 illustrates this.
32%
Flag icon
A large or mid-sized organization is likely to have one or more teams of each fundamental topology; multiple stream-aligned teams are the starting point (as we will see in this chapter), but an organization may also have several platform teams, a few enabling teams for different purposes
34%
Flag icon
It’s critical not to assume each capability maps to an individual role in the team; that would mean teams would have to include at least nine members to match the list above. Instead, we’re talking about being able, as a team, to understand and act upon the above capabilities.
36%
Flag icon
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.
36%
Flag icon
The goal of this team is to reduce the cognitive load of stream-aligned teams working on systems that include or use the complicated subsystem.
37%
Flag icon
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.12
42%
Flag icon
For example, database-administrator (DBA) teams can often be converted to enabling teams if they stop doing work at the software-application level and focus on spreading awareness of database performance, monitoring, etc. to stream-aligned teams. Some organizations have had success converting a DBA team into part of the platform, providing a specialized service around database performance, configuration, availability, and so forth, but the DBA team is no longer responsible for schema changes or application-level database concerns.
« Prev 1 2 Next »