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…
First, for the good part. Here’s what I like with the Windows Explorer redesign:
I’ll add to this list as I discover more things, but this is it so far.
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.
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:
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:
Well put!
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.
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:
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:
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.
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.”
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:
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!
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.
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 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.
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:
(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:
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).
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?
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.
OK, enough about Microsoft’s problems…what does this mean to you? Here are the key takeaways:
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.
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.
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.
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.
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.
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.
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:
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.
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.
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:
And as a courtesy to the wGetGUI developer, I really should add one more:
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.
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.
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.
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.
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?
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.