3 Reasons Why Your Platform Engineering Team Isn't Awesome (And How To Fix It)
Nowadays, a platform engineering team is known as a group of DevOps engineers, that have experience with the cloud and infrastructure provisioning. The platform team in most companies is in charge of developing, testing, and deploying the internal development platform. Also working to ensure that the systems run smoothly by ensuring compatibility with different components.
The platform is the technical foundation of the software application. So it's really important that the tools, services, and features on the platform work as expected.
And this starts with the people. Building a platform team for your company is usually one of the most challenging tasks you can do. You need to find the right people and align them towards your goals, and at the same time make sure they feel motivated and happy to work with you.
In this article, we'll go through the 3 main reasons why your platform engineering team isn't working, and how you can begin to fix it.
Reason 1: No autonomy
They don't have autonomy. Everyday work on other projects should not be part of the job description for the platform team. They need to be cut off client projects. They need to work as a separate team, a product team. For this, there should be clearly defined requirements, timelines and roadmaps, codebases, and documentations. They are a separate entity in the company and should be treated that way.
One small, but significant step toward feeling more autonomous can be giving the team a whole new name. This way everyone will know they are a separate team, not to be confused with the DevOps team that works on individual company projects. The next step would be defining a proper product management framework that will help deliver the goal of the internal platform.
Reason 2: No customer
Another very important reason is - you haven’t defined the customer. The platform team creates a platform that someone should use. This might be internal developers in your company or external customers. Either way, the platform engineering team needs to have a deep understanding of their end-user.
It's a bad idea to assume that because they are experienced and highly skilled people, they would automatically know what to develop in the platform. At the end of the day, they are not the user persona. They might have been in the past, but developer challenges change throughout time, and they need to understand the developer in his current state.
Product management skills can help with defining the customer personas, their likes, problems, and hurdles beforehand. What is the platform going to be used for? What level developers are going to use this? When answering all these questions, the foundation for the requirements and features will become more clear. Treat the platform as a product.
Reason 3: No communication
Communication is often the biggest challenge for many teams of devs and ops. The more diverse technologies and skills you have in your team, the harder it becomes to talk about the goals of a project, raise concerns or have hard conversations.
In order to balance this challenge, having organized planning sessions between the platform team and the application developers and DevOps engineers, can be very helpful. Platform engineering teams need to be involved early on in the development process because they need to foresee possible issues and dependencies. There also should be a good communication tactic in place to share platform progress and roadmaps with the customers (internal developers), as well as a feedback loop.
Remember, a successful internal platform should be protected, without it becoming a legacy system. It's important that the platform evolves, matures, but stays innovative, implements new technologies, enables multiple ways to solve a problem. This way it can serve different needs for multiple developers and projects.
What makes a good internal platform?
There are a couple of postulates a platform team should follow in order to be successful at providing a development platform that works:
- Standardization - applying best practices as a default way of working and providing it as self-service for developers. The team can setup guardrails, integrate security and observability to enable deployments where developers are confident in the apps they deliver.
- Reduce repetitive work - having an internal development platform can help DevOps engineers in reducing their repetitive tasks. Spinning up new environments, infrastructure configuration, choosing new tooling, setting up Kubernetes clusters, setting up a CI process for each new project is a cumbersome and repetitive task. It's also super error-prone.
- Centralized knowledge - having an internal platform makes it easier for onboarding new developers, but also encapsulates the knowledge inside of the platform, so if any member of the team decides to change jobs, the knowledge doesn't go out the door with him.
- APIs and documentation - the platform should provide utility APIs, monitoring metrics and alerting systems, integrations with other tools, and documentation to help developers onboard and use the platform.
The platform engineering team isn’t just about the tech. It acts as a liaison between the operations and development teams, giving both sides access to necessary information at exactly the right moment. As much as possible, they act as an extension of your IT organization; you can approach them with questions or make requests for help, but the ultimate goal is everyone working together toward common goals. If your DevOps platform provides well-designed tools (like built-in dashboards), all team members will be able to see how their actions influence their KPIs.
Conclusion
Platform teams build internal workflows and tooling to ensure that application developers are protected from the underlying infrastructure's evolving complexities and that they provide a smooth development and deployment experience for everyone involved.
Most companies have a great product implementation team, but very few have a good platform engineering team. It is the responsibility of the platform team to be an advocate for their engineers and ensure that they can build, test and deploy their services quickly and fluidly.
To summarise, the platform team is crucial to the growth and innovation of your company. So give it all it needs.
Yearning for a no-brainer solution? Check out our platform Microtica.