DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Refcards Trend Reports Events Over 2 million developers have joined DZone. Join Today! Thanks for visiting DZone today,
Edit Profile Manage Email Subscriptions Moderation Admin Console How to Post to DZone Article Submission Guidelines
View Profile
Sign Out
Refcards
Trend Reports
Events
Zones
Culture and Methodologies Agile Career Development Methodologies Team Management
Data Engineering AI/ML Big Data Data Databases IoT
Software Design and Architecture Cloud Architecture Containers Integration Microservices Performance Security
Coding Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Culture and Methodologies
Agile Career Development Methodologies Team Management
Data Engineering
AI/ML Big Data Data Databases IoT
Software Design and Architecture
Cloud Architecture Containers Integration Microservices Performance Security
Coding
Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance
Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks

Developer Experience (DX) — Devs Are People Too

Why UX for developer tools is critically important to adopting those solutions.

Justin Baker user avatar by
Justin Baker
·
May. 20, 16 · Opinion
Like (5)
Save
Tweet
Share
4.98K Views

Join the DZone community and get the full member experience.

Join For Free

Developers are expected to use increasingly powerful tools to deliver increasingly complex and innovative software. So, why do developer tools often feel like an IRS tax form?

I argue that it stems from a culture that treats aesthetics and functionality as exclusive, whereas I would argue they are highly intertwined. When software is consumer facing, we see a sweeping trend of minimalist elegance aimed at cultivating an emotional connection with the user. But, when that target user is now a developer, design seems to take a back seat to functionality.

Still, we must also recognize that developer tools target a very specific user: the developer.  These tools typically serve critical functions and are used habitually for highly consequential actions.

For many consumer apps, it's relatively easy for a non-engineer to understand a product's scope. Let's take Uber for instance. The UI/UX team assesses the front-end environment, the social caveats, and the broad technical requirements for peer-to-peer transportation. Overall, they are catering to a consumer audience that wants simple, quick, and reliable service. The design team can construct some broad personas and hypotheses regarding transportation from years of empirical experience and common sense.

However, building a developer tool is a bit different. Developer tools are not necessarily made to make things less complicated for engineers. They are made to enhance functional power and allow developers to do things that they could never do before. In the past, designers were not core to the development cycle. If the primary purpose was functionality.. why would you focus on usability and aesthetics? 

“It just needs to work! Not look good!” is what I’ve heard in the past. This is the notion that accurately performing a task correlates to function, that putting in the correct inputs and receiving a reasonable output is the benchmark of success.  But, shouldn’t there be other indicators of success? What about time saved? What about ease of use? What about scalability and reliability? What about the ability to make informed decisions? I can show someone a spreadsheet of tabular data or I could show them some informative charts. Both present the same data. Both functionally deliver.  But, one works much better at delivering the information and fulfilling its purpose.

DX

Hence, Developer Experience (DX) is about delivering robust functionality that is stable, speedy, and visually intuitive.  

DX Designing for Developers | Developer Experience | Justin Baker 2016

Function

Function is absolutely paramount.  A developer tool is only as good as the functionality it delivers.  You cannot mask subpar functionality with beautiful aesthetics or clever marketing.  If it doesn't work well, then it just doesn't work.

Stability

Stability is a cornerstone of trust.  A critical component of DX is to ensure uptime and dependable performance.  Stability also manifests in the ability to rectify errors to avoid critical failure.  Without stability, your product becomes unreliable, making your 'amazing' functionality irrelevant.

Ease of Use

Developers hate to take their hands off the keyboard.  Every movement to a mouse or trackpad feels like a Herculean task.  Ease of use does not just mean the tool is easy to navigate, but it means that you can access things quickly and efficiently.  Keyboard shortcuts, tabular navigation, saved preferences, and intuitive searching/filtering should all increase the speed with which developers can interact with your application.  However, ease of use is also about performance.  User interfaces that take seconds to load instead of milliseconds can be the difference between usable and debilitatingly frustrating.

Clarity

This category is the closest to aesthetics.  DX is about delivering an intuitive interface that surfaces critical information, mitigates user error (ex. confirmation dialogues on critical tasks), and provides visibility into your orientation (ex. navigation through affordance).  Clarity is about the developer having full visibility into the potential consequences of an action and into the history of their actions (ex. auditing and analytics).

Developers Are People Too

Just because functionality is paramount does not mean design is not important.  Design is about effectively delivering functionality to the developer.  The more intuitive your design, the more the developer can take advantage of your product's core functionality.  

Design, therefore, is not just aesthetics - it is about usability.  For developers, this usability is about surfacing functionality as quickly and intuitively as possible.

You can be the most patient engineer in the world, but if you are using a product that combines enterprise-grade functionality with an unusable interface, then your life will be filled with frustration and pain.

We must remember: developers are people who value well-designed things. When we embrace DX, we catalyze the growth of more powerful developer tools.

To learn more about DX, I recommend the podcast series "Don't Make Me Code" hosted by Stephen Boak and David Dollar.  More specifically, Episode 5 discusses how Developers are people too and the associated implications for DX.

dev

Published at DZone with permission of Justin Baker, DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

Popular on DZone

  • Educating the Next Generation of Cloud Engineers With Google Cloud
  • How To Convert HTML to PNG in Java
  • (Deep) Cloning Objects in JavaScript
  • Best Practices for Writing Clean and Maintainable Code

Comments

Partner Resources

X

ABOUT US

  • About DZone
  • Send feedback
  • Careers
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 600 Park Offices Drive
  • Suite 300
  • Durham, NC 27709
  • support@dzone.com
  • +1 (919) 678-0300

Let's be friends: