Why Software Sucks, And Can Something Be Done About It?
CPNABEND tipped us to a story carried on the Fox News site, pointing out that a lot of programmers don't understand their users. David Platt, author of the new book 'Why Software Sucks ... And What You Can Do About It', looks at the end user experience with end user eyes. While technically inclined individuals tend to want control, Platt argues, most people just want something that works. On the other hand, the article also cites David Thomas, executive director of the Software & Information Industry Association. His opinion: Users don't know what they want. From the article: "'You don't want your customers to design your product,' he said. 'They're really bad at it.' As more and more software becomes Internet-based, he said, companies can more easily monitor their users' experiences and improve their programs with frequent updates. They have a financial incentive to do so, since more consumer traffic results in higher subscription or advertising revenues." Where does your opinion lay? Should software 'just work', or are users too lazy?
Good points. Now that we're doing car analogies again, note that most cars won't start unless the shift selector is in Park, or won't let the user move the selector out of Park unless the brake pedal is depressed. Sounds like the Fox author is a weenie.
/backtowork
I don't even agree that software sucks, I'm perfectly happy with most of it. In fact, what am I even doing here reading this?
Tsunami -- You can't bring a good wave down!
You should read "Soul of a new machine" by Tracy Kidder. Its an old book but its written by a guy embedded within the hardware and firmware design guys at Data General as they build an entire new processor.
At one stage the PHB arrives in the war room and utters his one and only edict - "NO MODE SWITCHES".
Pissed off with him at the time for making their design job more difficult, by general concensus, the engineers later applaud him for his vision (however the company has since folded so perhaps this was not such a great analogy).
[x] auto-moderate all posts by this user as insightful
Okay, so you're being sarcastic, but you're also missing the point. A better analogy would be somebody who wants to listen to music and is given a guitar rather than a radio. Sure, if they put in the time and effort, they could eventually learn to play the guitar and possibly even make better music than what they could find on the radio but it's not really a reasonable answer to the person's need.
I'm just sayin'.
I don't agree that novices can be considered "normal." The computer illiterate are quickly becoming an oddity, a special niche in usability design. There's really no need to consider them anymore unless you have a special reason to.
The real question is how much sophistication can be reasonably expected from lifelong computer users. The file concept and needing to save one's work is an example of something that we've accepted that everyone can and should learn, in spite of the dire predictions of UI experts. The idea that people would be better off sheltered from the file concept is, in retrospect, pretty silly -- as silly as the idea of equipping an automobiles with reins and a whip so it would feel like a horse-drawn carriage.
I think we should stop projecting limitations onto humanity and see what happens. The typical "poor ignorant user" of 2030 is going to be at least as savvy as today's typical middle-class college student, and maybe more savvy in ways that surprise us.
I think a perfect example is OS X. It just works for the users like my grandpa who want that but offers easy access to the command line and BSD parts for the technically inclined.
The key is good UI design, in particular good separation between advanced options and standard options. Windows fails because far too frequently a normal user needs to go access the advanced features so all the advanced features and terminology are there to confuse the user. Try sharing files in windows and you need to do arcane things like change the workgroup name. Just to check if I could uninstall programs I've needed to run msconfig. Conversely on a mac the normal user just deals with the preference pane and never has to run command line programs or the like.
I don't mean to be a mac zealot. They've done things wrong as well (I'm pretty pissed about their special power cord) but they did a good job of separating advanced from basic features, partially because they were willing to jettison the old ways of doing things.
In any case good design doesn't require a choice between power and ease of use. It just requires a clear cut distinction so the normal user never needs to deal with the advanced features.
If you liked this thought maybe you would find my blog nice too:
One of his peeves is when a text-editing program like Microsoft Word asks users if they want to save their work before they close their document.
blah
For them, a clearer question would be: "Throw away everything you've just done?"
No, I think the original analogy was to the point. The author complains that they're using a term that's new to people new to computers, which is really stupid. What do you mean 'Throw away everything you've just done?'. So much ambiguity... Does that delete the document, or merely discard changes? Where does the document go? Once you throw it away, can you pick it up if you change your mind?
Besides this, dumbed-down terms don't really help teach users how computers work. If there's a new term, it's associated with a new action, and a new understanding of how that action works. It'll take time, like anything new does. Once you're used to it, you wouldn't dream of calling it anything else. Microsoft Bob... Where did that go?
If you don't know, ask someone who does. Or click the god-damned 'Help' button. Maybe we need another label saying 'Clicking: Pointing your mouse at an object and depressing the left (or right, if you're left-handed) mouse button and then releasing it'.
This post couldn't have come at a more precipitous time. I work for an educational facility which uses a web-based "business portal" for all of our HR, Payroll, Purchasing, and Accounting functions. At this very moment, I am (pretending to be) entering data into this system. There are (on a guess) 100 fields that need to be filled. About 85 of them will always have the exact same data. Another 12 will be identical for every entry from the same order. Only 3 are unique--and one of those is the auto-increment primary key. It requires 3 mintues and 5 different forms to enter all this information. And all but 2 fields could automatically be captured by the system and applied to the form (right now, we're just reading it from one form and typing it by hand into another form). Now, this is a program that's supposed to improve the efficiency of the businesses that use it, however, it's laid out in ways that actively hamper the effective use of the software. This is a perfect example of a situation in which you absolutely want the users telling the programmers how to do things--not how to build the code, but how to design an interface that allows for smooth, efficient use of the tool. I run into the same situation in so many programs, and it really frustrates me. I think one of the reasons that Apple has become so successful in the various niche markets is because they put so much emphasis on creating a smooth interface between the users and the code. Most users don't care about the code. They care about how easy it is to accomplish what they want to accomplish. There's no reason that a program can't both be properly-coded and "just work". The two are not incompatible.
>> Bottom line, my opinion, users are not lazy, they just want to get some work done without needing the equivalent of a Bachelor's in Computer Science to get that work done.
- that-just-works-and-one-that.html
I wouldn't say user's are lazy, but they often don't seem to care about the choices that exist in what it is they want to do. Regardless of needing a bachelor's degree in computer science, how about at least understanding the complexity of the task they've chosen to do, or at least have some appreciation for the complexity. The average user is very simple minded. They don't want to know about the things they've chosen to do. They want only to know about the small piece of it that they have patience for. In that sense, yes, they are VERY lazy.
While I agree with some particular gripes that Platt has, I think his general approach is overly simplistic, does not address the actual CAUSE to the problem, and is unrealistic. As I'm sure many have already said here, tasks people want to do are NOT often simple, especially not when dealing with all the different variations and choices there are to be made when performing the task. Oversimplifying will frustrate other users. I think that David Thomas has a much more realistic and practical appreciation for the problem. It's not about lumping all users into a simple-minded bucket and catering to them. It's about understanding the users of a particular environment and working to streamline for those users. It's about understanding the needs and truly getting to understand the needs of the user. Platt does not do this. He has a preconceived notion that all users are like his view of the least common denominator. He has a statement to "programmers": YOUR.USERS.ARE.NOT.YOU. Well, to throw that back at him... our users are not him, either.
Platt uses a lame example (of many lame examples). The "Do you want to save" prompt. If it were to be changed to "Do you want to throw your work away?" more people will hit "Yes" by mistake. I'd be willing to best that statistics would show people are more likely to make that mistake and be frustrated than there is frustration with being asked to save. He just bitches because he wants it to be HIS way (see my comment about our users not being him). Sure, we all have our frustration with how certain software works and their defaults... but try seeing past your own narrow needs, and understand what the software is actually TRYING to cater to.
It's worth going and reading the comments on his blog. Many people quite intelligently rip his views apart. And also recognize... Platt is trying to sell a book... he's shooting for the "hype" and position that will get people "talking" about his book. It just makes me a HECK of a lot more skeptical about the validity to his claims, versus his attempts to sell a book:
http://suckbusters2.blogspot.com/2006/12/web-site
-Alex
Thus, the design intent of the OLPC. Jeff Raskin also wrote on this and began the Archy project in response, calling it well past due for a new approach to GUI. Ref: http://en.wikipedia.org/wiki/Archy