Platform Tips #14: Build vs. Buy Your Internal Developer Platform?
What about buying your Internal Developer Platform and building on top of it.
Hey Folks 👋,
I'm Romaric Philogene, CEO and co-founder of Qovery, and this is my 14th post on my Substack. In my previous post, I shared my thoughts on what the future of CI/CD platforms could be in the context of platform engineering.
Today, I want to explore the question of whether to build or buy software solutions - a question as old as our industry itself. However, when it comes to Internal Developer Platforms (IDPs), I propose a shift in perspective that mirrors a well-accepted practice among software developers: the philosophy of "Buy and Build."
The Foundation of Software Development: Libraries and Tools
Think about how software developers work; they rarely start from scratch. Instead, they leverage existing libraries and tools, building upon them to create their own applications. This approach allows developers to focus on innovation and customization, rather than reinventing the wheel. It's about taking what exists, recognizing its value, and then extending it to meet specific needs. This principle of reusability and extension is foundational to efficient software development.
Platform Engineering: A Parallel Approach
For Platform Engineers, the situation is remarkably similar. The decision to adopt an Internal Developer Platform should not be a binary choice between building a custom solution from the ground up or buying a pre-made platform. Instead, it's about finding a composable IDP that serves as a foundation — a platform that not only meets core requirements but also offers the flexibility to be customized and extended.
The "Buy and Build" Model
The "Buy and Build" model advocates for purchasing a solid, reliable IDP that covers the basic needs of your development teams and then building upon it to tailor the platform to your organization's specific requirements.
This approach allows Platform Engineers to:
Accelerate Time to Value: By starting with a robust platform, you can quickly address the immediate needs of your developers, allowing them to deploy and manage applications more efficiently.
Focus on Differentiation: Building on top of a purchased IDP lets you focus on creating features and workflows that offer the most value to your team, rather than spending time on basic infrastructure.
Leverage Expertise: Buying an IDP means you're also investing in the knowledge and expertise of those who built it. This can be invaluable in avoiding common pitfalls and ensuring best practices are followed.
The approach of building on top of existing solutions is not new; it's how the entire software industry operates. From using frameworks in application development to leveraging cloud services for infrastructure, the most efficient and innovative solutions often come from standing on the shoulders of giants. The same logic applies to Internal Developer Platforms.
Choosing the Right Internal Developer Platform
So, the question shifts from "Should I build or buy an Internal Developer Platform?" to "What Internal Developer Platform should I buy to build on top of it?" This mindset encourages Platform Engineers to evaluate IDPs based on their extensibility, compatibility with existing tools, and the ability to customize the platform to fit the unique workflows and requirements of their organization.
Here is a list of elements you should check to pick the right IDP:
Ease of Installation: Assess whether the IDP can be easily set up within your existing infrastructure. An IDP that requires complex configuration might not be the best choice if quick deployment is a priority.
Integration with Technical Environment: Determine if the IDP integrates well with your current CI/CD pipelines, infrastructure tools, and other software development tools. Compatibility is key to ensuring a smooth workflow.
Open Source Availability: Consider whether the IDP is open-source or, at the very least, offers its web interface and other interfaces in an open-source format. This can be critical for extensibility and customization.
Open API and Language Clients: Check if the IDP has an open API and offers client libraries for different programming languages. This will allow your development team to interact with the platform programmatically, enabling automation and integration with other systems.
Comprehensive Documentation: Look for an IDP with exhaustive and clear documentation. Good documentation supports faster onboarding and helps resolve issues without excessive support dependency.
Active Community: An active community, such as a forum, can be invaluable for getting insights, sharing knowledge, and finding solutions to common problems. It's a good indicator of the platform's reliability and the vibrancy of its user base.
Quality Support: Ensure the IDP provider offers quality support with engineers who can respond to your technical questions promptly. This is crucial for resolving complex issues and minimizing back-and-forth email hell.
Developer Experience Focus: The IDP should prioritize Developer Experience by providing a platform that is ready to use and requires minimal setup from the developers. This allows developers to focus on coding rather than infrastructure management.
Success Stories and Use Cases: Look for success stories or case studies involving Platform Engineering teams from your industry or with similar use cases. This can provide reassurance that the IDP can meet your specific needs and has been proven in similar scenarios.
What are your Thoughts?
The future of platform engineering is not about choosing between building or buying. It's about recognizing the value in both and understanding how, when combined, they can lead to a more efficient, effective, and tailored developer experience. Let's redefine the narrative and embrace the composite journey of buying to build better.
So, are you now considering buying and building on top of your Internal Developer Platform? What are your thoughts?
Let's revolutionize Platform Engineering by putting developers first. Subscribe now to join me on this exciting journey!