"Don't let programmers write text that is presented to the user."
Chances are, they don't want that responsibility anyway.
"Don't let programmers write text that is presented to the user."
Chances are, they don't want that responsibility anyway.
As you can see this grid has quite a few numbers in it... 750 cells of data. There are only 20 numbers that are actually useful to support the goal of: I want to know how many pushups I have to do to pass. The rest of the numbers are all either failing amounts or more than you need. Granted, there may be a secondary goal such as I want to know what my grade would be if I did 100 pushups. However, a grid of 750 numbers is not the best way to do that either.
Something like this would more effectively meet the goals of the user trying to see how many pushups he needs to do to pass each test.
If you find yourself saying "I'm not sure what data the user needs so lets show all of it" then you probably haven't thought enough about who your users are and why they are using your site or application. You must resist dumping the data on screen like an export from your database. It will only overwhelm the reader.
It is no different than if you ask someone on the street the time and he proceeds to list off the time in every possible timezone. That is useful data to someone but not me and not right now.



Now, assuming that the error had something to do with the open Word document, you have to wonder why the error message didn't say something like "You cannot close this spreadsheet while the embedded document is open". Obviously at some point in the development, someone decided that "Reference is not valid" was going to be an appropriate message to show Bob Smith the accountant tracking inventory. Even as a developer, I have no idea what that could mean. But, since the only choice is "OK", I guessed that I should click it. After that, nothing seemed to happen, so I decided to try quiting Excel entirely. And then...
Ummm..... huh? What do you mean you can't quit Excel? Am I not in control of my own computer. I said quit and and you should quit. Again, somewhere in the development process someone decided that it would be ok to be in a state in which the application cannot stop. Like a bus with no brakes, all we can do is honk the horn and tell people we can't stop.
I assumed that the problem has to do with this Word document. So I just hit "OK" (By the way... things DO NOT feel ok at this point). I close Word and then try to quit word again and get...

... hmmm... So now things are not looking good. So I do what everyone would do and open up Task Manager, click on the Process tab, find excel and click End Process. So, if I could "quit" Excel, why did Excel say it couldn't?
This is a case where these messages were probably not expected to occur, but even if there is an unlikely chance of it, a small amount of time could have been spent to at least give some idea of why the program was in this state. A few minutes more, and the message could have explained how to recover, albeit a round about way. Almost anything would have been better than these messages.
Before all the Mac followers start proclaiming that this is why Microsoft is evil, let me just remind you of this:
Watch out... its gonna blow!
In Apple's defense though, most of the time they at least did a better job of telling you how to get past your problem.

However, the bomb icon is a bit disturbing and there is really no point in saying "unimplemented trap".
The bottom line is that if you are going to say something to the user about an error condition, make sure it is in a language they can understand. "Referenence Error" and "Unimplemented Trap" might as well be in Greek to most people.
I can't take credit for finding this one but it is a great example of how not to treat the user. I won't bother to repeat all my thoughts here but you can read them in the comments of the original blog.
However, I will take a moment to summarize what should be a global philosophy for anyone creating software. Here it is:
"Software is a tool to be used by humans to accomplish something. It is NOT a tool used by computers to accomplish something."
When you step back and think about it, it seems obvious. I buy and use software because I need to accomplish something (editing photos, paying bills, communicating with friends) in a way that is easier than the way I used to do it. The last thing I want is to feel like I am driven by what the software wants from me.
If a person said, "write your phone number down for me" and I wrote 555.555.5555, (555) 5555555 or 555 555-5555 then they would have no problem understanding that. If they said to me that when they think of phone numbers, they think of the format (555) 555-5555 and then asked me to write it in that format I would laugh and not expect to actually have to do it. I don't think it is asking too much of the software developer to implement that kind of logic. Some human-like logic is hard to implement obviously but some isn't. An when it is done, it can have a huge impact on the opinion a user will have of your software.

What do you think the difference between Seller's Guide, Seller Central and Seller Tools is? I clicked on each of them looking for information about the Buy it Now option. I couldn't find any information on any of the resulting pages easily. Eventually I found my way back to the Seller's Guide, which is apparently the code name for Seller's Help, and found it by searching. The first time I was on the Seller's Guide page, I completely overlooked the search box since I had just done a search on the previous screen in the main search box which apparently only searches items. When searching for Buy it Now, I received, as you might expect, over 2000 products.
Here's the problem. The links all sound like the same thing based on their names. They could be slightly improved by adding tooltips assuming it is possible to articulate the difference in 3 to 10 words. To add to the problem, even after visiting those pages, I am still not sure what the difference between Seller Central and Seller Tools is.
The bottom line is that when you decide to add one more link to a menu, it is important to make sure it makes sense in the context off all the other links. All by themselves, each would make perfect sense, but when put together the problem becomes apparent.

Here's a screen shot of what happens when you try to submit an expense report with dates entered in the "wrong" format. Why's "wrong" in quotes? The real questions is "wrong to who?" From a system perspective, a developer would likely thing that all dates should be entered in a particular format. Sounds familiar? The reality is though, that the "right" format for date entry is the one that the user things is correct. If I, for example, live in the US then I might be used to something like 11/12/2007. However in another part of the world I might use 12/11/2007. So how should any system handle this since both of those could be interpreted as valid dates, albeit incorrect ones. If the system doesn't know what format the user wants to use then it is ambiguous.
Just Getting Picky
So what is a designer or developer to do? Enter the "Date Picker" control. This little gem has been the solution to this problem for quite a while. So no more problems with date formats because now you don't enter one at all, you simply "pick" one. If you are reading some sarcasm in the tone of this, you are not imagining it.
The date picker control is a handy little calendar that pops up when you try to enter a date into an input. The calendar, usually defaults to the current month. It has to default to something, so why not? The problem is that thought really needs to be put into the use of these things. Imagine for a moment that you are entering your birthdate and the calendar defaults to this month. Unless you were "born yesterday" this will probably cause a lot of extra navigation to enter the date that is really on the tip of your tounge, or fingers. If only you could just type it in.
Does it ever make sense to use a date picker? Of course. For example, in a scheduling application where people might be interested in setting up a meeting for next thursday, it might be nice to allow the user to choose that date rather than enter it. The difference is in how the user thinks of the particular date in mind. If the user thinks "I was born on February 1, 1970" then that is different than a user thinking "Two weeks from this past monday". This difference in mental model, should drive a difference in the UI.
So we have dispensed with the date picker for the application in question. Luckily, the application actually allows date entry as well as date picking. However, in the screenshot, the date entry is what caused my "error". The problem is really that the application doesn't do a good job of accepting the format I intended to enter. It also doesn't even do a good job of telling me what format it expects. If you look in the screenshot, it is displayed as a TIP. Now to me, a tip would be something helpful but not crucial to me using the application. It turns out that the format really was crucial given that my mistake lead to 4 separate error messages indicating that the format was incorrect, without once suggesting the format it expected.
The one thing this application does do well is when it gives you the suggested format, it shows you today's date. I have seen many applications which do something like this "(MM/DD/YYYY)" This format is very familiar to developers but would all your typical users understand this. I have even seen some that say "DD-MON-YYYY". Clearly the MON means moth, but why should users have to decode that. Showing "05-Nov-2007" (It was November 5th when I captured the screen) is much better since the context of the date is at least in the user's frame of mind. Most people at least know what month and year they are currently in.
The Bottom Line
"You have entered time information without associating any time with that information. Enter time for this information, or remove it"...ummm....huh?
Nice. Now I know that all the fields are required... Now what goes in each field again? The worst part, refreshing the screen doesn't bring the labels back. Nor does submitting it. Now in the site's creators defense, after a little refreshing and clicking in and out of the fields, I was able to get it to show the labels again. But would most users?