Wednesday, June 30, 2010

Web User Experience Annoyances: Endless Updates

Perhaps this is something that Web Services and Web Applications will help us resolve, but we certainly aren't there yet. As we rely more upon integrated services, what we are seeing is that the applications appear to be a little more than hard of hearing (see my previous post). That really sucks for the user who has to keep re-keying and re-clicking to get the deaf interfaces to take notice.

But even when an app is deployed as a service, you still need to maintain a client platform through which to access the app. Ideally, the platform should be stable and solid, with rich but generic capabilities, and few interruptions. Yet recently the trend has been, especially on Microsoft based platforms, to force updates early, often, and gratuitously. 

When I see a system that hasn't been updated in a long time, I know from experience that if it has not been exploited yet that updating it is likely to make it more vulnerable than just leaving it alone. Updates themselves are as often as not the sources of flaws and security holes.

With the kinds of apps we run, we are seeing several updates a week to various bits -- Java, .NET, Windows OS, IE, Firefox, what have you.  It has turned out to be a real rats nest of constant updating that interrupts our activities.

Not to mention that the updates are applied when we can least afford to apply them. I hear lightning in the distance and think it is time to shut down. "Nay, Nay", Windows says, and begins to apply updates.  Time to pull the plug on Windows.

Web User Experience Annoyances: Missing Events

In working on a Windows XP Pro client with IE and Firefox internet browsers, I'm  finding the experience increasingly erratic.  My productivity in doing day-to-day tasks is going down. The interfaces I use, largely Web-based, have increased latentcy for sure, but broadband has improved quite a bit and keeps improving. That ain't it. The problem is that I'm also finding that the apps are increasingly missing or ignoring the user interface events.

Keyboard presses, field focus, mouse clicks... these are the only ways I have of working with the computer at the moment. When we lived in an isolated desktop world, we could get a lag on the system due to overloading, but missed keyboard events were otherwise a sign that an app was about to crash. In the world of the Web, nothing on my computer _seems_ to be lagging, but the application platforms seem to be designed to ignore me anyway.

Now it is such a regular occurrence that I'm realizing about a third of my user interface gestures regularly have to be repeated. Not so very long ago, I used to watch in minor annoyance as computer novices hunted and pecked on the keyboard, ever unsure of whether some keystroke or mouse click would be OK to do. Now, I'm finding the user experience of Web apps is making me feel the same way as those novices.  It is as if the apps were designed to be a little hard of hearing in one ear. If you've lived with a relative who was a little bit slow or had wax build-up, you know what I'm talking about.

"Honey, can you pass me the (muffled word) puhleeze?" 
"What??"
"I said, could you puhleeze pass me the blftter?"
"Did you say 'glitter' ?"
"What, why would I ask about glitter? No, the BLITTER puhleeze"
"Oh, you must mean 'butter'?" 
"Yes, that's what I said, "bluter" .

The first such conversation is quaint, but the constant repetition is a draining experience. As I write this on blogger, the WYSIWYG text cursor has magically become invisible, leaving me to wonder where the next character I type will appear. "Sigh, yes dear, I'd like the glitter please." I think it is time for Web apps to get the equivalent of a cochlear implant.

Tuesday, June 22, 2010

Web CMS: Slogging Through Mud Part II

At the Raleigh Durham Web Design Meetup I mentioned the feeling of general malaise I get when working with Web interfaces. A meeting visitor commented that often he has observed this was due to a mismatch of skill level to the task at hand.

I've heard that before more than a few times. It is sometimes, but not always, a suggestion that the person making the complaint is not proficient. I object to that suggestion, first, because it did not take me very long to get the task done, and second, but more importantly, because it is on its face obvious that most computer interfaces suck. Unfortunately, many people inappropriately attribute their own poor performance internally, on themselves, instead of the sucky Web interfaces.

W. Edwards Demming pointed out that preaching and chiding workers for job performance is counterproductive when they have no control over the system under which they labor. Most people don't have the skills I have to hack code, and are forced to labor with Web CMS systems that get more craptastic with each new release. The situation was not entirely unavoidable, and that is the source of my irritation.

One more thing: we also have Web geeks who will willingly, and IMHO unethically, foist upon an unsuspecting client a one-of Web application project, which the client all too often is ill-prepared to maintain and operate. That's like selling a cedar shingle roof to a homeowner but omitting the fact that the roof will need to be cleaned and treated every year by the installer, to avoid catastrophic failure. I'm irritated because many Web CMS's are designed as cedar shingle roofs.

Web CMS: An Exercise Congruent to Slogging Through Mud

The next time some young Web developer tries to tell you how wonderful that favorite Web Content Management System is, whip out a wet noodle and start pelting him or her. I spend a good amount of time actually using Joomla, Drupal, Wordpress, etc. Out of all the descriptive English words one could choose to use to describe their workflows, productive is not one that comes naturally.

Capable? Sure, yeah, I get that. I promoted Web publishing packages like the big three mentioned above for that reason: they give you an established framework for capturing information, staging publications for release, managing users, and lots of other goodies that require back-end computation. On the other hand, they often force all resource management and every workflow through a very clumsy, narrow minded interface; else you bypass it entirely and risk upsetting the plethora of conventions that keep the CMS house of cards from falling apart. The very last thing any of them were designed to do, is make the process efficient from the user's point of view.