Is Platform Engineering Really Nirvana?
Photo by Davide Cantelli on Unsplash

Is Platform Engineering Really Nirvana?

Is platform engineering nirvana? While it is true that I advocate platform teams/engineering, the short answer to the question is no. In a world with unlimited employees with the right competencies at the cost of zero, empowered teams that manage end-to-end are the way to go.??

However, while empowered teams are the ideal scenario for software development, the reality is that to cover all needs and skills, the teams get fairly large and costly. Additionally, people naturally gravitate towards similar competencies and common interests, making it difficult to get a sense of belonging and peers to spar with. As a company you also don't want to have a single-person army in charge of everything within a domain, nor do you want to start over if that person leaves.?

Fully empowered team with many different roles presented
Example of a fully empowered team - and no, not all competencies are needed, but some roles are required more than once!

In larger companies there is often a focus on the power of scale; you optimize thus reducing costs. Fully empowered teams scale linearly and are therefore not an instrument when considering the scalability of a company.??

Compliance and governance are essential for many companies, but they can become a documentation nightmare if all teams are empowered without standardization and streamlining.?

As I see it we have three prominent options:?

  • Temporary teams are formed for each delivery and rotated based on needs
  • Communities of practice often referred to as virtual teams?
  • Platform teams?

Temporary teams?

These teams are formed to do a specific task, and they come with significant overhead in understanding the business logic and domain. Every time a new feature is developed after a rotation, the team needs to start from scratch.??

This approach is neither scalable nor efficient, however, the team remains empowered, which may remove some overhead if the alternative is inefficient tickets and understaffed teams.?

Communities of practice (CoP)?

A community of practice?is a group of people who learns from each other, define ways of working, collaborate and set guidelines. With regard to software development, a community is often referred to as a virtual team that is formed around a specific topic or technology.

A benefit is that the community enable knowledge sharing, collaboration, and innovation across the organization. Members can share best practices, discuss common challenges, and help each other solve problems.?

However, ensuring the success of a community of practice can be time-consuming and may also require a significant amount of coordination. Another challenge is that members of a community also have their day-to-day work, which always gets prioritized, meaning a community has a risk of not representing the company or having a slow pace.

Platform teams?

With Platform teams, you take out some of the competencies of fully empowered teams and make those capabilities scalable. These teams provide the foundation for empowered teams to enable and accelerate software development.??

This approach is not about adding more people to every team every time there is a new need. Instead, platform teams serve as a bridge between two extremes; fully empowered teams on one side and a large organization with domain teams on the other. If the platform teams do not perform, they become a bottleneck, but if done right they have the potential to enable the power of scale.?

Final thoughts?

The solution is not a one-fits-all. If you are a small company you might benefit from using fully empowered teams alone without the need for scalable platforms.?

Are you on the other hand a large enterprise I would personally suggest having platform teams that are responsible for managing the domain-specific knowledge and business logic. These teams can provide the necessary resources, tools, and guidelines to software teams, enabling them to work more efficiently and effectively. Platform teams can also work closely with empowered teams to ensure that they have access to the most up-to-date information and tools.?

Communities of Practice can be a valuable addition to an organization's software development ecosystem if used in conjunction with platform teams and empowered teams. They provide a way to share knowledge and expertise across teams and domains, while also promoting collaboration and innovation.?

So, platform engineering is not nirvana, but it is a pragmatic approach that addresses some of the challenges posed by empowered teams; whether permanent or not. Additionally, I would in most cases suggest platforms teams before considering communities of practice, simply because I advocate doing over talking.

António Oliveira

Infrastructure Solution Architect Specialist

2 年

Great article Peter M. E. Frandsen

回复

要查看或添加评论,请登录

Peter M. E. Frandsen的更多文章

社区洞察