IDPs with Poor User Experience are Destined to Fail

User Experience design is of paramount importance for implementing an Internal Developer Platform, finds Fernando Villalba, senior tech evangelist at Humanitec.

In a comprehensive blog post detailing what great design and UX (user experience) means, Villalba expands on how to best leverage these to build an IDP (internal developer platform) that is user-friendly and hence more likely to be adopted widely. Villalba explains how Don Norman’s ideals of great design – discoverability and understandability – lead to great design communicating the intended purpose of a tool to the user in the most intuitive way possible.

He goes on to explain that an IDP must be designed for the most junior people can use it safely and intuitively, and that this design should focus in six key areas:

  • Features – the actions that are possible with a tool.  Having fewer, well-designed key features is better than having a large number of uncohesive features.
  • Signifiers – visual or other types of cues to help users use the IDP, but they should only be used in those places without options for intuitive design.
  • Constraints – guiding users to their goal by narrowing the scope of what’s possible, thus making it easier to navigate the IDP and reducing the likelihood of using undesirable antipatterns.
  • Mappings – making it clear how different features and properties relate to each other, by organising peripheral features around core features.
  • Feedback – making sure that clear and unequivocal feedback is given when an action is performed – promptly showing the success or failure, and with actionable next steps highlighted.
  • Conceptual models and language – ensuring that words, designs and colours of the IDP represent those that users will be familiar with – for example making sure that green represents success and red represents failure.

Villalba comes up with, and details, eight principles of great design to help implement a great IDP.

  • There are no bad users, just bad design – design to mitigate and avoid human error, and exploit the computer to help us be creative.
  • Teach Design Principles to all your platformengineers – user-facing elements of the IDP represent the backend, so having those backend engineers also understand design principles is essential.
  • Spending more time at design will save your company time – invoking Tesler’s law – it’s more efficient to spend significant extra time simplifying and improving design than requiring hundreds of users or more to spend time learning how to use an application with unintuitive or esoteric design.
  • Understand the Personas that will use your IDP – find a balance between all the personas who will use the IDP and design for all use cases – potentially exposing or hiding features based on permissions.
  • Beauty is also important — the Aesthetic Usability Effect – a dismissable principle but one that studies suggest that beauty influences user appreciation and eagerness, leading to higher adoption.
  • Abstracting is good, but beware of doing it too much – don’t abstract away every useful property to keep the design clean, but use convention over configuration to hide advanced options in a discoverable way.
  • Beware of Bad Design Stockholm Syndrome – look out for anti-patterns occurring where users get used to badly designed product and accept the weaknesses without trying to improve it.
  • Learn from game design – games that aren’t user-friendly tend to fail, and they need to be engaging by showing elegant ways to teach you how to play the game. This principle applies equally to IDPs.

The main takeaway of the article is to highlight how important UX design is for all areas of an IDP. Delivering an elegant solution that developers love is vital to the success or otherwise of an IDP. It’s hard to apply the principles, but learning them is a great first step when designing and implementing an IDP. Read the full article here.