"I plan creating a prototype for my new XXXX application, whatcha think it should be - a web-app, or a desktop app?"The answer was:
"90% of your users are idiots who won't be able to tell the difference"
I think I just found my answer to the ultimate question of life universe and everything and it's not "42".
It's "90% of your users are idiots".
Now thats a questionable term to describe your customers. I don't think 90% of my users are idiots. But. That's the way to think of your users when making design decisions and building your interface.
- Wondering if you should make this main button big or small?
"90% of your users are idiots" - Wondering if it should be one button or two?
"90% of your users are idiots" - Wondering if your installer should ask all those really important questions, like, how it should name the installation folder under "Program Files"? Or just perform the default action with no questions at all?
"90% of your users are idiots" - You're absolutely sure that the "pricing" page of your website should have fifteen different "plans" of your SaaS application?
"90% of your users are idiots" - Wondering if you should publish the installer as a ZIP-file or as an EXE-file?
"90% of your users are idiots"
Please let me be an idiot. I want things to "just work". Don't make me figure my way through all the setup procedures. "Don't make me think" (c) Steve Krug.
I've been a computer nerd since I'm 11. I mean, I love the command line and stuff... But when I urgently need a port-scanner to test my server vulnerabilities after it's been hacked, I don't want the nmap tool, with a dozen of command-line options and a bunch of drivers it requires me to install. I just want a big red "scan" button. I'm an idiot, OK?

59 comments:
Great post, but the nmap part is kinda wrong. I never had to type an option or install a driver.
$ brew install nmap
$ nmap your.site.tld
This is one reason why Apple has been so successful in the last decade. They've taken products that were viewed as complicated by many and made them virtually 'idiot' proof. No one has ever gone broke underestimating the average user.
Nice Post!
Most software could ask only if you want "advanced" for advanced instalation/use or "basic" for "red scan button" and simply work. It all depends on your urgency.
Depends somewhat on your audience. But generally it's very true. Go read Design of Everyday Things to learn more about this topic.
http://www.youtube.com/watch?v=o4MwTvtyrUQ - Google stopped random people in the street and asked them "What is a browser?". 8% knew.
Also, if you want to feel how the average user feels when shopping for any kind of tech service - go shopping for a mattress. Seriously. Tons of specs and no idea which are important, uncertain pricing, complete lack of standardization...
My boss continually tells me to develop for third graders - maybe I should just go with the 90% of users are idiots to ensure I'm reaching ALL of my target audience.
90% of designers, developers and managers are idiots oblivious to the fact that 90% of users are not idiots.
I think a better way of thinking of it is that "90% of your users have better things to do that try to work out how to use your stupid website". If you make me work hard to use your website then I'll go and spend money somewhere else. Now who's the idiot?
--nick coster
90% of users are certainly idiots wherever they are. I developed within a secure corporate network for 7 years. If you can please the idiots with simplicity your job is well done
The other point of the blog post is that 100% of people are idiots some of the time. If you're an ultra-techie, under-the-hood-loving genius on matters of software, web sites, OSes, etc...you still might be a total idiot when it comes to auto maintenance, or home repairs, or choosing the right clothes for a customer meeting. But the blogger's point is that that's OK. The same guy who's an idiot on web site xyz.com might be a freaking genius foreign policy analyst whose insights on some issue might save lives. So the message is: Be Generous
Regarding the ability of Apple to take a complex system and make it Idiot Proof.
The issue I have with this is that when you make something Idiot Proof they just go and build better idiots
Good article!
I am a developer in C# and C++. But once I tried to install PHP on Windows. I spent two hours and failed. I haven't tried again.
Mikhail.
+1 Rick c:
Most users are using your software to get a job done, not because they like using software.
I think there is a slight variation of this that is a better way to think about it
*90% of your users don't give a flying rat's ass*
It's not that they are idiots (although some may actually be), it's that they simply don't care.
Most of them are thinking about the problems they are having with their girlfriend or who is going to make it past this round of the Bachelor or how to pay off their credit card.
The most important part to realize I think is that software is nothing but a tool, a means to an end.
Inventory software is not about the software, it is only about managing inventory. If a user can't figure the program out, it's probably not because they are an idiot, but because they care less about the software than they do about what they are going to be reading when they take their morning dump. All they want to do is do the inventory and then get the fuck out of there so they can meet their friends at happy hour.
Facebook? Nobody will ever care about Facebook as a platform or what language it uses or how it works. They do care about staying connected with friends in other cities and seeing what their neighbor had for lunch. Facebook is simply a tool to get that information. If they can't figure out how to easily creep their ex, they'll move to another site where they can figure it out.
TL;DR; It's not that they are stupid, it's that they just don't care.
you spent 2 hours and FAILED to install PHP...on WINDOWS?
its a frikken wizard, you rarely even need to change things you just press next til its done. maybe you need to set up your email in the php.conf file but thats about the extent of what you should ever need to do.
i hate the design based on 90% of users are idiots because the 10% of non idiots suffer for the majority. microsoft loves this philosophy and take great lengths in .net/visual studio to say how much more they know about these things than you do. "nope you cant access a form from a different thread that could lead to some difficult to debug problems and we wouldnt want to hurt your tiny primate brain would we" fuck you visual studio!
everything they make is built around the idea that you dont know what you are doing and is infuriating if you do, especially if you know better than they!
why i like linux, it never insults my intelligence.
There is a law of reciprocity in 'idiot'. If you managed to cultivate 90% of your users to be idiots, 90% of your users think the same about you. Sure 100% pay your expenses, but they may shrink in favor of a less idiot cultivating competitor. It all boils down to KISS. (keep it simple, stupid)
OK. It was a few months ago: the PHP installation required some extra Windows tools and some manipulation with directories.
As for .NET, it is great. Unfortunately not everything is well explained. You must use InvokeRequired for checking and Invoke to call a method from another thread. Once you know that it works fine for Forms and other controls.
Mikhail.
90% of devs are idiots. they assume you knew exactly what they meant when they created a process that required you to edit an xml file on a linux machine when you never heard of PuTTY. No, 90% of users get paid to do something other than figure out your convoluted mess. There needs to be a focus on usability broken down to architects to the point it becomes as natural as making a class.
Once mankind learned how to create things, everybody became an 'idiot'. No-one knows how to make everything, and no-one knows how to use everything that has ever been made...We all only know our own little circle (Granted, some circles are bigger than others), but ultimately...WE ARE ALL IDIOTS!
Heheh.. great post!
Most people APPEAR idiots in front of PCs, but it shouldn't be an excuse for designers to make bad UIs.
The best technology is transparent, or "just works", as they say.
Some of you guys are over analyzing big time - think of 90% of users being idiots, regardless if they are or if theyre not and they just want to click and go without thinking about it - get over it.
90% of your users just want it to work.
The other 100% (yes, one hundred percent) pay the bills.
If 90% of your users are idiots, then the biggest idiot of all is the one that hired them!
A little better filter at the door would be advised.
100% pay the bills? Really? I'm calling BS on that. 50% of your users are pirates who don't pay a red cent. And 100% of those 50% are idiots.
I feel for the person writing this article as I have 'been there and done it' - that is been a developer who has believed his users are idiots!
All I can say that if you get a good enough manager and get some space between yourself and the users i.e let the manager help or handle the user requests then you can do what you are good at - which is to develop.
My experience has shown me that being close to the development side as well as the users leads to sleepless nights and occasional bouts of extreme anger at the users lack of understanding of what they are saying...
Yes, it is an "ID 10 T" problem.
That was a great article. I like the way you brought that back around from "users are idiots" to "we need to design things that just work simply and well" .. couldn't agree more. Well done!
Nice post!
Apple sells well because they've long realized this. I don't use their products but I understand the genius behind it's marketing and display. People say they want it to "just work", and so Apple is streamlined to do just that. I've always thought that if I was a programmer and I was designing shit for public use, I'd take the "Simple Stupid" approach, because it works SO well for Apple and Google.
KISS - "Keep it simple, stupid" And by stupid it means us developers, we need to learn to do things as simple as possible.
I always work harder on my side so the end user doesn't have to
Software is COMPLICATED. If all it ever did was run, do some background computing, and then display the output to you then don't you think everything would just be a big red button? It's harder to do that because the task you're trying to achieve is HARD. Learn to realize that computers are just a tool, not some magic foundation for performing witchery.
Simplicity is a good thing. I have nothing against it.
If something actually works as it's supposed to, it's great.
But, CHOICE is never a bad thing. If you want to select that directory where you install that program, you should be able to. Apple products are very tempting as everyone who uses them says they love them, but ATM Mac OS X is much more limited than Windows. And same applies to Android/iPhone.
Technology has come a long way, but it still is nowhere near 'it'.
/Derozero
lol, every software dev knows that 90% of users are idiots.
The popularity of the iPad/iPhone proves that theory to be true.
The worst kind are the users who argue that the idiot is actually the developer.
Laughing hard at the idiots on here!!!
rofl ... nmap is rocket science
Yes, they are idiots. And they can't read simple English. That's why I make them print screen the error message and email it to me. Because they ALWAYS FAIL TO READ THE ERROR MESSAGE CORRECTLY!
90% of developers are idiots. Why? Because they ask users all of these dumb ass questions in the first place.
@Anonymous
"Yes, they are idiots. And they can't read simple English. That's why I make them print screen the error message and email it to me."
You make them do that? Can't you do most of that for them, so all they have to do is click SEND after possibly adding optional extra comments?
when programming anything , its best to assume all of your users are completely brain dead . why ? because the majority are. example: on a mmo i was resonantly playing some one asked how to broadcast a msg so every one on the game could see it . since it was a small game it's enabled , so it wasn't completely stupid , but the fact that he did broadcast that , and as a serious question !
hahahha... love it... true, print screen is one of the best tool :)
42.7% of all statistics are made up on the spot
If you make your software as bulletproof as it can be from the users, the better for all involved. The onus is on the developer to make sure the user understands what the program needs in order for the user to get their job done. Understanding the needs of the user then becomes the most critical aspect. The hope of course then is that the user knows what they need to get their job done.
Or an alternative hypothesis:
90% of programmers are idiots for asking the wrong question in the first place.
90% of managers are idiots.
The other thing to remember is that the 10% of your users who are NOT idiots might well be the same 10% who determine the success or failure of your product.
Make an app so simple that an idiot can use it, and 90% of your users will indeed be idiots.
Simple is beautiful, in the design, implementation and experience of your application or public API.
I live by that sentence when I design or create anything, but of course, simple is relative to the person using your application/API, so "as simple as it could possibly be" is good enough for me.
90% of developers are idiots because they lack to see the "use case".
Developers always imagine they "got it all" and see the results: Airbus airplanes are continuously killing people because someone at their staff think aviators/pilots are 90% idiots.
i am sure you are a java developer..99% of java developers are IDIOTS. don't care how things works..if no one cares...soon..no one will know how to make them work for people like you...to many hight level languages making things easy are building a next-generation of totally script kiddies that doesn't care about how things works...leave thinking to us. We want you getting fat not thinking. There's so many hungry people at world and we lack cows.
To the anonymous saying that "Software is COMPLICATED. If all it ever did was run, do some background computing, and then display the output to you then don't you think everything would just be a big red button? It's harder to do that because the task you're trying to achieve is HARD".
Making easy to use software is hard.
Making hard to use software is easy (in comparison).
If you justify a bad UX based on the fact that "software is complicated" then you are just being lazy and unprofessional.
30 years ago when I learned to program, I was taught Gorilla programming -- always assume the user is a gorilla hitting keys at random. Guess what -- nothings changed! I just quit teaching rural workers programming, my bosses decided that videos and 6 weeks is more than enough to train a programmer -- thats what folks think of us!
I agree things should be designed intuitively, but don't bring nmap into this...
It's pretty useful to have this utility already installed if you are managing machines (I have never had to install "drivers" for it), and "nmap hostname" offers a decent default. Any more than what they provided as a default would likely be assuming too much. So if the nmap "scan button" doesn't do *exactly* what you want then you will need to look at "man nmap".
Okay, now. I see a lot of comments saying Apple computers are easy to use.
Apparently that is not so. Yesterday, I spoke with someone who told me, "Geez, this computer is so hard to use." I glanced it and said, "It's an apple... (long pause) You're not going to like Windows."
I typically write all of my software under the assumption that 100% of my users are idiots, and that I'm an idiot too, since I know that I'll never write a non-trivial piece of software that is completely bug-free. Therefore, I try to write my software to be easy to install and use, but have options for more advanced users who know what they're doing.
Unfortunately, my brief forays into playing with open source software seem to dismissed the theory that software is supposed to make our lives easier, not harder. A good example is Chapter 3 of the GCC documentation. It's on the command line arguments. 132 pages printed. No one can tell me that GCC is easy to use. I'll compile a C program by hand before I'll use GCC via the command line. 132 freakin' pages... my God....
There is a book with much more PC description of the same topic as its title: Don't make me think. That's the message, not idiotism. Software is a tool. You don't want scissors or keys to confuse the hell out of their users. Same with software.
"There is a book" - yes, a book by Steve Krug, and if you take a closer look, you'll see I mentioned it :)
I think a more appropriate phrase would be: 90% of the people are idiots in one way or another...
What a brilliant post!!
Well... maybe..
99% of us(developers) are even dumber than any of our idiotic users
I absolutely agree whit that big red "SCAN" button :)
You people are so angry and shit... are you all having some sort of inferiority complex? Because I see a lot of frustrated comments. It is just a humorous way to say you have to keep things simple, not a personal attack.
Nobody is totally idiot, and thinking that your users are idiots is not the best way to design software. Software is a time and space machine. Most users are just lost in space and don't take the time to understand the space they are in. You created and lived in that space and know everything about it. So, you can find your way easily. Put yourself into the shoes of your user coming into that space for the first time in his life. He doesn't know where he is or how the whole thing works because he does not know that space into your brain. He is not you. He needs references. A map. He is not idiot. He is blind.
Post a Comment