Windows 8 Explorer redesign: My analysis

Yesterday I stumbled across Improvements in Windows Explorer on the Building Windows 8 blog. I found this post interesting because while it is superficially impressive, I see some fundamental UX design mistakes that I suspect will result in the redesign falling short of expectations. Students of my UX Design Essentials course and readers of my blog should recognize them immediately.

For a fun UX design challenge, read the UX Design Essentials Curriculum and The Politics of Ribbons, then read their post and see how many problems you find.

OK, what did you find? Let’s proceed…

What I like

First, for the good part. Here’s what I like with the Windows Explorer redesign:

  • Data driven decisions. The use of data instead of personal opinion deserves praise. However, there are several traps with using data to make design decisions, and I think the Windows 8 team walked right into them. More below…
  • Improved Details pane. The redesign looks much better than the current design and makes more effective use of screen space.
  • Copy path. This is a frequently needed Windows Explorer command that deserves its promotion to a top-level command.
  • More visible advanced search UI. The current Windows Explorer advanced search features are almost invisible and difficult to use.

I’ll add to this list as I discover more things, but this is it so far.

When you are a ribbon, every problem is an undiscoverable command

Guess what? Windows Explorer is getting a ribbon. What a surprise! Didn’t see that one coming. To be a bit snarky, I think Improvements in Windows Explorer could be accurately retitled How we used data to justify a ribbon for a simple utility that probably doesn’t need one.

Don’t get me wrong, I love the ribbon and think it is a fantastic UI innovation. But from The Politics of Ribbons:

The ribbon has one significant strike against it: it is the heaviest commanding solution there is. A good UX design principle is to use the simplest, lightest weight solution that does the job well, so applying this principle suggests that—given its weight—a ribbon should be among last commanding choices, not the first.

In UX Design Essentials, I identify the classic UX design process mistakes. Here’s #3:

Falling in love with one (usually first) solution.

It’s a good bet that the ribbon was not only the first choice, but the only serious choice considered. Using a ribbon was likely a politically driven decision justified with data. Look at the data…we just had to use a ribbon!

A good design process is about making choices on behalf of target users to create a product that satisfies their goals. But you can’t make a good choice if you have only one option to choose from. Focusing on a single solution short-circuits the design process.

To convince me that this is a great design, I want to see an exploration of simpler, lighter weight alternatives and a demonstration that the ribbon approach is in fact better. And if you practice effective prototyping, you can’t argue that would take too much time and effort.

Utilities: we’re just not that into you

Windows Explorer is a utility, meaning that it is typically used to support tasks initiated in other programs. It’s what Alan Cooper describes as a transient application, not a sovereign one.

This is a significant detail because it affects how people use the program and how you should make design decisions. Here are some implications:

  • User goals are elsewhere. Window Explorer is used to manage files, but nobody really has the goal of managing files. Users’ goals lie elsewhere—they want to browse the web; view their photos; play their music; view, create, and share documents, and keep their information secure. Users prefer to do these tasks in their current context, so, for example, you open Office documents using the Open or Recent commands within the app. Note that the iPad and iPhone don’t even expose their file systems, so there’s no need to manage files on that platform.
  • Usage is infrequent and brief. As a utility, users don’t spend that much time with Windows Explorer and that time is usually to perform a task step (initiated elsewhere) as quickly as possible.
  • Most users have low motivation. Users aren’t motivated to spend much time in Windows Explorer. Isn’t not a destination worthy of investment. If advanced users are motivated to learn more about its features, it’s in order to spend even less time with it or to automate tasks.

Bottom line is that users want utilities to perform tasks as quickly and simply as possible, then move their attention elsewhere. A complex utility, with lots of stuff you really don’t need, undermines this goal.

Doesn’t this feel UI way too complex for what should be a simple utility? Do you really want to wade through all this stuff to find a command? Do all these commands need to be visible on the screen all the time? Don’t you think there must be a simpler alternative that does the job better?

With over 200 commands, Windows Explorer looks like it was designed by a feature hoarder. If your top 10 of 200+ commands are 82% of usage, time to start cutting back.

BTW: Here’s a useful ribbon guideline that I think is appropriate:

  • Don’t use the scalability of ribbons to justify adding unnecessary complexity. Continue to exercise restraint—don’t add commands to a ribbon just because you can. Keep the overall command experience simple.

Well put!

The highlighter test

The highlighter test is a simple, quick way to evaluate how effectively a UI is using screen space. Gather your top tasks, perform those tasks using your design, then highlight the UI elements that are potentially useful for those tasks. If almost everything is highlighted, you’ve done a great job. If not, you’ve got some work to do.

Here’s my highlighter test for the Windows Explorer ribbon:

Note that I highlighted only 3 of 19 visible ribbon commands. Crikey!  The reason is that I use shortcut keys, context menus, or direct manipulation (usually drag and drop) for all the other commands. Yes, the data shows that Paste, Properties, and Copy are top commands, but that data also shows that 85% of usage comes from context menus and shortcut keys. I don’t expect the ribbon to change that much.

One benefit of traditional menu bars that deserves some appreciation is that you can fill them with every command you’ve got and nobody is going to care much. Not true with a ribbon.

Power user value propositions and personas

The key to user-centered design is to identify your target users, understand them well, and make good decisions on their behalf. Improvements in Windows Explorer mentions power users quite often, but doesn’t mention typical users specifically. Looks like the Windows 8 team is targeting power users. Nothing wrong with that if it’s appropriate.

A value proposition states the reason your target users will want to buy and use your product—especially when compared to the alternatives. Their post suggests that power users are using after-market add-ons like TeraCopy, QTTabBar, DMEXBar, StExBar (which BTW the ribbon-based Windows Explorer won’t support anymore). Power users also use command line and Windows Power Shell.

The “when compared to the alternatives” part of the value proposition is a killer here. While their post makes a strong case that the redesigned Windows Explorer has many features power users will like, they didn’t make the case that power users are going to care. Will a Windows Power Shell user switch to Windows Explorer because of the ribbon and a few new commands? I doubt it. And if not, are power users really the right target?

Good value proposition work would have revealed this all-important problem.

But wait, there’s more. Let’s start to create a persona for power users with a few key characteristics:

  • Wants to work as efficiently as possible.
  • Motivated to learn and memorize program features and commands to work efficiently.
  • Greatly prefers keyboard over mouse.

BTW: I wouldn’t expect “Desire to respect Explorer’s heritage” to make this list. Your design priorities should clearly align with your target user.

Now assume that you are a power user and want to copy the file you just selected. Which approach are you more likely to take:

  1. Type Ctrl+C.
  2. Move mouse to ribbon, click the Home tab, click the Copy command, move mouse back down to where you were working.

For this power user persona, I just don’t see #2 happening here. I know that the Windows team no longer uses personas. Perhaps they should.

What I would do instead, part 1: Scenario-based design

At this point, you might be thinking: OK then, what would you do instead? Glad you asked!

Note how the Windows 8 team is  focused on data, features, and feature discoverability. I mentioned in the introduction that using data is a much better way to make decisions than personal opinion. But there are several traps using data, the most important being that using data is often used as a substitute for thinking.

Data tells you “how much.” Knowing “how much” is important, but knowing “why” is far more important still. Raw data doesn’t tell you the users’ goals or what they are trying to do. It only tells you what they did and how often.

For example, the Windows data shows that Properties is the second most frequently used command. Why? Why do suppose users want properties so often? Is looking at properties a common task or goal? When you see a file, do you immediately think “I really want to see its properties”? No! The Properties command is a means to an end, but never an end it itself. The user is trying to perform some other task and checking Properties appears to be required in order to do it.

While a good design (that mindlessly follows data) would make the Properties command more prominent, a great design (that leads with data) would strive to eliminate the need for the command in the first place!

How do you do that? With scenarios! A scenario describes a specific target user trying to achieve a specific goal or task in a specific environment. Their post mentions Windows Explorer supports many different scenarios like viewing photos, playing videos, and playing music—then completely ignores that fact when justifying design decisions.

Remember: Windows Explorer is a utility that helps users manage files—a goal that most users rarely have!

A better approach is to design for the goals that users really do have. Design the best possible experience for viewing photos! The best experience for playing videos…for playing music…for protecting users data…for finding stuff. Supporting these scenarios should drive the design decisions, not raw data. So, for example, if you view a folder of photos, the top-level commands should be focused on the top photo tasks—and nothing else! And if done properly, excise tasks like displaying Properties go away because they are no longer needed.

Unlike task-based design, scenario-based design considers the user’s context—a great way to eliminate unnecessary complexity. In any given context, the user isn’t likely to need 200+ commands, but more like 5.

If you watch the video at the end of their post, Alex Simons show some tasks that look like scenarios. But those feel fake to me. Why? Remember that Windows Explorer is a utility and scenarios are tasks done in a specific environment. Real Windows Explorer scenarios should rarely start or end in program itself.  These aren’t “end-to-end” scenarios but rather what I call “technology vignettes”—scenarios fragments artificially limited to the component you are working on, but not tasks that users really do. Designs that hold up well with “technology vignettes” routinely fall down when evaluated with real scenarios—especially for utilities. They aren’t “end to end” but “middle to middle.”

What I would do instead, part 2: Nail the basics!

I really want things to work properly. I’ve found several basic features in Windows Explorer that just aren’t quite right yet, but in the interest of time I’ll limit myself to four:

  • Better performance and responsiveness. I don’t like waiting, especially unnecessarily. I don’t want to wait for Windows Explorer to load; to display thumbnails, previews, properties; to enable commands or drop context menus; to copy, delete, or rename files, etc.  Given a choice between a responsive app and just about any collection of new features you could name, I’ll chose the responsive app.
  • Better search. Google has set the bar for search user experience and Windows search falls well short. Too slow, too hard to use. I would happily trade a ribbon for better search any day.
  • Better presentation and previews. Windows Explorer currently has 8 view modes (!), many of which aren’t that useful. It also has a knack for choosing the wrong one by default so I constantly have to change it. And is it really that hard to choose appropriate column widths in Details view so important data isn’t cropped unnecessarily? Any why are file previews so often broken and don’t work in zip files?
  • Smarter error handling. Regarding scenarios, bulk file handing scenarios are important. Bulk rename (example: photo files) doesn’t work well.  Bulk file copies often fail because of some easily ignorable problem. Windows Explorer should just report the problem and move on instead of dropping dead in its tracks. (Sometimes these problems display a dialog with a Skip button, but I’ve discovered that Skip usually Cancels instead.)

These details weren’t mentioned in their post. Hopefully the Windows 8 team is addressing them, but I fear that focusing on the ribbon will distract from nailing the basics. I’ve seen that happen before.

If you do only one thing… When evaluating a design, take a step back and ask yourself what is driving your decisions. Technology? Features? Politics? Schedules, deadlines, and budgets? Data? While practical realities, these shouldn’t be the driver. Instead your design should be driven by providing value, satisfying user goals and tasks, delighting users by doing a few things exceptionally well. If you are using data, don’t let it become a substitute for thinking. Take the time to understand what the data is really telling you.

 

Want to learn more? Be sure to check out the UX Design Edge training courses. Every technique I’ve mentioned here is presented in UX Design Essentials.

Disagree? Leave a comment!


Effective Prototyping

I just completed my second annual New York road trip where I presented Effective Prototyping to the Tech Valley .Net Users Group in Albany on August 8th and the Central New York .Net Developer Group in Syracuse on August 10th. These presentations had a great turnout, with excellent audience participation and supportive feedback. I’ve very pleased by how they went. Many thanks to Andy Beaulieu and Chris Miller for making this happen.

Here is the blurb:

Software prototyping is an important UX design skill that many people “just do” but effective prototyping requires crucial knowledge and practices that aren’t obvious. As a result, many prototyping efforts aren’t productive and fail to achieve their goals.

In this talk, Everett will explain prototyping and its goals, compare prototyping to sketching, and explore the different types of prototyping. He will then give the eight rules for effective prototyping and show why those rules are so important.

Everett will review several commonly available prototyping tools (including SketchFlow), give nine criteria for evaluating prototyping tools, and evaluate the tools based on the criteria. He will conclude by showing some examples effective and ineffective prototyping in practice.

If you or your team is prototyping now or considering prototyping in the future, this talk is for you!

And here’s the deck: Effective Prototyping (1.2 MB).

I’m interested in presenting Effective Prototyping to other groups, especially to those within driving distance (New England, New York, Pennsylvania, Montreal, Ottawa) as well as places that I often travel to (Chicago, San Diego/So Cal, Washington DC, Seattle, Florida). If you’re interested, please contact me.


  • By Everett McKay on July 26th, 2011
  • Getting from good UX to great UX

You ship your culture: Why Microsoft didn’t invent the iPad

I recently presented UX Design Essentials for Managers to a group of executives. Everyone there had an iPad and loved it. Most said that they were using their iPads for routine tasks now, and rarely needed their laptops anymore. Their top question for me: Why didn’t Microsoft invent the iPad?

Good question!

It’s a very reasonable question to ask, and the answer is extremely relevant to the course. After all, Microsoft had a huge head start, with an early lead in tablets and touch. Windows XP, Tablet PC Edition was released in 2002, Windows Vista had pen support built in by 2007, and Windows 7 had touch support built in by 2009. And Windows has a huge market share advantage to help get traction.

By contrast, after the failed Newton, Apple showed very little interest in tablets. My friend Bert Keeley, a tablet and touch expert, approached Apple about creating a tablet but was rebuffed by Steve Jobs, who said “We won’t do those.” When Apple finally shipped the iPad in April 2010, it was extremely late to the party.

Fashionably late, it appears, as the iPad has driven Microsoft’s tablet efforts into oblivion. And it took all of a week on the market to do so.

Dick Brass got it wrong

Dick Brass is a former Microsoft VP who led their tablet and e-book efforts. After the iPad was released, he wrote the New York Times article Microsoft’s Creative Destruction, where Mr. Brass explains how Microsoft’s “dysfunctional corporate culture” squandered its early lead. He tells a tale of technology backstabbing and sabotage remarkably similar to the plot of Mean Girls.

But is this really the reason why Microsoft didn’t invent the iPad? Here’s an interesting thought experiment: suppose Microsoft executives were a little less adept at backstabbing and sabotage, and gave their full support to Mr. Brass. Would Microsoft-based tablets have been as successful as the iPad?

My answer: No.

Microsoft is a technology company, but the iPad success required an experience company

Many people believe that UX design is problem solving and Microsoft definitely falls into that camp. Here’s a problem solving approach to designing a Microsoft tablet:

  • Define problem Create a tablet-based OS that works with the most popular apps.
  • Find a solution Identify the top usability problems (often called “pain points”) with using Windows on a tablet, develop technologies to work around them, and ship a version of Windows with those technologies.
  • Evaluate Determine if users can browse the web and use Office reasonably well. If so, problem solved. Ship it!
  • Improve Continually improve the product and Office integration over time based on customer feedback.

(BTW: What’s up with “pain points”? Many people talk about these—as if not being painful is a good user experience design aspiration.)

If the iPad didn’t exist, this might seem like a reasonable plan—especially to a Microsoft VP. Exploit the Windows market share, get something out there quickly that runs Office, and see what happens.

But in the context of the iPad, there are three glaring flaws with this approach:

  • The iPad is a success because it’s delightful. The iPad is optimized for the top tasks that don’t require a keyboard. The software is simple, easy to use, and responsive…you don’t have to futz around to use it. The multi-touch support is responsive and intuitive. The device itself is light, feels great in your hands, has fantastic battery life, and is a perfect gaming device. Overall, it’s fun, fast, and hassle free. Merely being functional or having a reduced set of “pain points” is a non-starter.
  • Running Office is the least interesting thing you can do with a tablet. Note how getting support from Office was a crucial part of Mr. Brass’s story. But aside from simple email, Office-type tasks are too cumbersome for a tablet. The iPad’s simple, hassle free operation is optimized for browsing the web, reading books, playing games, watching videos, and having fun. That is, everything other than using Office.
  • People aren’t going to wait around for you to get it right. More on this later…

Having tablet technology doesn’t matter. Running Windows and Office doesn’t matter. Having a delightful, hassle free experience does. That is why the iPad is successful.

Apple gets this, but Microsoft doesn’t (Mr. Brass included).

Something everybody wants, but nobody needs

The iPad is unique among consumer electronics devices. The iPad is something everybody wants, but nobody needs. There is nothing you can do with an iPad that you can’t do with a laptop or a smartphone.

This is not a slight. After all, nobody needs a Ferrari either. Rather, it sets an extremely high bar for UX design. There is no clear need to fill—beyond customer delight.  Without a clear need, if the results aren’t delightful, what’s the point?

Getting it right the first time

Microsoft can create delightful products—but only after it has exhausted all other possibilities. The much-maligned Zune is an interesting example. While the initial release was weak, the Zune desktop software was delightful and made iTunes look like a spreadsheet. But by the time Microsoft got it right, it was well beyond the point where anybody cared.

The “three tries to get it right” approach worked just fine in the Windows and Office era, but doesn’t work anymore when your competitors are hitting grand slams every time at bat.

Lessons learned

OK, enough about Microsoft’s problems…what does this mean to you? Here are the key takeaways:

  • You ship your culture The products your team creates are a reflection of its culture. Your team’s vision, plus it goals, team members, reward system, and decision making process are all a reflection of its culture. If that culture doesn’t value great user experiences, your products won’t have them. That’s that simple. A dysfunctional design culture is an executive problem—it’s not a problem non-exec employees can possibly fix.
  • Top players are getting right the first time now The “three times to get it right” approach doesn’t work anymore. If you don’t create a great user experience, your competitors will do it for you. Don’t expect your customers to wait around.
  • Experiences matter; features, technology and “innovation” don’t. Innovation is a meaningless word. Nobody cares. People do care about features and technology, but only as a means to an end. Great experiences do matter—people want to be delighted by the products they buy and use.

Attention managers: Do you need help improving your team’s design culture? Please consider hosting UX Design Essentials for Managers  for your management team. This class will help your team identify and work through its design culture challenges (having a neutral outsider drive really helps), plus help boost their UX design skills.


Feature Hoarders: Extreme Edition

I have an odd fascination with A&E’s Hoarders and TLC’s Hoarding: Buried Alive. It’s a sad human tragedy, where people harm themselves and their loved ones only because they collect too much stuff, let it all pile up, and refuse to throw anything away.

It’s harsh to say, but I’ve seen many apps that look like they were designed by feature hoarders—the equivalent of room after room of features and options of questionable value that have piled up over the years because nobody was willing to make the hard decisions to get rid of them.

This post explores why feature hoarding happens and what you can do about it.

Potential value

I should start by saying that I sympathize with hoarders to some degree. While I don’t get the shopping sprees (I get more delight in not buying stuff), I understand their reluctance to throw things away. When I look at something, I try to see its value and I’m reluctant to throw away things that have value.

If you watch a few episodes and listen to hoarders explain why they collect all their junk, phrases like “potential value”, “I’ll use that someday”, or “that will make a great gift” keep coming up. Emotionally, they see value even though rationally the odds of that value ever being realized are extremely slim.

Feature hoarders think about questionable features and options the same way. Even though the features aren’t necessary and rarely used, feature hoarders see the potential value and cling to the idea that one day somebody will find them useful, no matter how unlikely.

The value of simplicity and organization

While hoarders overestimate potential value, they severely overestimate actual value. They also underestimate the value of simplicity and organization. Being able to easily find and use things that you really need is far more valuable than having possession of things you don’t use.

The key to simplicity is to understand that the features and options that users will use are far more significant than those they might use. Ease of use equals use, so things that are easy to find and use have more value. Ultimately, potential value doesn’t matter much.

A bad day for user-centered design

If you were to ask a usability professional how to make a difficult design decision, there’s a good chance they’ll say “Just ask your users.” This isn’t always good advice, and these hoarder shows illustrate why. When dealing with hoarders, every day is a bad day for user-centered design.

Have you ever noticed how user centered these shows are? The hoarder is involved with every decision. In the beginning, the consultant/therapist/expert asks the hoarder item by item “Can we throw this away?” Each time, the hoarder’s answer is an emphatic “No!”, often accompanied with an “I’ll use that someday” or “I’m going to fix that” rationalization. This grinding process usually ends with shouting and tears.

The problem with user-centered decisions here is that users are good at giving their goals and setting priorities, but they are poor at making the tough, detailed decisions. If you were to ask users if they want something, the answer is almost always yes. I call these “Do you want fries with that?” questions, and as a designer you shouldn’t ask them.

A better approach would be to ask the hoarder to go through the house and point out their favorite things and the things they use the most. Then, remove everything from the home (including the hoarder), clean everything up, strategically replace and reorganize what the homeowner really needs, then evaluate the results with the homeowner.

Changing culture

Still, I appreciate what the consultants/therapists/experts are doing. Is relatively easy to clear out a house—it’s much harder to change the behavior that lead to the hoarding in the first place. If the expert doesn’t change the behavior, the improvement will be temporary at best.

Remember: the junk is there for a reason. The hoarder thought it was a good idea to buy and to keep all that junk, and without a behavior change they will do it again.

If you are trying to simplify a UI, I recommend understanding how that complexity got there in the first place. Chances are those unnecessary features and options are there on purpose, and that purpose was well intended. Somebody thought the features were a good idea at the time. Perhaps customers requested them directly. Simplicity requires saying “no”—it’s much easier to say “yes.”

Sure, you can declutter a user interface, but unless you change your team’s culture by setting a higher bar for adding features and a lower bar for removing them, that clutter will soon return.

Making the tough decisions

The top takeaway of these shows is that decluttering is much easier said than done. So, what can you do to declutter your UI? Consider using one of these techniques:

  • Gather real user data If you have the ability to gather actual usage data, you’ll have a strong case from removing unused or rarely used features. While I don’t advocate using data without interpretation, as long as there isn’t a discoverability problem, removal is usually the right interpretation.
  • Highlight your top scenarios With your team, make printouts of all your screens, perform your top tasks, and highlight what you actually use during those tasks. Take a good hard look at what didn’t get highlighted. What bad thing would happen if they were removed? With this activity, you’ve demonstrated the answer: not much.
  • Try a simplified version I’m a strong advocate of considering design alternatives. One alternative to always try is a simplified version of your current design. Instead of going through the grinding process of cutting feature by feature, just go directly to the simplified results and give it a try. I bet you’ll be surprised how nobody misses what was removed.

A devious use of iPhone design

Here’s a fun exercise to help your team simplify a UI and perhaps even change its culture. Assuming that you don’t already have one, have your team design an iPhone app. (If your app does many tasks, do this for a few top tasks.) Before starting, you might want to quickly review the iPhone guidelines, point out that there is only so much screen space, typing is a pain, and that the best iPhone apps focus on doing one task well.

Once you are done, evaluate the results by performing the top tasks. If successful, chances are your team will say things like “This is great!” and “If we had this, I don’t think I would use our original app anymore!”

Now, take a step back and compare the iPhone app to your original app. Justify the complexity of the original app. Do you really miss the features that were removed? Does the ease of use, speed, and delight of the simplified iPhone version more than make up for the missing clutter? Is there any reason why your original app can’t be more like the iPhone version?

I bet your team will have trouble justifying the complexity of your original app. The iPhone platform demands simplicity and starting from a clean iPhone slate allows your team focus on the essentials without legacy baggage.

If you do only one thing… Don’t be a feature hoarder. Focus the UI on the features and options that your users actually use, not on what they might use. Value simplicity, organization, speed, and efficiency by getting rid of what gets in the way. Get in the habit of creating simplified design alternatives and seeing if they work better. Chances are, they will!

Looking for UX design interview questions? Show candidates a complex UI and ask them to simplify. When they recommend removing features and options, challenge them by explaining why there are there and seeing if the candidate can still convince you to remove them. The ability to make a persuasive case for simplicity is a valuable design skill.


Don’t design like a programmer, part 2

In my original Don’t design like a programmer post, I explored a common UI design trap that programmers often fall into, where you have a data structure, map that directly to a UI, and expect the results to be a good user experience. Sometimes that approach works just fine, but often it does not. The original post explains the potential usability problems in detail. This is an easy trap to fall into if you are thinking about the code instead of your users. As a developer myself, I’m very sympathetic here.

Someone named pankratiev put a link to that post on Y Combinator Hacker News and my site traffic just exploded—so much that my web host couldn’t handle it. (Thanks pankratiev! Please do it again!) While the feedback and comments have been positive, the top request was to show examples of good designs too.

I will start that challenge with this post. I finish with a proposed design in Part 3.

First, the original designs

Here’s the first UI in the post:

Actually, I didn’t say this was a bad design—rather I showed how this UI is a direct mapping of this data structure:

     struct UserOptions {
          bool        Option1;
          bool        Option2;
          String      Option3:
          String      Option4:
          ...
     };

I made this example generic to focus on showing how a programmer might map a code directly to UI. Is this a good UI? Impossible to say without knowing more, but the original post gives reasons why the odds are against it.

I then ended the post with this example:

I chose this wGetGUI example because it so clearly illustrates several of the problems I mentioned in the post. For example, note that almost all the controls are text boxes, check boxes, and command buttons, which map directly to strings, integers, Booleans, and function calls. You can just see the underlying data structures that need to be filled out:

     struct RetrevalOptions {
          bool        NoClobber;
          bool        Timestamping;
          bool        ContinueFileDownload;
          int         Quota:
          ...
     };

This is the UI everyone wants me to redesign—to something that doesn’t look like it was designed by a programmer. There are some problems with this task though:

  • A good design requires applying a process, not jumping to a solution.
  • A good design requires understanding the target users and their goals, top tasks, environment, etc.
  • Unfortunately, I’m not a target user and don’t know anything about the target users and their goals, etc..

And as a courtesy to the wGetGUI developer, I really should add one more:

  • It’s presumptuous to redesign somebody else’s UI without being asked.

So for this post, I’m going to outline a process but not attempt to improve the original design. This might seem like a cop out, but it’s actually the first key takeaway:

Key takeaway #1

You can’t significantly improve a user experience if you don’t understand its target users.

Sure, I could possibly make some minor improvements to the labeling, layout, tasks flow, and control usage, but that is hardly a giant leap for design. It’s not like changing a check box to a pair of radio buttons is going to be a big revelation.

UX design CSI: Focusing on the code is backwards

At this point, I’m going to take full advantage of fact that I’m not a wGetGUI user and look at the design from a fresh perspective. If I were more familiar with the tool, it would be easier to rationalize the design.

Key takeaway #2

Target users aren’t you. They have different knowledge, goals, and preferences.

My first observation about this UI is that I haven’t a clue what to do with it. A programmer might say “Well of course not, you haven’t read the documentation. RTFM.”

Key takeaway #3

Good UIs are self explanatory. Users shouldn’t have to read a document to figure them out.

I’m wondering what the tool is for. Shouldn’t the UI explain itself? Why should I have to figure it out? (Update: I tried to deduce what the tool was for, then later RTFM. Turns out I was completely wrong!)

Key takeaway #4

Don’t make me think…I shouldn’t have to figure things out using thought and experimentation.

Note that this UI presents settings and commands, but no obvious tasks. What are the tasks…what I am supposed to do? Am I supposed to know everything already?

Key takeaway #5

Good UIs are task centric, not feature or technology centric.

Just as the UI reveals how the programmer mapped the data structures to the UI, it also reveals the design process used. Something like:

Code -> UI

Instead, the process should look more like:

Target users -> goals -> tasks -> UI -> code

Key takeaway #6

The UI drives the code, not the other way around.

Starting with the code gets it backwards.

A process for doing it right

I’d now like to outline what the “target users -> goals -> tasks -> UI -> code” process might look like. There is any number of ways to do this, but I’ll outline a process that a programmer could actually use. No masters degree in design or UX professional staff required.

  1. Define the product. Write a short paragraph to explain what the product is for. What is its value?  How does it differ from existing solutions? Why does the world need it? Why will people care?
  2. Define the target users. Write a short paragraph to define the target users and their relevant characteristics.
  3. Define the user goals. Write a short paragraph to explain why the target users are going to use the UI. What goals do they have? What problems are they trying to solve? What is going to satisfy them? Disappoint them?
  4. Define the top user tasks. Write a short paragraph to outline specifically what the target users are most likely going to do. Focus on the top six or so tasks—not everything that might be possible. If you have defined more than six, you’re not focusing enough.
  5. Define the user’s context. When and where are they doing these tasks? What facts do they know and data do they have? What do they not know? What other tools are they using? What other solutions are available?
  6. Explain each top task to a friend. Suppose that you are explaining each top task to a friend who is a target user. Pay attention to how you would explain it: the steps, the order, the details, the language you would use, etc. Also pay attention to the things you wouldn’t bother to explain. The way you would explain the task in person is the right way to explain the task in the UI. This explanation drives the remaining steps.
  7. Map your natural explanation into a page flow. Break that task explanation into steps, give each step a title that explains what the user is supposed to do, and list the elements required to do it. Don’t worry if you aren’t sure yet or if only one page is required. You can revisit this step as needed.
  8. Design each page. Start with the page with the title that explains its purpose (exception: skip the title only if the purpose is so obvious that the title is silly). Give the layout a natural left-to-right, top-to-bottom flow. Start the task in the upper left corner or upper center. Emphasize the elements that need emphasis, and deemphasize those that don’t. Put related elements together so that their relationship is visually obvious. Map the interaction to the simplest, most constrained controls that do the job. To simplify the page, consider displaying optional elements on demand. Make the control to complete the task or advance to next step obvious.
  9. Simplify and optimize the task flow and pages. Evaluate the design to make the operation simple and natural. Remove unnecessary effort or knowledge. Try to eliminate any frequently repeated actions. Provide reasonable default values. Take full advantage of previous user input, and avoid having users reenter information. Prevent input and other types of errors. To simplify, focus on what users will do instead of what they might do. Visually, remove unnecessary visual elements (like boxes, lines, 3D, meaningless icons.)
  10. Review the communication Now compare the design to what you did in Step 6. They should match—after all, that’s the way you would naturally explain the task in person so any discrepancies suggest problems. For example, if you mention five options in your explanation, but your UI always offers 40, you’ve got a discrepancy.
    Make sure the purpose of each page and control is clear. Sometimes adding a word or two makes a huge difference. But don’t worry: the goal isn’t to have a lot text, but rather less, better text. Iterate as necessary.
  11. Review the results. Now compare the design to what you did in Steps 1 – 5. Does it fulfill its purpose and provide value? Does it enable the target users to perform their top tasks to achieve their goals in their actual context? Any discrepancies suggest problems. Iterate as necessary.
  12. Test with real users. You’ll never be sure that you’ve got it right until you test with real users. There are many ways of doing this, but direct observation is important. People have a tendency to blame themselves for mistakes, so they might not self-report all problems. Iterate as necessary.

Done!

If you design like a programmer, you might be doing a little of Steps 7, 8, and 9 before you start writing the UI code. That’s at best—at worst you are skipping all these design steps and going directly to writing the code. If so, mapping the data structures that the code needs to directly UI will be an obvious, natural thing to do.

Isn’t this a lot of work?

Some of you might be thinking: What a pain! I’d rather just map the code to a UI and take my chances.

Sometimes that approach works just fine. But if not, you’ll later have to choose between unhappy users and lost market share vs. starting over. This above process wins long-term because you are more likely to get the UI close to right the first time. Having to start over or fix fundamental usability problems complaint by complaint, bug by bug is a much bigger pain. But you know that, right?

Want to learn more? Check out UX Design Essentials and UX Design Basics

If you would like to learn more about the process I’ve just described, please consider taking my UX Design Essentials course or my online UX Design Basics course. I’ve designed both of these courses to help non-designers get started in UX design.  I’ve only scratched the surface here.


For more information, please contact info@uxdesignedge.com

All Content Copyright © UX Design Edge