Finding clarity in complexity

From Shopify UX: https://ux.shopify.com/finding-clarity-in-complexity-bc5843169ace?source=rss—-bbc664515c9e—4

Photo: Verne Ho, Burst

Some specific techniques can help you design for technical users

When most designers talk about user experience they’re talking about consumer products, but user experience also matters for professionals or technical users. These people are subject matter experts in their domain: engineers, software developers, or medical professionals. They’ve spent years studying their craft and have very specialized jobs where they may use software tools daily to augment their work — tools like manufacturing control software, engineering software, and developer tooling. Good design is good for business, and the value a great user experience can bring to these technical tools is arguably even greater than to consumer products.

Your product or tool should enable technical users to do their job better and more efficiently. The more usable your product, the more seamless the experience, and the more time and energy the expert can spend doing their “real” job — whether that’s coding software, computer-aided drafting, or medical imaging.

I work as a designer of the developer experience for Shopify’s app platform, and want to share some ways I approach designing for technical users.

Step 1: Understand the problem

You don’t need to become a subject matter expert to design for technical users, but you DO need to understand their challenges. A designer’s power is the ability to empathize and understand a problem space, and you can use this power to connect with your technical users.

Generative research is a great way to help you get a better grip on the problems you should actually be solving. If you can, work with a user researcher early on in your project! Discuss all your unanswered questions, assumptions, and goals, then together you can pick which methods to use. Here are some great ones:

Interviews

Interviews help to get a general sense of problems or expectations. Technical users have a very clear set of goals and tasks, and can often articulate their problems well.

For example, when we approached redesigning our tools for app testing, we conducted a series of interviews with developers to talk through the steps, from concept to deployment, on our platform. Over the series, we were able to see general patterns emerge, which was useful to get a general sense of the app lifecycle workflow on our platform.

Contextual observation

Observing people doing a task in their environment (especially if the person you are designing for works in a specialized environment, like a hospital or factory) is extremely valuable. It bridges the gap between what people say they do and what they actually do. Shadow an expert and ask them to walk you through their daily tasks.

Previously, I designed factory monitoring software for the manufacturing industry (for CNC milling shops). I had never even been to a factory to understand the workflows, let alone figure out how to digitize them. I accompanied a user researcher on contextual visits where we toured the factory with the shift manager, saw jobs on machines being processed, and saw the systems and tools the factories were using. This empowered me to see where our software tool could improve manufacturing processes, even though I never learned how to operate the machines (so I still have all my fingers).

Co-design

Co-design can be lo-fi (Image credit: Burst)

You can also bring people in for workshops to get a more in-depth, holistic picture of their journey, or even have them collaborate with you on a solution. Work with people who know more than you, but realize that being naive has its advantages. You have the ability to question assumptions and the status quo.

For example, our team wants to get a better idea of how developers interact with resources across our platform: documentation and tutorials, their dashboard, and with the APIs themselves. We want to compare the experience today with how developers would like things to work. We’re planning a day-long workshop where developers come and map out their ideal platform set up.

Step 2: Design for clarity

Technical users do complex work — this is not a bad thing! As designers, we need to make their lives easier, but this doesn’t mean shying away from complexity; we should focus on designing for clarity.

There are many design approaches to creating clarity.

Modularity

Modules combine to form an experience. Photo: Samantha Hurley, Burst.

A modular system allows a product to be extensible and customizable. Configurable modules allow us to design not only for the uses we anticipate, but also empower users to do things we can’t even imagine. This characteristic is what allows tools to be truly empowering.

“Given a set of building blocks with transparent, easily learned, and predictable behaviour, we’re able to assemble them in unique and clever ways to achieve results with emergent complexity.” — Howie Liu, co-founder of Airtable.

Data density

Every control, all the time! Photo: HargaiNyawa, Flickr.

Technical users will typically ask for ALL the data, inevitably leading to a cluttered and complex interface. How can you avoid this scenario? Don’t falsely simplify or remove data your user needs to get their job done, but “scaffold” the complexity. In modular and customizable systems, the user can tailor the system to their needs. Providing clear and predictable rules on how to manage the system will help the user achieve the level of complexity they need.

“The strongest test of any system is not how well its features conform to anticipated needs, but how well it performs when one wants to do something the designer did not foresee.” — Alan Kay, programmer and pioneer of graphical user interface design.

First experience

It’s easy to think, “this tool is complex with a steep learning curve, we’ll create training guides to help people understand how it works.” Technical users (maybe more so than others), have cognitively demanding jobs and don’t want to spend time reading manuals.

Even for complex tools, there are ways to set people up for success from the start. Take a page from game design principles and aim for “Easy to learn, hard to master”. Balancing the task complexity with depth of engagement is a more immersive way to guide a user, rather than defaulting to training guides or overly simplistic interfaces.

Definition of Minimum Valuable Product

Designers want to create tools that people “delight” in using, but sometimes we focus too much on chasing after the next shiny object (like the latest animated transition or superficial illustration) or trying too hard to innovate on interface standards.

This can be risky when designing for technical users. Software tools should seamlessly augment their jobs, so superficial flourishes will distract and frustrate them. Focus on the value you can add or pain point you can alleviate.

“Only when a product is functional, reliable, and usable can users appreciate the delightful, pleasurable, or enjoyable aspects of the experience.” — Therese Fessenden of Neilsen Norman group.

For example, developers have defined and time-tested version control workflows. Trying to add a whimsical animation after code commits? Probably not a good idea. Trying to add some process automation? Developers would probably love that!

I was very surprised about how delighted technical users get about seemingly mundane infrastructure stuff. Ryan Bigge, a senior content strategist here at Shopify, advocated that designers aspire to be boring and focus on this foundational work. He argues that the boring companies have millions of repeat users because their products actually work.

Step 3: Validate

A mantra for designers to remember is that you are not your user. This is especially important for technical users with niche expertise. You may not have the industry knowledge necessary to evaluate your designs, so it’s important to validate your design decisions with evaluative research methods like user testing. One key technique to use when testing is the think aloud protocol. Just as the name suggests, it involves participants thinking aloud as they perform a set of specified tasks. It’s especially useful for prompting technical users to clarify the reasoning behind their actions, and their expectations.

As software tools become more ubiquitous, designing the user experience for technical users is a worthy challenge. As a designer, you can feel good about helping someone be more productive and do their job better, which will hopefully have a positive impact on their life.


Finding clarity in complexity was originally published in Shopify UX on Medium, where people are continuing the conversation by highlighting and responding to this story.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.