Cross-Team Collaboration
Cross-team collaboration is essential for organisations with multiple Stream Teams working on a single Product. Effective collaboration across these teams ensures that efforts are harmonised, dependencies are managed smoothly, and collective goals are achieved more efficiently.
Purpose
The purpose of cross-team collaboration is to bridge the gaps between different teams, ensuring that they work together effectively towards common objectives. Benefits include:
- Unified Vision: Aligns all teams towards common goals, enhancing the organisation's ability to achieve its objectives.
- Streamlined Processes: Minimises duplication of efforts and optimises resource use across teams.
- Enhanced Innovation: Fosters an environment where ideas can be shared and improved upon through diverse perspectives.
- Increased Agility: Improves the organisation’s responsiveness to changes by facilitating better communication and coordination.
Context
Industry Context
Product development is complex and requires the collaborative effort of multiple teams each responsible for different parts of the product. The challenge is that synchronous collaboration and dependencies between teams slow down delivery.
ZeroBlockers Context
Stream Teams are assigned completely autonomous value streams. However, it is not possible to be completely independent - the real world is messier than our models. There are shared data entities that cross the boundaries of value streams such as Users and Products. While the teams are autonomous, they still need to share data across team boundaries.
In addition, while every effort is made to ensure that teams are independent, at times it will be required to build features that span multiple teams.
ZeroBlockers Practices
Practice | Description | Benefits |
---|---|---|
Defined Interaction Modes | Establishing clear guidelines for how teams should interact with each other. |
|
Shared Communication Channels | Establishing shared communication channels for cross-team communication. |
|
Projects | When two or more teams are required to achieve a single objective temporarily merge the teams to achieve the objective. |
|
Rationale
By being conscious of the different interaction modes available teams can actively design their interactions to limit the overhead on both teams. Also, it is good to highlight that projects will still exist even after teams are set up as autonomous value streams because there will be times when a single objective requires the collaboration of multiple teams. It is very difficult for teams to lose their autonomy so awareness that projects will occur can help, but there should be every effort to keep projects to a minimum.
Anti-patterns
Overcollaboration: Excessive collaboration between teams reduces productivity and highlights a problem with team boundaries.
Frequent Projects: Projects should be infrequent as value streams and teams should be independent. If you find yourself doing too many projects you might need to reassess your team boundaries.
Communications channels treated as real-time: Real-time channels should be used for async communication. There should be no expectation for people to respond immediately to communication in shared channels.
Lack of real-time communication guidelines: Real-time channels can be described as "an all day meeting without an agenda". There is a lot of value in the ease of communication, but with that ease comes overcommunication. When used teams should have clear guidelines on how and when to use the channels.
Expectation of synchronous responses: Real-time channels should be used for async communication. People should turn off notifications and only check in at specific times of the day.