Web applications are evil
As the web gets more mature and web technologies more advanced, more and more applications are ported from dedicated desktop applications to web applications. Those of us who work in (large) corporate environments have to deal with many web apps, for example to register worked hours, fill in planning estimates, do document archiving, lookup people in an internal phone book, etc.
Now, I do recognize that there are many scenarios where the advantages of web applications are too big to be ignored, but in a lot of cases they are not. At least not from a user centric viewpoint. And shouldn’t all applications be developed with the end-user in mind first?
I have used dozens and dozens of web apps and my biggest frustration is that I have never come across a web app that is even close to usability standards we take for granted for desktop applications. When I develop a desktop application, I pay attention to:
- Consistency with (similar) applications on the target platform. For example,
when most of these applications have a menu bar that starts with "File", "Edit", " Help", it’s a good idea to keep the same order and not put a "Help" menu as the first item in the bar, right? Consistency helps to keep the time for new users to get familiar with your application down. - Use of keyboard shortcuts: make menu items accessible by a hotkey. Make sure they are recognisable by users and are consistent for the platform. For example, on Windows: Alt-F opens the File menu. This is visible by the underscored F on File. When the menu is open, pressing S saves the file, and you even can save the file without opening the File menu with "Ctrl+S". If you use any application that handles files, the chances are pretty big that the shortcuts are the same (if not, the developer needs a slap on the wrist!).
- Menus, dialogs, etc. are traversable with the keyboard. In menu’s, the cursor keys can be used and in dialogs, tab and alt-tab can be used to travel to the next/previous field.
- It is clear (by visual feedback) what the default button on a dialog is.
- Radio buttons, checkboxes, list boxes, etc. work in a way that is consistent to the platform.
- Buttons have both a picture and text (because an icon is never self explaining). If both are not possible because of limited screen real-estate, text can be supplied as balloon when the mouse pointer hovers above it.
- Context sensitive help is provided from within the application.
- Windows can be resized and the size is put to good use (controls resize, giving you more room to type or to see the contents of a list, etc).
- Quick response times. If you open a new window, menu, etc. the GUI should respond quickly and give feedback something is happening. If needed, we go through great length and introduce threading to keep the GUI responsive.
All fairly basic stuff, right? Usability guys have fought hard to get stuff like this recognized and consistently implemented into desktop applications for years. Keyboard navigation helps experienced users to do tasks a lot more quickly and immensely helps those with RSI like complaints.
Along come web applications and all this doesn’t seem to matter anymore. Yes, I know a lot of the above can be implemented in a web app, but after 10+ years dealing with them, how many times have you seen it done properly?
Things that make you go mmm
Have you used many web applications that supported keyboard shortcuts? Some kind of standard menu? (since web apps are *ahum* platform independent (more in this later), this is off course also quite hard). Context sensitive help? When you resize your browser window, does the GUI resize or does the form seems to be fixed with? How do you feel when you spend all that cash on a high resolution wide screen monitor, when you are entering text into tiny text boxes that do not resize?
With web based applications, we, the users, are being treated to the downsides that come with web technology. I use all kinds of browsers (Opera, FireFox, IE, Safari, Chrome, in that order), depending on the operating system, computer and location I am. I can’t count the number of times I had to close a session in a web app, copy-paste the URL to another browser and continue there because the app uses something that is not quite compatible with the browser you I was using. Which most of the time of course loses the work you have done so far because you are not logged in in the other browser. Even worse are the apps that not let use you the browser of your choice. For example, at my work spot I have a fairly slow PC with a limited amount of memory and I need to run a VMware session on it too. On that PC (as on most other resource limited PC’s under Windows), Opera works best. I can use it with many tabs open, scrolling through pages is nice and quick, etc. Except I cannot use it because the webmail from my parent company "is not certified to be used with this browser". Thanks a lot you IBM guys (yes, it’s Lotus iNotes I am talking about). Even worse is my bank/insurance company. When you want to sign up for an insurance or get a quote you have to use:
· PC: Windows XP Service Pack 3 or Vista + Internet Exporer 7
· Mac: MacOS 10.5 + Firefox 3
As a help page of the customer services states: other combinations might work, but we cannot guarantee anything. Good call. Guess what potential customers using Linux, Mac OS X + Safari or some other Windows browser are going to do when they are shopping around for a good rate on insurance. Switch browsers/Operating System just to get a quote, or just don’t bother and move on to the next insurance company’s site? And, as hard I was looking, I could not seem to find “Exporer 7” anywhere so I was out of luck anyway!
Responsiveness… Another issue with web apps. On a normal GUI, a reaction time of less than 200ms will be perceived as instantaneous by a human user. This is what you aim for when opening screens etc. On a web app, you have very little control over this. New pages have to be requested from a server over the internet and it’s all a bit unpredictable. One thing is certain however, the responsiveness is never going to be perceived as instantaneous. Don’t you just hate it when you have to browse back and forward through a lot of screens and you have to wait for each screen to open each time? Unacceptable on a desktop app, common on web apps.
And don’t get me even started on how many times I have filled in a lengthy web form and see my hard labour disappear because of a dead link, temporary inaccessible server or time out on a session when I pressed that ‘Submit’ button. Ah, there was a maximum time for filling in the form? Thanks for telling me upfront Mr. Web Developer! Actually, the last examples are not ‘things that make you go mmm’ anymore, but rather ‘things that make you go AAARGH!’ and shout at the designer.
Things that make you go AAARGH!
As I said earlier, there are of course situations where web apps are entirely justified. Think of online surveys, web access to email, etc. But for a lot of situations, web apps are used to solve the problems of IT management (namely development, maintenance and distribution of apps) instead of that of the user. Therefore, the focus in these web apps seems mostly to be to the back-end and ‘getting things to work’, rather than on providing the best possible user experience.
This can go to bizarre extremes. For example, when my company switched from manually filled
in hour-declaration forms to an automated solution, they choose a ‘less than user friendly’ solution to put it mildly. I have seen some bad UI’s in my time, but when we switched to this system, the design decisions just blew me away. For starters, on my home PC I have Windows 7 which comes with IE8. When I log into the system, this is what I get (don’t you think the TV test pattern is a nice touch? We are on the web after all). But the best part is the text. It’s in Dutch, but it states that "the application uses the latest technology, not only because they want it to have an attractive look (ah, now I get the test pattern!), but also because it has to deal with confidential data and has to warrant my privacy." Then it states that is why it is only accessible using Microsoft Internet Explorer 6.0 or higher or FireFox version 2.0 or higher. Which of course makes sense, we all know that your privacy isn’t warranted when you use another browser, don’t we? Let alone that browsers like Chrome, Opera or Safari can handle confidential data. No sir! IE6 is much better at that! Mind you, I am running IE8 (don’t you just love faulty browser sniffing) and now have installed a virtual environment with XP and FireFox so I just can fill in my hours. So much for the easy installation and distribution of apps…
But when finally logged into the damn thing, things get even worse. My company bills clients for my worked hours monthly. So you would expect filling in hours to be monthly based too. But in this tool it is not. You fill in everything in by week. So week numbers are really, really important. So they hid the week number you are working on between a large number of other unimportant stuff on the top of the page. And as you traverse through weeks, the buttons for previous/next keep moving around. The screen layout is so stupid, that they had to include a ‘hide menu’ button (which hides a left frame with menu links) so you can see the text fields in which you can fill in your daily hours. If you don’t hide the menu, you cannot see the text boxes for that. I can go on and on about this app, but to cut it all short: filling in hours now takes about 2-3 times longer than when it had to be done on a paper list. That is progress for you!
Another bizarre example is a document management system we have at my work spot. We used to have a well know version control system with a windows client to check documents in and out into a central archive. The user interface was far from well designed, but everyone could find its way around it without any training. It now is replaced with a web based solution. To get a basic understanding of how this tool works, everybody was required to follow a 5 hour training into the terminology and processes used by the tool. Mind you, this is only used to check in/out documents into a central archive.
These are just 2 examples of tools that seemed to be developed not with the user experience first in mind, but with the requirements of ‘taking the whole thing to the web to minimize roll-out costs’ first. Yes, insanely bad user interfaces can be build using desktop applications too. But even though web apps now have been around for a long time, they are often so much worse then their desktop counterpart and way below decent usability standards.
And that is why, ladies and gentleman, boys and girls, I state that from a usability standpoint:
"Web applications are evil"!
(by the way, I am writing this using the desktop application “Windows Live Writer” which not only seems to be more user friendly than the WordPress online edit, but also seems to give me much better control over the look of the post. Just saying…)