These things I believe about software development and user-interface design.
1. Why write code?
Software is for humans, not for computers.
Software is only as good as the improvement it makes to a human being’s life.
Are we making someone’s job easier? Letting them have more fun? Helping them learn? Helping them keep in touch with friends and family?
Are we making the world a better place?
2. What do people want?
Most people do not want a computer.
They don’t even want software.
For us software developers, this is a painful truth.
If people don’t want a computer, why do they use one?
- Email — for writing to other people.
- Instant messaging — for talking to other people.
- The web browser — for reading what other people have written.
- Word processing — for writing something you’re going to print out and show to other people.
- Graphics — for creating artwork. To show to other people.
- Presentation — for communicating your brilliant plan. To other people.
- Games — especially games that you can play online. With other people.
- Social networking websites — Enough said.
The computer is merely an intermediary. A poor and frustrating one. It is a necessary evil that people put up with in order to get what they want.
What they want is a better way to talk to each other.
3. Why does software succeed or fail?
We software developers, being not exactly social creatures by nature, must work extra hard to understand the social impact our software will have. If the social effect is not what people want, the software goes unused.
We software developers, being not exactly average users, must work extra hard to understand how average users will relate to our software. We see the trees, they see the forest.
We software developers have often been confused and frustrated when a clearly superior technology fails, while a clearly inferior technology spreads like wildfire and takes over the world.
We were surprised because we want each technology to be judged only by its cleverness, its raw power, the cleanliness of its architecture, the purity of its ideas. We were blind to the user experience, to what each technology meant in the bigger picture of a person’s life.
To the people buying and using the “clearly inferior” technology, exactly the opposite was true.
To the user, the interface is the product.
4. Why is there not more Linux on the desktop?
For open source software to take over the world, we’re going to have to do a lot better at user interfaces than we have been doing.
How do I know?
Open source has already taken over the invisible parts of the world: the servers, the infrastructure, the things users need not touch directly.
Mozilla, the most user-experience-focused of open-source companies, has the most adoption by end-users.
People say things to me like, “Linux is only free if the value of my time is zero.”
These are not coincidences.
At one time, the way of open-source software development was thought impossible. But the techniques were invented. The way became possible; then it became successful. Now the techniques are becoming widely known.
The way to make open-source UI design successful is still unclear. We must invent the techniques.
5. Are users dumb?
User interface design is not about dumbing things down for the poor stupid user.
We software developers, understanding the software as we do, find it easy to look down upon those who lack our understanding.
This is wrong.
Users aren’t dumb. They just have better things to do with their lives than memorizing the internal data model of our screwy software.
When software is hard to use, don’t make excuses for it. Improve it.
When a user makes a mistake, don’t blame the user. Ask how the software misled them. Then fix it.
The user’s time is more valuable than ours. Respect it.
Good UI design is humble.
6. Is UI design marketing?
User interface design is not marketing.
Software developers loathe marketing, so if they think that UI design is marketing, then they will loathe UI design.
The qualities of software that make for a good advertisement or computer-store demo are not the same qualities that make software usable and pleasant to work with long-term, day-in day-out. Often these qualities are opposites.
A shopper may choose the microwave with more buttons, because it seems “more powerful”. However, the shopper will soon find out that it does the same thing as any other microwave, you just have to spend longer figuring out which button to push.
It is easy to fool people into buying something that is against their own best interest.
Don’t do that.
7. What is the task of the UI designer?
Let us talk about that microwave some more.
The microwave with the most buttons may be most popular, but it is not the best microwave.
The best microwave has no buttons at all.
It doesn’t need any buttons because it already knows how long you want your food cooked and how hot. You never need to set the clock, either: it’s just always right.
The no-button microwave may not be reachable, but like a guiding star it shows us the direction we should travel.
Users do not know what interface they want. Users do not know what features they want.
Users know the tasks they want to do, and the problems they have.
We learn more by watching the user work than by asking the user.
The job of the UI designer is to provide what the users need, not what the users say they need.
It is to make tasks easier, not to provide features.
8. Where is the science?
User interface design can be approached scientifically. But usually isn’t.
Until we observe people using our software for real, our design is guesswork and superstition.
These things can be measured and given numbers:
- What program features are being used most frequently, and least.
- The number of mouse/keyboard interactions required to perform a task.
- The time it takes a user to figure out how to do a task.
- Rates of error.
- How quickly task-completion-time and error-frequency decrease as a user gains experience.
An interface’s efficiency and learnability are empirically determinable quantities.
They are not matters of opinion.
Every user is different, but that’s why we have statistical methods.
The science of design can tell us that interface foo is X% more efficient than interface bar, but bar is Y% more learnable than foo.
Choosing between foo and bar — that’s where the science ends and the art begins.
9. Is change good or bad?
Change has a cost. Change disrupts the user’s habits. Change forces the user to learn something new.
Sometimes the new UI is so much better than the old one that the change is worth the cost.
Sometimes it isn’t.
The trick is knowing when change is worth it.
10. What is the evil of the bad interface?
It is a sin to waste the user’s time, break the user’s train of thought, or lose the user’s work.
Bad user interfaces do all three. Frequently.
Most interfaces are bad.
I do not use the word “sin” lightly.
Because of bad user interfaces, an action taken based on a reasonable assumption or out of habit often results in broken trains of thought, wasted time, and lost work. This is called “user error”, but it isn’t. It is programmer or designer error.
When we blame the user, we teach them that technology is perfect and that the errors are their own. Because technology is hard to use, we are teaching a generation to be afraid of technology. We are teaching a generation to believe in their own stupidity. This is a sin, too.
It’s not the user’s fault.
July 17, 2008 at 2:51 am
At this precise moment, I became enraged.
July 17, 2008 at 3:24 am
[…] This is wrong. – These things I believe. […]
July 17, 2008 at 5:19 am
[…] a different note, if you haven’t read Jono’s post on software development and UIs yet, DO IT NOW. Definitely one of the best posts I’ve seen around the blogosphere in a […]
July 17, 2008 at 5:25 am
[…] Jono DiCarlo, a former fellow co-founder of Humanized, and a gallivanting user experience firebrand, has condensed his design experience into a thought-provoking and irreverent manifesto. […]
July 17, 2008 at 7:36 am
“Software developers loathe marketing, so if they think that UI design is marketing, then they will loathe UI design.”
That’s a pretty strong judgment. I’m interested in why you believe this to be so, and how you define ‘marketing’.
July 17, 2008 at 9:02 am
This is a very strong piece and I agree wholeheartedly. Generally speaking, software developers do not make good UI designers for the reasons you mentioned and graphic designers fail mostly for several other reasons.
It’s an expertise that isn’t taught in school or has extensive reference materials as other software design practices. And yet, it is probably the most important aspect of a software product or service.
July 17, 2008 at 9:53 am
[…] More RSS Filed under: software, usability Pictures from the sky » […]
July 17, 2008 at 10:51 am
It’s interesting to see the conflict in your own beliefs — how can you trust people to choose the best software for themselves if they can’t choose the best microwave? I frequently struggle with all the variations of this question. Almost always I fall back on Nathaniel Borenstein’s advice, “Listen to your users, but ignore what they say.”
July 17, 2008 at 12:39 pm
Great Post! Thanks for the hints!
July 17, 2008 at 12:43 pm
Awesome. I would add Jeff Atwood’s “any time you’re asking the user to make a choice they don’t care about, you have failed the user” (which you’ve quoted before).
Also, I would add: user interface design is not fluffy (contrary to what some kernel hackers believe).
July 17, 2008 at 1:39 pm
[…] https://jonoscript.wordpress.com/2008/07/17/these-things-i-believe/ […]
July 17, 2008 at 2:19 pm
I recently wrote a very similar post on my blog, called “UI Design for Your Wife.”
http://freememory.org/2008/07/04/ui-design-for-your-wife/
Thanks for the great post.
July 17, 2008 at 3:10 pm
[…] Archivado en: Innovacion, gadgets — pablobrenner @ 12:10 pm Me cruce con este post, y realmente me parecio excepcional, refleja muy bien como pensamos la gente de software, y como […]
July 17, 2008 at 3:10 pm
[…] Artpículo original de Jono DiCarlo Posted in Uncategorized […]
July 17, 2008 at 3:22 pm
Nicely said, Jono. Regarding the marketing point, which seems to get people:
Jono’s point here is that you should not ask the question, “What design will sell?” It’s a philosophical point; if the purpose of the microwave is to make it easy to microwave, then you ask the question “What design will be easiest/fastest/least-frustrating to use?”
In this case, the research says clearly that the ‘marketing’ design (what sells) is “the microwave with the most buttons”. The ‘humane’ design (what is easiest/fastest/least-frustrating) is “the microwave with two dials: power and timer”.
The best products are those which go out on a limb with what “doesn’t sell” but is more humane, then convinces the consumer that it’s the better version.
July 17, 2008 at 3:32 pm
[…] And in that vein, when I thinking of what I do all day, this article really resonated with me: Are we making someone’s job easier? Letting them have more fun? Helping them learn? Helping them k… Posted by proteanme | Filed in Uncategorized […]
July 17, 2008 at 3:46 pm
And that is why I hate CodeWright! It offers the option of using Emacs key commands, and I jumped at it. But now it turns out it only supports a couple of the commands, so I’m constantly getting error messages…
Great post! 🙂
July 17, 2008 at 3:57 pm
[…] this excellent article. Posted by Lawrence Cawood Filed in Software Development Tags: […]
July 17, 2008 at 4:03 pm
Excellent, excellent article. The best I have read in a long time. Well done!
July 17, 2008 at 4:42 pm
Excellent post, i will be sharing this with the rest of my team as I subscribe to many of the same beliefs. Excellent writing.
July 17, 2008 at 6:30 pm
Great article! THANKS!!!
dave, http://www.TheHistoryBluff.com
July 17, 2008 at 7:03 pm
If this is what you believe, then boy, are you full of crap. Sorry to be blunt about it.
I hope you can find a new way to go a couple of decades from now.
July 17, 2008 at 7:58 pm
It’s all just a tool and the easier the tool is to use the more that it’ll be use.
July 17, 2008 at 8:56 pm
Excellent article..
>>It is a sin to waste the user’s time, break the user’s train of thought, or lose the user’s work.
Now if only Mozilla Firefox on Redhat would stop crashing 10 times a day when I drag the mouse on some highlighted text I would be a happy user!
July 17, 2008 at 10:00 pm
This article seems contradictory to me. I agree that software should not be designed from the ground up for marketing, but by your own admission, users don’t want to use any software. How did browsers, IM clients, social networking sites, etc become killer apps? Marketing.
Someone convinced those users that the world wide web was useful to them. Similarly, many companies make UI changes for marketing purposes. Microsoft changes the appearance of their apps to get users to feel that there is something new to them. Apple does this. Firefox 3 does this with it’s slightly different look without a lot of new functionality (from the GUI perspective). I realize the backend is significantly different, but users won’t just upgrade because the version number changed and they can’t see backend changes. That’s why marketing games are played with software.
July 17, 2008 at 10:22 pm
Please do not confuse an appliance with a computer.A computer is not an
Email ,Instant messaging , web browser
Word processing,Graphics, Presentation, Games ,Social networking websites .
These are only badly used byproducts of something far greater.
July 18, 2008 at 12:30 am
[…] These things I believe. « Not The User’s Fault (tags: manifesto ui ux design philosophy **) […]
July 18, 2008 at 1:09 am
But some people *want* the microwave with extra buttons, like audio-phools want the stereo 10x larger than they need.
Creating a UI with extra buttons is catering to a section of the market, often one with extra cash.
July 18, 2008 at 2:50 am
Thanks Jono – this is a list that every programmer should live by.
July 18, 2008 at 11:08 am
Then again, the customer is Not Always Right.
July 18, 2008 at 5:43 pm
You absolutely nailed this Jono. Perfectly said. The ‘What is the task of the UI designer?’ section is the perfect summary of user needs vs the job of the UI designer.
July 18, 2008 at 7:24 pm
[…] I think it started with the GUI. OS X’s GUI just works. It’s designed well. Buttons and options feel like they’re laid out in logical places. The learning curve was […]
July 18, 2008 at 11:11 pm
I am not a code writer, I am a user. I really don’t give a rats ass what the code is. I care about what I can do wih your prograam, and how easy is it to use. I hate software from competing cpmpanies that supposedly do the same things, but force me to learn how to make them work. A case in point Microsoft versus Corel. Try writing something in Word Perfect and sending it to a Microsoft user. If I want my reader to read my message, “I” have to learn the hard way to “save,” in another mode. Quattro and Excel are even worse.
Try using a photo shop program sometime. Especially, if you are not an artist. They all have tons of features, but who the crap has the time to learn them all.
I want software that thinks and works like I do, not software that I have to struggle learning how it thinks and retrain my feeble brain to work like it. Go to the help screen, you say. Well, no offense meant, but code writers speak and write using a vocabulary that is unique to their world. I suggest you try reading a receipe for making bread that is written in Greek, then try and bake bread using the words in front of you.
Your post should be the first thing all code writers memorize. They should also spend four years of intensive study learning how to implement your ideas and understanding them before they are allowed to touch a computer.
I loved it!
July 19, 2008 at 7:48 am
[…] It is easy for designers of interfaces or of software to get sidetracked. It happens, lots of times because of upper echelons, sometimes because we forget we are not the typical user. So we have feature bloat, design that needs a user manual to operate, software that has a lot of features and all broken, keypads on microwaves. In all these ways, we show how much we forget our purpose and our goals. […]
July 19, 2008 at 4:34 pm
@spanky: Sure, lots of people want to hurt themselves. That doesn’t mean I want to profit off helping them, though.
July 22, 2008 at 8:20 am
[…] found a very interesting post in the Not The User’s Fault blog called These Things I Believe: a bit long for my standard but I strongly suggest all software developers to read it […]
July 22, 2008 at 11:25 am
[…] https://jonoscript.wordpress.com/2008/07/17/these-things-i-believe/ […]
July 23, 2008 at 10:36 pm
To use quantity of user base as the success of free software is just an oxymoron.
July 26, 2008 at 5:16 am
[…] is a topic I have very strong and passionate opinions of, and motivated by this beautiful prose by Jono over at Not the User’s Fault, these are my guidelines for user interaction […]
July 27, 2008 at 11:31 am
[…] is a topic I have very strong and passionate opinions of, and motivated by this beautiful prose by Jono over at Not the User’s Fault, these are my guidelines for user interaction […]
August 5, 2008 at 3:49 pm
[…] These things I believe. « Not The User’s Fault. […]
August 5, 2008 at 5:47 pm
Great points, but, with respect, none of this is new. (I’m sure you know this, but some of your readers probably don’t.) Interface design and usability are established fields with excellent books available. The best thing a software engineer can do is get off the web and go read some books about it. Learn from history instead of making the same mistakes over and over. Hire someone who specializes in design or usability (or both) to work on your projects.
August 5, 2008 at 6:20 pm
[…] These things I believe. To Do: Add to Digg | Add to Del.icio.us | Print This Post | Email to a friend | Leave a Comment […]
August 6, 2008 at 10:50 am
You almost had me, till the microwave. #7 is plain wrong, in my opinion.
Users don’t want a stupid tool outsmart them. They want features, and control over them. If I want my chicken well cooked, I’m not going to trust my oven to know how “well cooked” is for me. I’m pushing buttons and levers until I get exactly what I want.
People love Photoshop. It’s the clumsiest, messiest interface ever made. But it has features, and control over them.
August 7, 2008 at 3:15 pm
Perfect case in point to illustrate item #3: To the people buying and using the “clearly inferior” technology, exactly the opposite was true. To the user, the interface is the product.”
Hasbro thought people would want to use ‘real’ Scrabble and tried to build a ‘better’ version. The people didn’t, and it’s not.
They think they’ll win if they bring Scrabulous down, but they lost the hearts and minds war with Scrabble fans everywhere.
Hence, Facebook groups like: We Hate Hasbro’s Facebook Scrabulous, which provides email addresses for The Suits at Hasbro and Electronic Arts. Because they want your feedback.
http://www.facebook.com/group.php?gid=37928471248
August 7, 2008 at 3:45 pm
[…] better user-interface design in order to take over the world. Jono at Mozilla Labs discusses his 10 favorite issues with UI […]
August 7, 2008 at 3:46 pm
Also on the “UI vs. marketing” thread:
The user experience designer’s job is essentially no different than what the industrial/product designer’s job has been for a century: To design products that people want to use. A product that is empirically hard to use but that people perceive as easy or fun to use because of delightful UI characteristics can be successful. A product that makes a lot of noise and takes up a lot of space and has a complicated interface might be desirable to many people because it makes them feel powerful using it, despite the measurable waste associated with the design.
A designer who neglects marketing concerns and designs a product that people see as undesirable (because, say, it lacks a sexy list of features or a glossy interface) is just as bad as a designer who neglects production and creates something that is expensive and time-consuming to build (manufacture, program, whatever).
Unfortunately for designers who favor elegance and simplicity, there is a large cohort of consumers and purchasers who feel a *lot* better about instead owning products that they are confident have the most buttons and bullet points, regardless of usability.
If efficiency isn’t generally seen as important to a product’s users, then designers who do think it’s important need to make the product scream out to users “I am simple to use, and in case you didn’t know that’s a good thing. Don’t buy the competitor with all the bloated features, buy me instead and you’ll be happier.”
That’s a designer being a marketer, but in a good way. 🙂
August 7, 2008 at 5:08 pm
Excellent points all. Satchmo thinks that users don’t want a tool to overpower them… I don’t think that’s what you’re saying. The tool should do its job. Period. Microwave’s job: cook my food. Buttonless microwave gets it right every time and that’s not attainable. The toaster doesn’t seem to have a problem with on/off. Nor does my light switch. And when I also want a dimmer switch, well, that’s an additional “button” worth having.
August 7, 2008 at 7:25 pm
Excellent post. I’ve heard many a programmer look at UI with disdain, even preferring command-line interface to a GUI. We all need to remember that what we create should make our lives better.
I particularly liked the microwave analogy. A few years ago I had to buy a new dishwasher. I was amazed by the models with a myriad of buttons, multi-level racks and other doo-dads. What I really wanted, and what I got — was the the quietest dishwasher money could buy (that cleaned well, obviously) with the simplest interface (just 3 buttons, as I recall).
Very often less is more.
August 8, 2008 at 12:04 am
I like this article. I wouldn’t compare a microwave (appliance) with software … but the point about usability is still valid. I also agree that blaming users is still stupid.
It reminds me of this article: http://headrush.typepad.com/creating_passionate_users/2006/11/two_simple_word.html
August 9, 2008 at 7:34 am
Now, see, RookieMom got it just right: – think about light switches. Door handles. A hammer. A comb.
The world is full of things that just work just right and (almost) never stop working – you’ll probably say “yeah, but these objects are inanely simple, can’t compare” but you just try imagining inventing ANY of them if their very concept were unknown, or to break them down scientifically…
The real problem of the computer and all related is that we (that is, all manner of users, even the people who physically build them – these folks, along the life-line of our loved/hated machines, are users too, just not end-users) have been forced to make explicit a lot of processes that kinda just go on (similar to just opening a door or flicking a switch).
We have to deal with HOW we work and play, and to do it in a manner that pins it down – and this needs to be communicable to others in a way that conveys the exact problem. Then someone else, not the problem-haver, has to decipher how this translates to the ins and outs of the tool.
Yikes.
– and the convolutedness of the previous paragraph is nothing compared to the topic itself 😉
So gone are the functional items from door light switches to violins, that just came into being over time and eventually got everything just right – well, they’re not gone, but you know what I mean.
Now it’s the reality that technological advances leap out every week at least, and someone has to make’em work for everyman – it seems the first step in making that process better would be to stop making utterly crappy user experiences…
August 10, 2008 at 8:39 am
[…] Not The User’s Fault — These things I believe. "Because of bad user interfaces, an action taken based on a reasonable assumption or out of habit often results in broken trains of thought, wasted time, and lost work. This is called “user error”, but it isn’t. It is programmer or designer error. When we blame the user, we teach them that technology is perfect and that the errors are their own. Because technology is hard to use, we are teaching a generation to be afraid of technology. We are teaching a generation to believe in their own stupidity. This is a sin… It’s not the user’s fault." […]
August 11, 2008 at 11:14 pm
[…] can microwaves teach us about commercializing web services? Thanks to a wonderful post from Jono at Mozilla Labs, a great deal: “A shopper may choose the microwave with more buttons, because it seems “more […]
August 12, 2008 at 3:50 am
Interface design is hard, be it for applications, Hardware, and web pages. The user is not interested in having to think to figure out your UI, they have a purpose and want to get their job done. When I was shopping for a new microwave, it was frustrating trying to find one with a nice simple, easy to use interface. I ended up with one I need to study the control panel whenever I want to do anything more than heating using the timer.
August 15, 2008 at 2:40 pm
[…] DiCarlo at Mozilla Labs documented his feelings about user interface design in a great post titled These Things I Believe. While I do not agree with him across the board, he does make some interesting points, and helps […]
August 26, 2008 at 4:23 am
The reason free software hasn’t taken over the desktop is the majority of people only want to view the web, and send emails. Both of which (web and email) are run by free software operating systems (invisibly) by people who want to make the web. So in a way you could say that it’s actually free software that they desire, however proprietary software seems try and always get in their way. 🙂
September 5, 2008 at 2:12 pm
[…] These things I believe. « Not The User’s Fault (tags: design ui user hci ux usability philosophy) […]
October 2, 2008 at 4:09 am
[…] 1. Why write code? […]
October 2, 2008 at 10:01 am
[…] 1. Why write code? […]
November 24, 2008 at 11:44 pm
If I could summarize “These things I believe”, it would be an obsession with crisp, useful design. This is hard to define, but you know it when you see it. The obsession keeps you at it until you arrive at a minimalist design that does the most for the user with the least amount of effort on the user’s part.
January 19, 2009 at 10:11 pm
[…] манифесте (который он назвал “То, во что я верю” These things I believe, – прим. […]
January 30, 2009 at 1:34 pm
Design of this blog sucks. It has very bad usability.
February 10, 2009 at 6:22 pm
[…] These things I believe. ´ Not The Userís Fault […]
March 5, 2009 at 5:50 pm
[…] disimak. Microsoft blames users for malware on Vista PCs: News – Security – ZDNet Australia These things I believe. Not The User’s Fault Implementing ERP: blame it on the user | Results2Match Microsoft Blames Users for Vista Problems […]
January 30, 2010 at 9:51 pm
[…] These things I believe […]
March 21, 2011 at 7:20 am
[…] quotes from a thoroughly excellent user-focused manifesto on software development and interface […]
November 26, 2011 at 3:59 pm
Brilliant! I’ve been telling my university students this for 25 years: “To the user, the interface is the product.”
But the other stuff is good too. Well said. Sadly, many readers will be too defensive to grok your message.
November 28, 2011 at 7:11 am
People have become lazy and stupid and I’m not afraid of saying it. 80% of the human beings are idiots.
To use and axe you have to learn how to use it in order not tu chop your fingers off.
If order to drive a car you have to learn in order not to hit the child in the front of the school yard.
Why the f*ck you stupid human beings want to be fed in area of IT. It is no different than driving, singing, cooking, e.t.c.
Pay attention just a little bit and you’ll gain more from IT sphere as it has become a part of our daily life just like cooking. If you don ‘t want to know anything about IT, then just like with food – go to the restaurant and PAY MORE as you cannot cook!
Sloppy, lazy hipsters…