Platform Engineering #8: Designing the Ideal Developer Interface for your Internal Developer Platform
Learn how to design the Ideal Developer Interface for your Internal Developer Platform
Hey Folks 👋,
I'm Romaric Philogene, CEO and co-founder of Qovery (Internal Developer Platform), and this is my 8th post on my Substack. In my previous post, I explained the difference between an Internal Developer Portal and an Internal Developer Platform.
Today, I want to share some tips on creating a developer interface that minimizes cognitive load and maximizes intuitiveness. Cognitive load refers to the mental effort required to learn and operate new systems or tools. Providing a wrongly designed interface to your developers will drastically reduce the efficiency of any platform you could build and provide. So here are my bits of advice to avoid such a disastrous situation 😅
The Golden Path: Simplifying the Developer Journey
A concept central to reducing cognitive load is the 'golden path' - a streamlined, intuitive route through a platform tailored to the developer's environment and needs.
Understanding the tools and technologies your developers use daily (such as their preferred git provider, IDE, familiarity with Docker, programming languages, and frameworks) is key to crafting this path.
Tailoring the Interface: Knowing Your Developers
The perfect interface doesn't follow a one-size-fits-all approach. It's about understanding whether your developers prefer web interfaces, desktop applications, command-line interfaces (CLIs), or configuration files in formats like YAML, TOML, JSON, or HCL. Let's explore some examples:
Web vs. Desktop Interfaces: Some developers might prefer a comprehensive web interface with visual aids and easy navigation, while others might lean towards a desktop application that integrates more closely with their local environment.
CLI Tools: For those accustomed to working in a terminal, a well-designed CLI tool can be a game-changer, offering speed and flexibility.
Configuration Files: The choice of configuration file format can significantly impact usability. For instance, YAML is popular for its readability, making it a common choice for Docker and Kubernetes configurations.
Crafting the Perfect Developer Interface
Building the ideal developer interface for an IDP isn’t a one-off task; it's an ongoing process of engagement with our developers. It requires us to spend time with them, understand their daily workflows, gather feedback, and iterate relentlessly. As I emphasized in my earlier blog post on "Designing an Excellent Developer Experience," the key is not just to gather feedback but to be obsessed with how developers are using the platform over time. Monitoring usage patterns, identifying pain points, and continuously refining the interface based on real-world usage are crucial steps in this journey. By staying committed to this process, platform engineering teams can evolve their IDPs into tools that developers don’t just use, but love to use.
Example 1: Balancing Preferences and Needs
Imagine a scenario where most of your developers are comfortable with Docker and frequently use VS Code as their IDE. A potential approach could be integrating Docker commands into a VS Code extension, providing a familiar and seamless experience.
Example 2: Developer First with Qovery
At Qovery (I’m co-founder), our focus is always on tailoring the developer experience. We constantly evaluate our interface options, ensuring they align with our developers' preferences and workflows. This approach not only makes our platform more intuitive but also encourages adoption and frequent use.
Here is an example where I show off to our users (developers and platform engineers) our new feature - port forwarding - tailored and designed for easy use by developers.
Conclusion
There is no universal solution to crafting the perfect developer interface. However, interfaces built with the developer experience at the forefront – those that truly understand and integrate into the developers' daily tools and workflows – stand a much greater chance of being adopted and valued. In platform engineering, our goal is to reduce cognitive load, not add to it, creating pathways that feel so natural to our developers that they become second nature.
Let's revolutionize Platform Engineering by putting developers first. Subscribe now to join me on this exciting journey!