My company has a large Internal Developer Platform (IDP) team developing all the tools that we need to build software. But having different tools is like owning a Tesla with all the bells and whistles, with a driver who is only used to stick shift—and tries to fill the car at a gas station after 300 miles.!!
It is very important for teams to realize that having the latest and greatest tools and IDP is not going to guarantee that your microservice will perform durably. We need developers to be trained to use the platforms well, and this comes with experience and having a great platform user team.
In our company, each application development team has a platform team that is responsible for running and modernizing the platform. This team is not responsible for building the IDP but rather using it, enhancing it, and conveying the pain points to the central platform team.
I work in one such platform user team where we use Terraform, Kubernetes, and Spinnaker tools from the central platform team. We join forces with platform users from other application development groups and together we share ideas about how to use and extend the platform. Sometimes we bash it when it fails—but mostly we work side by side with the central platform team.
The three main points that I want users to take away from my talk:
- Don't just provide the platform and tools, but provide developers with the training and hours on the job to learn and master the craft of building and running the platform
- C-level executives should be made aware of the time and effort it takes to keep a platform running smoothly. Having a dedicated platform and platform user team will help the platform engineers to focus on the platform
- Any developer can be trained on platform building and platform use as long as they are interested in learning. Allow rotation of application development team members to join the platform team and vice versa
This talk is from my experience of leading both a platform team and application development team.