Simple Technology 3: More on Simplicity

Is it just me or are computers getting tougher for the average joe?  All of you developers and designers, stop and just read this for a few minutes.

Developers develop for the wrong people.  Tell me, who do you think you are developing for?  If you said yourself, then you are correct.  Don’t argue, you are just proving yourself to be part of that group.  I have yet to see a developer able to develop for the general public today.  Even I, as a programmer, have had trouble understanding your GUIs and found myself confused.

There was recently a topic on digg.com referring to how 10% of the users on the internet still use 800×600 resolutions.  I read over the comments, and was rather annoyed by what I saw.  Yes, I do understand the developer point of view, but some people need to use 800×600.  Some people don’t have good vision and use 800×600 on a 19″ monitor.  Some just don’t have enough money to buy a monitor.  And some just don’t see the need to upgrade to a larger monitor when theirs works well for them.  I expect some users to respond to this with a “They shouldn’t be using computers then!” and you know what, you shouldn’t be using computers either.  Develop for 800×600, but here’s an idea, make it a lite skin.  All it takes is just a different stylesheet and you have a site that works well on 800×600.

Web Designs may look good, but they are not easy to use.  Putting debugging information on the bottom of a page is not a good idea, hide that information.  Users don’t like anything that can confuse them even the slightest bit.  I’ve seen users go onto message boards and get confused at what the words “forum”, “thread”, and “post” mean.  Yes, a good number of users are that low in terminology, but you have to respect them as a developer.  They are not willing to learn new things.  Users just want to get everything done quickly without worry.

And when you are talking to users, try to use as little or no computer terminology at all.  I have called up technical support on several companies before and heard them use words such as USB, Firewire, IEEE 1394, and socket.  What the…are you just trying to impress the users with your knowledge?  If you want to try to impress them, try this out: tell them what it is!  For example, when they ask you what RAM is, don’t say “It’s Random Access Memory” or “They are little chips in your computer”.  The first response is still to much for them.  The second response is just too vague and will still confuse them.  A good response would be “Imagine working on your desk.  Everytime you want to read or write on a piece of paper, you grab it from your file cabinet and place it on your desk.  You then leave it out until you are done with it.  When you are done, you place it back in your file cabinet.  Your desktop is just like RAM, you place the paper there while you are working with it.  And when you are done, you place it back in your file cabinet, which is like your computer’s hard drive.”  That there would explain it well enough to them and they will most likely understand it.

Upon inspection of all of the software available, I have found that very little or no software is easy for users to use.  You, the developer, would be amazed at what things users would have trouble with.  Don’t release a beta to other developers.  Release a beta to the average user and include the same set of documentation you would include in a release to developers.  If users can figure it out quickly in their first try, then you are successful.  If not, take a look at what they had trouble with and fix it.  Just don’t leave them swimming in the middle of shark infested waters out there!

Simple Technology

First off, for the average person (one who just does chatrooms, instant messenger, email, web browsing, etc.) on the computer, you may get very frustrated. Computer breaks, you need it fixed. The tech support guy on the other end of the line seems to speak in a foreign language (“Clearly sir, that was the tray for your Samsung CD-RW drive and not a cupholder.”). You can’t understand him at all. He could actually be making a larger deal out of the problem than it really is (o, monitor is busted…guess you have to replace the whole computer instead of buying just a replacement monitor). Some of the support technicians don’t realize that you don’t understand what they are saying. Some realize it and use it to try and make extra money. And there are the very few, once in a lifetime, that actually utilize analogies to make everything easier for the customer.

This leads me into my main argument. It is not computers that are confusing to the users, it is the developers themselves. “I can’t make it any simpler, it has to be this way. Either way, they can figure it out.” Come on! Most users don’t want to learn anything or take time figuring stuff out. If it isn’t exactly easy to understand, they won’t want to use the product. Developers make programs for themselves, never the users. When was the last time you have ever seen a average user learn to set up Gentoo Linux 2004.1 in a few seconds (for those that don’t know, Gentoo 2004 had a hectic time installing because it all had to be done manually without a nice installer with buttons to click on). Come on guys! Just listen to users and hear what they want the program to do. If they want to be able to start a program in one click on their desktop, do it! If they want to access their favorite site by just speaking into a microphone, by all means, add it in! Ask the public if they want a feature first before you add it into a program. In fact, ask the public to design the overall layout (how the buttons and etc. are organized on the screen) of your program. More importantly, take everything down to their level by using analogies to simplify items. Also, as a more important statement, DO THE LAYOUT FIRST AND MAKE IT EASY TO USE BEFORE YOU ADD FEATURES! Developers can’t grasp that.

I have several programs that can act as good examples. First off, many may hear me talking about Linux. It is a powerful system yet lacks a good GUI (what you see on the screen). I have started a project called Likos Archi where I am gonna invite users to help make decisions on how the system with work (layout, what will come installed, etc.). Try my method of inviting users to make all the decisions on what should be changed, removed, and included.

Another program I would like to point out is IceBB. IceBB is a message board system that I support. Yet, I honestly think that they are going in the wrong direction. Go ahead akurashy and MutantMonkey, argue with me about this, but hear this first. Try going up to 5 people out in public on the streets of a rural town and ask them to try IceBB. If they all learn it quickly without you having to help, then it is user friendly. If they have problems, ask them how to fix it and then do it. Go ahead and hold back the release of IceBB 1.0 Final and drive the community insane. Do you honestly want to grab only a small portion of the market (exclusive developers) or do you want to grab the largest portion (the general public)?

So, as a few final words on this topic. All developers, please get a user friendly interface before actually adding in all those features like RSS and extensive AJAX. And users, please put in suggestions on how to fix the layouts of a program’s look. It only takes a few minutes but can mean a huge difference in the outcome of the program.