I have been a big proponent of learning from the computer gaming industry. Many industrial applications are boring and unnecessarily complex. It is difficult to make something simple, entertaining and comfortable. Ross's post provides some great heuristics for making the whole human computer interaction enjoyable. We both would be interested in your thoughts. Later!
Ross Arnold's post:
As I've mentioned in my other log book entries, I program many games for fun and for my eventual goal of running a small game company. I long ago came to a conclusion while coding games with respect to user interface - EVERY aspect of a game should be fun, not only the playing of the game. If 6 menu screens need to be traversed before the game can begin, then each and every one of those menu screens should be fun to look at, and fun to use. The buttons should be pleasurable to click on, visually appealing, smoothly functioning, and easy to use. I feel that game players often don't realize the joy they take in traversing well-laid-out game screens, instead focusing thoughts on the gameplay itself - but the joy is still present, and it still pulls people back to play a game again, even if they don't always consciously realize.
The same principle applies to my current project at work - a pocket PC used for mortar ballistic calculations. Since the screen is so small, the layout of the buttons and edit-boxes is even more important than it would be on a desktop or even a laptop computer. If a soldier is crawling along a trench in the desert, pulling out his pocket PC and plugging in a few calculations shouldn't confuse him or cause him undue stress because of a few poorly designed dialog screens.
Two web examples also come to mind: MSDN and google. If I type 'vesonder cs540' into a google search, Software Engineering Class Page instantly pops up in clear view as the 4th entry on the page, then one more click and I'm right where I want to be - it's quicker than using my bookmarks. MSDN, on the other hand, seems to be rather poorly organized (it might just be poor searching technique on my part, but isn't that what library organization is meant to counteract?). I must have spent at least 30 minutes straight the other night searching MSDN for the EULA for MS Visual C++ .NET Standard to see if I could use it to develop and publish progams for profit, and I was never able to find it (I don't suppose that you happen to know whether VC++ .NET Standard, as opposed to Professional which is $900 more expensive, can be used to publish?). In my opinion it was just absurd that the EULA wasn't readily available on the page that described the .NET software. I've had many troubles searching for similar things on MSDN, often items such as downloads that I am absolutely sure are present because I've seen them just moments earlier accidentally on MSDN, and then can't get back to the page I saw them on even if I type exact words that I saw on the page, or exact file names, etc, into the MSDN search engine. If I ever design a website for one of my games, which I'm sure I'll have to do at some point in the near future, I'm going to make sure that I have everything organized, readily available, and SIMPLE, so that I don't have people like myself bumbling about the site, lost somewhere in the bowels of cyberspace.