We focused mostly on the collaboration between stream-aligned teams and platform teams as defined in Team Topologies: https://teamtopologies.com/key-concepts
- Stream-aligned team: aligned to a flow of work from (usually) a segment of the business domain
- Platform team: a grouping of other team types that provide a compelling internal product to accelerate delivery by Stream-aligned teams
A failing platform team might not look like a failing team. They're pushing out features, quality is good etc, but all the other teams think they're holding them back.
Most of the problems can be grouped into following categories:
- Teams are forced to use the platform (or some of the features)
- Being forced to use anything results in poor solutions and high friction between the teams.
- Platform team becomes bottleneck
- Teams rebel or become subversive
- It usually results in shadow platform being created by those teams
- Software/technology starts to stagnate
- Some platform teams have reluctance for change or just overwhelmed causing technological progress to halt
- Platform teams have a reputation of being Elite
- Elite vs others creates a very unhealthy culture for the company
- Platform teams struggle to prioritize their work to keep other teams happy
- Adoption is low (either learning curve is too big or feature is not useful)
- Create platform (features), which are easy to use
- Platform team needs to invest heavily into selling there vision and advocating for usage
- They need to provide freedom by providing paved road and not blocking other ideas
- Technology governance need to be crowd-sourced
- The platform needs to be open for outside contributes (e.g PRs)
- Offsites - learning, discussions and team building
- Exchanging engineers from/to stream-aligned teams
- Platform needs a goal and vision, which should take a priority over day-to-day requests from other teams
- They need to sell the vision, so that everybody is understanding where the platform is going
- Platform solutions should provide self-service experience
- When special skillsets need to be centralized or efficiency
- e.g Everybody does not need to learn how to set up a k8s cluster
- stream-aligned teams ownership is missing/lacking towards improving the platform
- Guilds don't work anymore
Platform team goals should not be to create a feature. They should align the team behind the goals of helping others:
- Reduce cognitive load for stream-align teams
- Platform (features) is/are adopted by most teams
- they need to have a product mindset (stream-aligned teams are the customers)
- stream-aligned teams become more efficient
- drive the technology forward (spend enough time on R&D)