People vs. Computers

A complex part of programming doesn’t even involve writing code. I am referring to the interaction between computer programs and people. User interaction is a complex subject that has been the subject of many books.

I like what Alan Cooper has had to say in his books. Raymond Chen relates an interesting story about user interaction with error dialogs.

I can relate to what Raymond has to say. My experience from working in a software support position confirms that people will do whatever it takes to get their job done. Here are a couple examples.

We write software for distributors. One of our customers is ISO 9002 certified. With their previous software, which was a text-based system running on the UNIX platform, the software filled in defaults for certain fields, but forced the user to tab through those fields to confirm that they were reviewed. The “required date” field on the order entry screen is an example of one of these fields. The order entry screen actually has about 5 different fields which require this functionality for the customer.

This customer required the same functionality in our software in order to remain certified. We discussed options with their management and they chose to go with a similar functionality. We detect if focus has gone into the field and don’t allow saving of the record until the focus has been placed into all of these fields that require review.

Management likes it. The inside sales people hate it. One of our trainers observed the inside sales people working with this new feature. After the defaults were filled in, the user would hold down the tab key to start repeat mode. The cursor would cycle through all the fields, setting focus on the “review” fields. Then they would save the record, without having really reviewed the data in those fields.

Another “feature” requested by management is “popup” messages for customers and items in order entry. The message might say “This customer won’t pay for overnight delivery. Check with the sales manager before sending anything by overnight delivery.”

What happens when the inside sales rep takes an order from this customer? They enter the customer on the order, dismiss the “popup” message without reading it, then take the order. The person on the other end, who has nothing to do with paying for the product that he buys, tells the inside sales person that he has to have it overnight. The order is entered that way, the product is shipped by FedEx, and then the customer’s accounts payable manager won’t pay the freight charges on the bill.

Who is at fault in this scenario? The blame could be placed in lots of places, and probably everybody shares in it a little bit. However, it often comes back to the people who provide the software. If this scenario occurs frequently enough, the user comes back to the software developers and insists that something is wrong because we allow this scenario. Solutions are offered, but the user may not be willing to pay for these solutions.

I know from reading Microsoft-based blogs that there is consideration to have “forced” updates in the upcoming operating systems. You won’t have a choice about whether to install a security fix. It will just be done.

For the average user, I think this is a good idea. However, many corporate and power users are not going to like it. Either they will have a problem with the “principle” of Microsoft automatically updating their software, or they will have logistical problems. Trying to provide a solution that balances everyone’s needs will probably be impossible, and we’ll continue to have people using insecure software when secure updates are available.

  1. #1 by Nik Shenoy on September 2, 2003 - 2:50 pm

    I think the problem lies in error message classification. There are too many messages that the average user has no way of deciphering. Some of these are severe, and others are incidental. If you had message classes (for example, “Data Loss” or “Security Breach”) and users were cognizant of what those classes meant (and/or, the problems are automatically forwarded to IT administrators in a business scenario), then perhaps some of these things wouldn’t turn into disasters.

    I think the art of preventative maintenance in computers was abandoned because the cure was often worse than the disease. Things may have changed ( a little), but most administrators I know don’t upgrade all their computers because it’s so likely that something won’t work and they’ll spend days figuring it out. If patches guaranteed backwards compatibility (where security wasn’t a factor), then normal people could switch to a more proactive update strategy. Most of the home users I know have no idea what security risks computers face, or how viruses work, or why they should defrag their hard drive. The operating system needs to do those things automatically, or somehow educate its user base.

  2. #2 by hurcane on September 2, 2003 - 11:46 pm

    I must admit I wandered a bit in my entry. The messages I referred to in Raymond Chen’s were system messages. Then I went on about how users also ignore the messages that come with their business software. They are two different environments, but human nature reacts the same way. It’s the human nature vs. computer nature that I was trying to emphasize.

    In my opinions, there are a few relevant axioms about users and computers. If you keep repeating a message that is meaningless to the user, eventually they will ignore *all* messages. A message may be important, but if it can’t be understood, it will be ignored. Some people will never understand any message, no matter how it is worded.

    Perhaps this is pessismistic, but “some people” refers to about 60% of computer users and about 80% of the general population. This is changing over time.

    My experience tells me that age is a primary factor. Of the companies using our software, those with more older employees struggle more with the software than companies with younger employees. At some point, we are going to reach a critical mass where most employees grew up with computers and understand how things go together.

    For the time being, we just have to do the best we can.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: