Increasing the Pace of Delivery

Clement Hussenot-Desenonges
6 min readJan 10, 2023

--

A platform is more than just a set of tools or infrastructure…

In today’s fast-paced business environment, companies are under pressure to deliver new products and services to market quickly and efficiently. One way to achieve this is through the use of platform engineering. Platform engineering is the practice of building and maintaining platforms that can be used by other teams to build and deploy their own products and services.

The ULTIMATE goal should be to make it easier, faster, and safer to deliver new product features and product capabilities to customers.

Are you wondering how to create a developer-friendly platform for engineering teams? Platform engineering is all about fostering empathy, providing choice, and reducing organizational silos!

Photo by Mika Baumeister on Unsplash

Platforms as a Product

A platform is more than just a set of tools or infrastructure; it is a product in and of itself. Just like any other product, it must be designed, developed, and maintained to meet the needs of its users. The key difference is that, instead of being used by end customers, a platform is used by internal teams to build and deliver their own products and services.

Platform Definition

A platform can be defined as a set of reusable components, tools, and services that can be used to build and deliver products and services. This can include everything from infrastructure, to frameworks or development tools.

A platform should be designed to be flexible, extensible, and easily usable, so that teams can quickly build and deploy new products.

Platform Engineering is a practice that helps to create ‘developer-friendly’ and ‘application-friendly’ platforms for engineering teams. It’s longer just about money — developer/engineering happiness 🤗 is now a priority for many organizations.

Which stategy should I adopt?

Creating successful platform engineering strategies means giving engineers limited choices and allowing them to focus on what they are good at. It also means acknowledging that failure is inevitable and finding ways to minimize the impact. We should also be aware of the complexities of monitoring and measuring our processes. We can use SRE principles to improve our understanding of our systems.

Ultimately, successful platform engineering requires us to form strong relationships with our engineering teams and understand the type of environment they need to do their best work.

It’s important to remember that DevOps, cloud computing, and SRE principles are just tools to support the culture and process of platform creation and maintenance.

Internal Platform Teams

To effectively build and maintain a platform, an internal platform team is needed. This team is responsible for the design, development, and maintenance of the platform, as well as for providing support and guidance to other teams that use the platform. The teamS should have a mix of skills, including software engineering, system administration, and product management. The required skills are very diverse. Behind your platform can be hidden many different expertise.

Tiers of Capability

Like a layer cake, Platforms can be divided into three tiers of capability:

  • Foundational
  • Operational
  • Strategic

‘Foundational’ platforms provide the underlying infrastructure and tools that are needed to run a business. ‘Operational’ platforms provide the tools and services needed to run and manage products and services. ‘Strategic’ platforms provide the tools and services needed to innovate and create new products and services.

Self-Service Platforms

One important aspect of a platform is that it should be self-service. This means that teams should be able to easily provision and use the platform, without needing to request assistance from the platform team. A self-service platform also allows teams to move quickly and independently, without having to wait for approvals or assistance.

Making Platforms Compelling

To make a platform compelling, it must meet the needs of its users (User research). This means that it must be designed to be easy to use, flexible, and extensible. It should also provide a high level of reliability and performance, so that teams can build and deliver products and services quickly and efficiently. Additionally, a platform should provide a high degree of automation and integration, so that teams can focus on building and delivering their products and services, rather than on infrastructure and tooling.

Problems With Platform Teams

Despite the benefits of platform engineering, there can be challenges associated with building and maintaining platforms!

One common problem is that teams may be reluctant to use the platform, preferring instead to build their own tools and infrastructure. This can be due to more than 10 years of DevOps practices within organizations.
This can lead to silos of technology and duplication of effort.

Additionally, if a platform is not well-designed or maintained, it can become a bottleneck for teams, slowing down the pace of delivery. This is what you must absolutely avoid, if you want people to adopt a common platform.

…and still a lot of problems…

Here some additional problems that platform teams may face:

  • Lack of buy-in from product teams: As I already explain, if product teams do not understand the value of the platform or do not feel that the platform meets their needs, they may be resistant to using it. This can lead to a lack of adoption and can make it difficult for the platform team to justify their work.
  • Difficulty in balancing standardization and innovation: Platform teams may struggle to find the right balance between standardizing the platform to make it easy for other teams to use, and allowing for innovation and customization.
  • Limited resources: Platform teams may have limited resources and may struggle to keep up with the demands placed on them by other teams. This can make it difficult to deliver new features and capabilities in a timely manner.
  • Difficulty in measuring and demonstrating value: Platform teams may struggle to demonstrate the value that the platform is providing to the organization. This can make it difficult to justify the team’s work and to secure additional resources.
  • Lack of clear ownership and governance: Without clear ownership and governance of the platform, different teams may make conflicting or inconsistent changes to the platform, which can lead to confusion and a lack of stability.
  • Difficulty in scaling and maintaining platform: Platform engineers may have difficulty in scaling and maintaining the platform, making it difficult to accommodate new users, new features and new services.
  • Difficulty in integrating with other systems and technologies: Platform teams may struggle to integrate the platform with other systems and technologies, such as legacy systems and emerging technologies. This can make it difficult for the platform to meet the needs of all users and may lead to a lack of adoption.
  • Limited ability to understand how the platform is being used: Platform teams may struggle to understand how the platform is being used, which can make it difficult to identify and address issues, and to improve the platform.
  • Difficulty in finding and retaining talent: The field of platform engineering is relatively new, and it can be difficult for organizations to find and retain experienced platform engineers with the necessary skills and knowledge.

Conclusion

In conclusion, platform engineering is a key strategy for organizations looking to increase the pace of delivery and drive innovation. By building and maintaining platforms that meet the needs of their internal teams, organizations can create a strong foundation for building and delivering new products and services quickly and efficiently. However, as with any new approach, it is important to be aware of the potential challenges and to have a plan in place to address them. This includes ensuring that the platform is easy to use, flexible and extensible, and that it provides a high degree of automation and integration. Additionally, it is important to have a dedicated and skilled internal platform teams to oversee the design, development, and maintenance of the platform, and to provide support and guidance to other teams. By proactively addressing these challenges, organizations can ensure that their platform engineering efforts are successful and lead to a significant increase in the pace of delivery.

I was Site Reliability Engineer and Platform Engineering Manager at ManoMano and recalls my experience in managing a team of 10 engineers and ensuring the stability and performance of the platform in Medium. This team was responsible for finding ways to observe the behavior of the platform, track operating costs, performance, service level objectives, and responding to incidents. Moreover, we animated a culture of resilience and continuous improvement by organizing Dojos, times of learning, and GameDays to simulate real-world failures and disasters.

If you want to learn more about successfully managing a platform engineering team, check out this story!

If you found this article helpful or interesting, please consider sharing it with your friends or colleagues, or contacting the author to learn more. I would love to hear from you! — Clement Hussenot

--

--

Clement Hussenot-Desenonges

Over 15 years experience designing resilient & scalable infras, I worked for several startups... and hope you'll enjoy my ideas and point of view on Tech.