Last month, I saw this conversation about organizational prerequisites for platform engineering in the Slack community. It’s a great question, so I thought I’d share some of my thoughts.
Let’s get bakin’
Prerequisites for building an Internal Developer Platform
Platform engineering isn’t just about the technology: it’s also about the people, processes, and culture that enables a software engineering organization to move fast. 🚀 Here is my (nonexhaustive) list of non-technical things you’ll need to build a thriving platform engineering organization.
1️. Understand and communicate how the platform adds value to the business. Building a platform is fundamentally a business decision. If you don’t understand or can’t articulate how a platform adds value to your organization, you shouldn’t build one. Cristóbal García García and Chris Ford articulated this well: “Your calculations must take into account the capabilities of commercially available services because unless your platform offers features, specificity to your context or convenience that a commercial offering cannot, you may be better off leaving it to the market and avoiding the maintenance burden - after all your platform strategy depends upon reducing the amount of undifferentiated work, not increasing it!”
2️. Treat your platform like a product and your developers like your customers. A product approach — which involves conducting user research, soliciting regular user feedback, and marketing the platform internally — will help clarify what features and functions your platform team should prioritize building. Furthermore, product thinking will ensure your platform is actually adopted across the organization and improves the developer experience.
3️. Don’t forget about the basics. Your platform teams have to understand the basics of software infrastructure: networking, scaling, disaster recovery, etc. If your platform engineers don’t understand your setup’s underlying technology, they will not be able to build a useful product for your developers. A focus on ensuring reliability is also important.
4️. Build a strong platform team culture. OpenCredo CEO/CTO Nicki Watt did a fantastic talk on this at PlatformCon last year. She introduced four community-driven principles your platform team should follow to be successful:
- Make teams independent of and not dependent on you.
- Promote freedom over autonomy.
- Focus on soft skills.
- Respect and recognize community differences.
5️. Set realistic goals. You aren’t going to replicate Google’s platform in a few months (nor do you necessarily need to). Conduct user research to figure out which features your developers need most, then focus on executing those well. Keep in mind that you don’t need to build everything from scratch. Take advantage of pre-built or open source offerings where possible and tailor them to fit your needs.
Short on time? ⏳ We got you 🥐😋
🥐 Ramesh Nampelly, Senior Director of Cloud Infrastructure and Platform Engineering at Palo Alto, recently wrote about how Palo Alto approaches platform engineering.
🥐 The folks at Jit shared how they built a platform engineering organization with The New Stack:
The upside is, once you’ve put in the platform engineering work upfront, Melamed said, “You can really build a product that is scalable by design on microservices, and you can build and develop for the cloud, helping your developers move faster by removing all the headache of things that are really standard.”
🥐 If you or someone you know has been impacted by recent layoffs, consider checking out the platform engineering lifeboat to find your next opportunity.
🥐 And the memes are back 😉
And that’s a wrap on this week! As always, this newsletter is a community project, so if you have anything awesome to share from the cloud-native world, send it our way.
Stay crunchy 🥐