Building Better Internal Development Platforms

Isuru SIriwardana
4 min readSep 14, 2024

--

Internal development platforms have gained traction and become increasingly crucial for large organizations. These platforms aim to streamline development processes, improve efficiency, and maintain consistency across various groups, teams, and projects. However, many internal platforms fall short for their potential, often becoming bottlenecks rather than enablers. Recently I have been closely paying attention to address this and drew a couple of lessons from successful SaaS platforms like Stripe and Shopify, which have created thriving developer ecosystems around their core offerings.

To simply put, this essay is mainly focused on making “platform” in “internal development platform”, a “Platform”.

Many SaaS platforms have succeeded by adopting a platform-centric approach. Their strategies revolve around creating a robust core infrastructure that enables third-party developers and partners to build upon and extend their services. This approach has several key components:

  1. Open APIs: Providing well documented, versioned and stable APIs that allow external developers to integrate with the platform.
  2. Developer Tools: Offering SDKs, libraries, and other tools that make it easier for developers to build on top of the platform to extend core services to other channels.
  3. Marketplace: Creating a space where third-party applications and services can be discovered and utilised by users.
  4. Developer community: Grooming an active community of developers through forums, events, and support channels.
  5. Incentive structures: Implementing systems that rewards developers for creating valuable additions to the platform.
Pillars of SaaS API Platform

We could draw a couple of analogies from these to make better internal development platforms in their unique context.

From SaaS to Internal Development Platform

Encourage Openness and Extensibility

Instead of creating closed systems or building in silos, internal platforms should be more open and strive for extensibility. This means,

  • Developing and maintaining clear well documented APIs for internal services.
  • Introducing API lifecycle management policies for smooth transition and termination of service of internal services.
  • Encouraging teams to build reusable components and services that can be shared across the organisation.
  • Fostering a culture of “internal open source” where teams can contribute to and improve shared tools and libraries.

Provide Robust Developer Tools

Just like SaaS platforms, internal platforms should offer a collection of developer tools that make it easier for teams to build and deploy applications. While doing so, the main focus should be around improving developer experience and productivity.

  • Custom CLI tools for common tasks.
  • SDKs and libraries for different programming languages used within the organisation.
  • Base images for containerisation of services.
  • Templating systems for quickly bootstrapping new projects.
  • Integrated development environments or plugins that complement internal practices.

Implement an Internal Marketplace

Create a centralised repository or marketplace where teams can discover, share, and utilise internal tools, services and components. This could be as simple as a well documented internal wiki or as sophisticated as a custom build application store.

Foster an Internal Developer Community

Building a strong developer community within the organization is crucial for the success of an internal platform. This can be achieved through multiple approaches.

  • Regular tech talks and knowledge sharing sessions to keep teams updated on internal services and tooling.
  • Internal hackathons to address pain points faced by teams.
  • Cross-team collaboration initiatives.
  • Recognition programs for contributions to the internal ecosystem.

Align Incentives

Introduce incentive structures that encourage teams and individual developers to contribute to the platform’s ecosystem.

  • Include platform contributions in performance reviews.
  • Allocating dedicated time for working on shared tools and services.

To successfully implement these ideas, organizations should consider starting working on these in a modest way. It can begin with a pilot project or a single team to test and refine the platform approach before rolling it out organization wide. At all stages of this execution, efforts should ensure that the platform and its tools are intuitive and developer-friendly. This can be further validated by regularly collecting feedback from developers and iterating on the platform based on their needs.

Another important aspect of maintaining a successful internal developer platform is to reduce the learning curve and enable technical knowhow across teams. This can be easily achieved by proactively maintaining comprehensive documentation and training resources.

While some of the practices such as DevOps are better integrated into the team itself, it is crucial that investing in a dedicated team to oversee and maintain the development of the internal platform.

Furthermore, develop metrics to track the platform’s impact on development speed, code quality, and other relevant factors and make sure that these values and benefits are regularly communicated to stakeholders.

How it all fits in

By adopting strategies from successful SaaS platforms and tailoring them to the internal context, organizations can transform their internal development platforms from mere tool sets into thriving ecosystems. This approach can lead to increased innovation, improved developer productivity, and better alignment between different teams and projects. The key lies in fostering a culture of openness, collaboration, and continuous improvement, turning the internal platform into a true enabler of organizational success.

In the next article, I’ll be focused on where in the engineering organization the platform team exists, in the noisy streets of DevOps, SRE, etc.

--

--

No responses yet