What I Learned Designing Developer Tools


I spent a few years designing developer tools. While working at Adobe, I started with the Flash/Flex Platform, and then helped launch several products for web developers and designers. If you are a designer that is thinking of tackling this space, I’d love to share this with you.

It’s not an excuse to be sloppy.

“Oh, it should be easy, developers don’t really care about how their tools are designed. They use Vim!” — Misguided friend, understatement of the year.

It may not be the sexiest space, but developer tools are a challenging and rewarding design challenge. You are solving very complex problems and making them efficient. Effectiveness is valued above aesthetics. It takes a lot of work to design more efficient solutions, particularly when habits die hard. Developers do appreciate well designed tools and you see it in the success of Heroku and Stripe.

Honesty

When it comes to developers, smoke and mirrors is the wrong way to go. Yes, delightful interactions are appreciated and saving time is awesome. But, having an understanding of how that happens makes them confident in the value you are providing. A good example of this is Reflow, a tool for creating responsive sites. Used both by developers and web designers, we didn’t want for the layout to seem magical. Unlike traditional design tools, the layout in Reflow needed to be a 1:1 translation of the layout model available in web technologies, which would normally be more cumbersome than traditional layout tools.

Sell power, design simplicity

As for any tool, unfortunately the long feature checklist does sell products (at least that’s the perception). There will be the constant pressure to display new features in the product, cluttering your meticulously simplified UI.

But there is also a danger of becoming too powerful. Developers are migrating away from monolithic IDEs like Eclipse. There is a perception that it doesn’t move as fast and it is harder for one environment to be up to date with the latest technologies. It’s important to be clear on what problem your tool is trying to solve and remain focused on that problem as it evolves.

Play well with others

While remaining focused, it’s important to know that you will be intimately coupled with an ecosystem of tools that will change as fast as the web. Your software needs to be designed both to evolve quickly and to collaborate with any other system.

Extensibility needs to be a baseline feature of any developer tool. This could be going Open Source, having a world class API, or infinite customization opportunities. What this means for designers is that we need to think in terms of systems. A set of parameter should be able to configure such system. Whether it is customizing primary colors by the user, or allowing third party developers to design and develop extensions using the UI framework you designed.

Don’t start from scratch

Similar to designers, developers like to solve issues based on a solid foundation. A good developer is someone that can easily understand a framework, then apply and build upon it.

Design for empowerment

Nowadays, you would never expect a user to read a user manual out of any consumer product. Nevertheless, developers expect to read some sort of documentation at least once. And some companies are doing an amazing job on this issue. Stripe is clear about who its users are, they put great effort in creating the best API documentation out there.

While most consumer tools level out as the user knows how to use the tool. Your product is only successful once your users get over that level and start becoming power users.

It’s important to design a sandbox that will allow users to make the product their own. That’s when they are committed to using the tool every day, and their efforts translate both in their livelihood and their reputation. Both of these will make your product more effective when it comes to referrals. There is a big difference between “I tried product X the other day, seems cool. You should check it out.” And, “Look at all the cool shit I made with Product X!”

Show yourself in your craft

Developers, more than anyone, can see when there is someone behind the technology. And a big part of how engaged they are with a product is knowing that there is a cool team behind it and a great community around it. Sweat out the details, it shows. Github is a company that gets this right, from little details like it’s 404 page, to their octicons.

The reward is inspiring

Finally, developer tools are made for creation, and your biggest reward will be getting inspired by what their work. So make sure to reap them and see how you have empowered others.