You've heard of User Experience and should be delivering a good one for the users of your products. If your products are used by developers, they also want a great experience. Welcome to Developer Experience!
In this article, we’d first know what Developer Experience is, explore its history and why it became a field in its own right, see the questions that form the Pillars of Developer Experience and examples of how it can be achieved with your product. This would be done from my perspective and you should drop your viewpoints also.
What is Developer Experience
The principle of User Experience is known in the tech space. It focuses on having a deep understanding of users, what they need, what they value, their abilities, and also their limitations. This understanding ensures that the user interacts with our product to achieve their goals while being satisfied with the process to do so.
Developer experience is user experience specifically for programmers.
History and Why of Developer Experience
In the vast majority of products for developers - client libraries, SDKs, frameworks, open source code, tools, API etc, the experience is terrible. Yet the increase of the digital product market brings even more active and demanding developers who have to interact with these products.
Pillars of Developer Experience
We use these pillars to identify when an experience is good or bad for developers. When working towards developer experience, these are the questions developers (me inclusive) expect that the product would give a resounding Yes to.
- Function: Does it work?
- Stability: Can I trust it to work tomorrow just like it worked today?
- Ease of Use: How long would it take for me to figure how to make it work?
- Clarity: Does it work in ways I did not plan to without me knowing?
Examples of ensuring Good Developer Experience
1. Communication Developers are usually very observative and selective people. All communications should thus be open and honest. Developers rely on messages received to make decisions and would definitely not appreciate having a crashed server due to an ambiguous statement. Status updates should be provided to keep them updated.
2. Good Documentation Clear, understandable and easy to navigate documentations are key. This is one area that we would err on the side of surplusage – add in as much scenarios, tutorials and examples as you can on the use of your product. Be careful though not to make it confusing.
3. Developer Community The last step we would be treating is interacting with the developers directly. Enable them contribute to the progress of the product itself as Developers frequently become invested in their tools. Just as important, take their feedback and bug reports seriously. A mistake would be to have a product with several open public issues that outweigh the closed/resolved ones.
A good developer experience maximises the satisfaction developers have with your product and is achieved by ensuring focus on their unique needs.