When Designing a Product for Developers - 5 things to keep in mind
The working relationship between designers and developers can sometimes be tricky. However, at the end of the day, both designers and developers are working toward the same goal. Building a product that best serves user needs, a product that looks good and functions properly.
There are five lessons that I've learned through the process, as well as some wise insights from fellow dev tool design leads.
1. Know your user
It's quick and very convenient to get answers when your user sits right across the table from you, and you hear them share everyday struggles and development work pains at the daily standup.
But it's risky to rely solely on teammates when you're defining your user. Like designers, developers come in different shapes and flavors. Front-end developers search for different solutions than back-end developers; data scientists have entirely different goals than devops engineers.
Beyond knowing your user, you should be aware of what's the specific state of mind they are in when they're in need of your product.
My team's production debugging solution is designed to help the developer at a crucial point - when a bug or a performance issue has occurred and he must quickly understand what happened and resolve the problem. Lack of visibility and the limited ability to collect live data makes the debugging process feel like looking for a needle in the haystack in the dark.
Our user is frustrated and anxious, and in desperate need of valuable insights and support - someone that will say "Yes, you're in the right direction!" or "No, you're barking up the wrong tree," and help him get things in order, quickly, before his own users are affected. So our design needs to reassure the user, while enabling them to find the answers they need quickly and easily.
2. Software development is a religion
Remember that episode on Silicon Valley, where Richard freaks out when he learns that one of his employees commits a batch of code which is written using spaces and not tabs?
Sadly, this is not an exaggeration but rather a viable and blood-soaked war in the coding world.
Here's how the Merriam-Webster Dictionary defines a "cult":
A small religious group that is not part of a larger and more accepted religion and that has beliefs regarded by many people as extreme or dangerous
A situation in which people admire and care about something or someone very much or too much
A small group of very devoted supporters or fans
Sound familiar?
Developers swear by their favorite framework, are devoted to their traditional tools, and have Sisyphean arguments about things which seem meaningless.
Developers can be resistant when it comes to changing familiar conventions - fonts, color themes, hierarchy. So you need to have pretty good reasons to back up unconventional design decisions.
Yet designing within these conventions can limit your creative freedom. You need to find the right balance between good design decisions and fresh UI, and not unnecessarily shaking your users' world.
3. Developers are people too
Contrary to popular opinion, and despite developers' well-deserved reputations as sophisticated and tech-savvy users (obviously), they are still people. And like most people, they expect products to serve their needs as quickly and effortlessly as possible. They don't want super-complex tools that take hours to learn.
This important input came through loud and clear in almost every user interview we conducted: Make the user interface as intuitive and simple as can be. Don't assume that because developers are smart, they will figure it out. If they don't get it, they're probably not gonna keep trying.
4. Less is more
Dribble and Behance are full of gorgeous design concepts, perfectly aligned tables and gradient dashboards. It looks amazing as screenshots but fail to function in the real world.
A beautiful application that is not functional will not satisfy users' basic needs. Users tend to remember the bad more than the good. Can you imagine your user saying, "This app takes ages to load and I'm not really sure what all these buttons do, but, boy! This splash screen animation is super cute!"?
Only when a product is functional, reliable, and usable can users appreciate the delightful aspects of the experience.
Sentry's co-founder and head designer, Chris Jennings, was in fact a product designer at GitHub before making the transition and creating an error tracking tool for developers. Here's what he had to say about why, especially for developers, less is more:
"If there's one way developers are different from the average consumer, it's that they don't have a lot of patience for fluff or interruptions. Our customers use Sentry to solve some pretty gnarly problems. It is part of our job is to make sure we don't get in the way of that with things that aren't 100 percent necessary."
5. Don't be afraid to ask for help
Gitit Bruetbart, Senior Product Designer at Alooma, says she regularly sources insight about usability and product design from her friends, who are generally happy to explain technical issues and contribute their thoughts.
"As a designer, entering the world of developers is not always easy," she explained. "While designers are up close and personal with product technology, they are rarely as familiar with the technical issues and terminology as developers are. Fortunately, however, in startups, designers and developers work closely together, or at least socialize over lunch."