I’ve been working a bit with Windows Presentation Framework lately. Don’t worry – it’s not as bad as it seems. No one has asked me to design a new cutting-edge user interface for their software. I plan on remaining on the back end as close to the data as I can get without burning myself, and closer if necessary. But the opportunities that exist for rich data visualization with WPF and WPF/E are too exciting to ignore, so even if I never write a line of production XAML, I still want to know enough about it to be dangerous.
Besides, it’s new and cool, right?
Yes, it is. And that’s what’s been scaring me. I’ve been thinking about usability, and how the temptations presented by WPF may overwhelm those developers who are tasked with designing that next great UI, causing them to forget their users and instead focusing on the cool new features of the cool new platform.
And we know that’s not good, right?
Boy, I sure hope we do by now.
Anyway, I’ve had a few random thoughts running around my head that my tagging service has categorized as “usability,” and once this tag bubbled to the top it was immediately correlated with WPF. So in no particular order, here they are: Random usability thoughts.
1) The Price Tower. The Price Tower is a 19-story building in Bartlesville, Oklahoma that was designed by the renowned architect Frank Lloyd Wright and has since been converted into a hotel without modifying his design. He’s a famous guy, right? He’s a master architect and artist who really knows his stuff, right?
This may be the case, but this building is a usability nightmare. Before I get into any details on that front, let me start off by saying the tower is beautiful – it has delightful angles and motifs that really embody the Frank Lloyd Wright look and feel, and it’s aesthetically very pleasing. But as a usable space it falls flat. Flat onto rusty metal spikes. The rooms themselves are split onto two levels, with a narrow, steep and angled stairway connecting them. The stairs are dangerous. The rooms themselves are lovely, but bizarre. There is not a right angle to be found. The ceiling in places is high and lofty; in others it is so low that I need to duck to avoid scalping myself. The bathrooms are tight and confined – if you can picture the last bathroom you used on an airplane and squeeze a shower into that space you’re not far off. And you can’t get to the toilet without closing the bathroom door, so there’s no way to escape the claustrophobia when nature calls.
There are many more usability horrors in the Price Tower (such as the hexagonal elevators that only hold one person at a time) but I won’t attempt to list them all here. But it sure is pretty!
2) Thrifty Rent-A-Car. This usability horror story is a little less blatant, but no less frustrating. I recently rented a car from Thrifty – I reserved it online using their web site to be picked up Sunday night when my flight arrived, and returned on Friday when my return flight departed. As part of the reservation process I provided profile information (name, address, phone, etc.), trip information (airline and flight number) and was in return given a reservation number, a daily rate and a total estimated price. Standard fair so far.
But my flight on Sunday was delayed due to weather, and I arrived at 11:30 instead of 9:30 as planned. No problem right? The reason you provide your airline and flight number when you reserve a car is so that if the flight is delayed, the rental company employees can wait for the delayed customers and not cancel the reservation or leave, right?
Apparently not. When I got to the rental counter, there was no one there. The very helpful young woman at the Alamo rental counter next door let me know that they’d all left. Gone. No note, no notification, no communication, no phone call, no nothing. And certainly no car.
I won’t go into the many negative emotions I felt at the moment. I was able to rent a Nissan Murano SUV from Alamo for one day, and got to my hotel before I fell asleep, which is really what matters.
But I was seriously let down by Thrifty. There is an implied contract between the rental company and renter in the exchange of flight information, and that contract was broken. When I called Thrifty the next day to ensure that I still had a car waiting for me and told the “customer service” representative about my disappointment, the only thing that he could say was “we go home at eleven.” I won’t go into more frustrating details, but I certainly will never rent a car from Thrifty at this location if my flight is scheduled to arrive later than mid-afternoon. It’s just not an acceptable risk, because a rental provider that doesn’t reliably provide rental cars isn’t usable.
3) Nissan Murano. (http://www.nissanusa.com/murano/index.html) As I mentioned above, I rented this SUV from Alamo when there was no service at the Thrifty counter. I wanted a compact car (I don’t like driving large SUVs) but this was the best vehicle available. I drove it for the day on Monday, and took it back to the airport Monday evening so I could pick up my reserved car at Thrifty. I didn’t pre-purchase fuel, so I stopped off at a gas station near the airport to fill up the tank before returning the car.
This should be a simple operation, right? There is a standard way to do this, right?
First, I reached down to the floor to the left of the driver’s seat to pull up the little lever that is there on 99% of the cars I’ve driven in the last five years. Nope – nothing there. Next, I looked over the dashboard to see if there was a “fuel door release” button. Nope. Then I looked inside the glove compartment to see if there is a release button in there, as I vaguely remembered some older cars having. No go. So I got out and looked at the fuel door itself to see if it was designed to open manually from the outside. And this was not the case. WTF? What other options could possibly exist for this simple task? I could think of none, so I repeated the steps above several times, looking more closely and more slowly each time. I probably spent the better part of ten minutes doing this, to no effect. There simply was not a button or lever or anything to open the fuel door.
Then I found that thing you almost never find in a rental car: the user manual. I flipped through the table of contents and found the diagrams of the control panels. Four or five pages with diagrams; dozens of labels for details on the diagrams. No mention of anything related to fuel other than the fuel gauge. WTF? I then flipped to the index, found the entry for the fuel tank door and flipped to the center of the book where the topic was buried. There I found the instructions for opening the fuel tank door. Ready for them? This is what you need to do:
* Exit the car
* Close the driver’s door
* Insert the key into the lock on the driver’s door
* Turn the key twice clockwise in the lock on the driver’s door
* Remove the key from the lock
* Push on the right side of the fuel tank door
Am I allowed to say “WTF” one more time in a single blog entry? Who thought of this? Who approved it? Who failed in their review to allow this incredibly horrible and completely unusable design to make its way from the drawing board through manufacturing? And perhaps even more importantly, where are their bodies buried?
To be fair, I’m sure that this usability disaster would be greatly lessened with effective training, but to be blunt, training should not be required to complete a simple task for which a standard solution is ubiquitous. Nissan’s decision to reinvent the wheel, to implement a proprietary solution to a well understood function for which a standard solution already exists resulted in an incredibly negative user experience.
So what does all of this have to do with WPF? My concern is that developers will give in to the siren call of new features to build UIs that they could never build before just for the sake of doing it, without remembering all of the usability practices and guidelines that “applied to the old tools and technology.” So I’m still very excited about the new capabilities that WPF provides, but that excitement is tempered with more than a little trepidation on how real developers in the real world use these capabilities to build applications that are not only beautiful and cool, but also usable…
 Or should that be “and closer if possible?”
 Pun intended
 I don’t know exactly where they’ve come from or who installed them, but I have a serious number of background services running all the time. Even though they’re supposed to all run at lower priority so that their threads don’t impact the performance of mission-critical threads, sometimes it seems that this isn’t always the case these days. Perhaps I need a hardware upgrade…
 The word “narrow” does not do these stairs any justice. Although I did not measure them, I would be surprised if they were more than 15” wide, and amazed if they were more than 18” wide.
 Instead, ask my colleague Ted Malone ;-)
 Although to his credit, he did say it over and over again, so at least he was consistent…
 Yeah, the usability link is a little weak for this story, but it’s a necessary lead-in to the next one.
 I did not have this in mind when I started writing, but this sure sounds a lot like the Office 2007 “Ribbon” UI redesign, doesn’t it? I personally love the ribbon and love Office 2007 in general, but because of this rant against Nissan I finally better understand where people are coming from when they rail against the removal of menus and toolbars in Office 2007.
 Oh yeah – that’s what we were talking about!