Simple Technology 4: Has the situation gotten better?

It’s been 8-9 months since Simple Technology 3. All I have to say is, what happened? It couldn’t have gotten worse, could it? But alas, everything has gone downhill. Welcome to 2007, the year of the confused user.

Let me first look at the three major operating systems: Windows, Mac, and Linux.

WINDOWS VISTA
Mistakes:
Try opening up Explorer and browsing around your computer. You will notice little arrows between each level that allow you to select directories. Yet this becomes confusing when trying to choose a network folder. Also, running software poses a problem. For example, I installed Call of Duty 2 on my computer and for it to run, I had to give the shortcuts administrative privileges.
What the user can do about it: Learn about permissions, learn little annoyances that take more time, or just stick with Windows XP. You can also try using a different operating system (although the end user may not want to do that).
What the developers should do about it: Scrap Vista. Go back to XP. Most of the population is used to XP, so stick with that. It’s easiest for the user.

MAC OS X LEOPARD
Mistakes:
Spaces is the downfall of Mac OS X Leopard. I am a power user and programmer and I never find the need for multiple desktops. It’s a hassle to remember which desktop what program is on. Also, the Dock lacks the ability to list the Applications folder (as far as I know). It would be nice to have a listing of the applications folder pop up from somewhere.
What the user can do about it: Don’t use Spaces. It’s just a waste of brain power. If you need to stay organized, go ahead and use it. Also, the Applications folder idea may exist out on the web somehwere.
What the developers should do about it: Kill Spaces. Add on a Applications menu.

UBUNTU LINUX
Mistakes:
Lack of function. Navigation problems for user. Lack of a single set of guidelines. Developers turning to eye candy.
What the user can do about it: If you are a average user, keep away. Linux is not ready for the desktop. I don’t care what other developers say, Linux is just a power user and development/server system. If you are one of the average users, just say no to Linux for now. It will be nothing but a headache to you.
What the developers should do about it: Reorganize, redesign, and stop creating massive amounts of eye candy. The windows may bend like rubber, but the content still isn’t simple enough for the user!

So, fix these problems now. I really don’t want to see 2007 turn out like it already is for the users.

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 2: Ten Rules for making simple GUIs

In the last Simple Technology post, I ranted about how technology lacks the ability to be easy to use. In this post, however, I am going to talk about how to make your programs easier to use.

I am a high school student stuck in a community that has trouble using computers. So essentially, I have to learn how to make everything easy for them. I do this by looking at how the other students do their work day to day. Several things are programmed into their mind that get forced to be changed whenever they start to use computers. Wouldn’t it be easier to use these rules they already have programmed in their minds instead of rewriting them? Anyways, here’s my rules. Some may know them, some may not. Some are essentially given, some you would never have noticed.

  1. Upper left corner Always start from the upper left corner. People default to looking in the upper left corner of a page to start reading, so why not do that here? Put the most used features of the program here and put the least used on the bottom right of the screen. Upper left and screen center are the main areas of focus.
  2. Colorization Ever wonder why blue is the most common color on the internet? Of course it looks neat, but that isn’t the only thing I notice. It’s far away from most other colors that can be concerned with problems. Red is thought of as errors. Yellow (well, more like amber) is thought of as caution. And green is mainly associated with the earth or grass. So essentially, use red when there is an error, amber when you want to emphasize something, and then typically blue for the rest.
  3. Keep it organized I go onto windows and as I have 60+ programs installed, it gets confusing looking through the start menu as it is all under one major category, All Programs. I then go to Linux where I have over 100 programs installed and it’s easier to find them as they are all sorted into categories. So essentially, try to group things together. Not into rows, but into small groups. When reading rows, one will typically notice that there is plenty of chance to accidentally skip to the next row (that’s why toolbars are terrible in my taste). Group them into small groups along the top and have probably 2-3 rows in each group. Watch how much easier that may make the program.
  4. Clicks The less clicking needed to do something, the better.
  5. Do things for them Add in features to do stuff for them. One feature I would find nice in Firefox would be to actually pull up the pages that I view obsessively and display them as my homepage.
  6. Easy access toggle buttons Less click of course. Bold, Italic, and Underline are good examples of this in most word processors.
  7. No Mess Hardest part to balance out. I’m saying keep it organized and use as few clicks as possible. Now I am saying try to keep the screen clean. This is one that cannot be taught, but has to be done via trial and error. Every program has a balance between screen clutter and organization, so try some experiments and tell me how this goes. Note, auto hide is not good in this case as it gets annoying having to hold a mouse in the same spot to get something working.
  8. English Ok, the following terms should not be used in a program targeted for the general public. Anything that you say in chatrooms like Ubuntu or anything. Stick away from advanced computer terms (higher than “click here with the mouse” or “press the key F1″). There is something called English (or whatever native language you use), use it. And yes, this means that you cannot use even simple terms like CPU, RAM, OS, GUI, etc. Replace “Loading” with “Please wait”
  9. Help text Simple, use the text that whenever the user hovers the mouse over the button or item for a second that it pops up with a small notice. Easy?
  10. Test it Best way is to get a group of about 30 people who would have use for this program. Best if it is just everyday people, not your friends. Anyways, have them sit down and tell them to try your program out. Watch how they handle it. Have them write down what they had trouble with and watch to see where they have trouble. When they have trouble, you need to take a look into how to fix it, not tell the person “You do it like this…”

There are 10 basic rules. Sorry if these are disappointing, but they are the first things I can think of for how to make simple GUIs. I’m now trying to work on a couple more rules for a follow up post.

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.

Follow

Get every new post delivered to your Inbox.