Why Users Hate IT Products and Developers
bfwebster writes "The Washington Post has a commentary by one of its regular columnists, Marc Fisher, on why computer users hate what he terms 'our techie masters.' One of his more pungent and, I suspect, on-the-money comments: 'Computer training has become the living hell of the American workplace...each new system is more confounding than the last, and each new product strips away many of the advantages of the previous system.' Not a Luddite screed; more an angry outburst asking why commercial software systems are often so wretched. Worth reading and pondering."
I get pretty sick of these stories. I certainly understand that there's a lot of bad software and user interfaces out there, but I'm aware of it, and I put a huge amount of effort into designing interfaces to be intuitive to whoever's going to use the system.
However, here's how my projects go: we get a contract in mid-January to write a custom software application. It has to be completed by, say, May 1st, because that's what our sales dept. sold them. They never asked an engineer how long it would take, they just promised the moon to get the contract. Then, we write a functional specification, and give it to the customer for review. We need to get it reviewed and signed before we can move forward, but for some reason, my contact with the customer doesn't have the authority to sign anything. Not only that, it goes through countless revisions as the customer finally realizes they don't actually want what we sold them. Of course, the deadline of May 1st never changes, so by the time the functional spec is approved, it's April 25th, we've had to start writing the application without a fully approved functional spec, and we've got a week to finish writing, testing, and debuging the application, so no matter what, we're going to deliver late and overbudget.
That's when your boss comes by, shows you the budget numbers for the project and says, "We can't afford any more time on this project, so just do whatever it takes to make it work." Making it work does not mean spending hours designing and revising user interfaces to make them intuitive. I hate it, but that's why software interfaces aren't intuitive.
"I have never let my schooling interfere with my education." - Mark Twain
(BTW, I do not consider the people who work in ad agencies or web design shops by and large to be UI designers. Usually these people are graphic designers who have no background in software usability, but instead delight in creating pretty image buttons, rollover links and the like. Having one or more of these folks on the team has no correlation to producing usuable products.)
How can we improve our UIs if we can't afford to hire UI designers on the project team?
- Educate the analysts, architects, developers and QAers on design for usability. There are two resources, classics in the field, that make great starting points. Although neither directly addresses software development, both books present a theory and logic system that can be readily applied to UI design. The first is Donald Norman's book The Design of Everyday Things, which mostly addresses designing products that are manipulated with controls (of one kind or another). The second book is Edward Tufte's The Visual Display of Quantitative Information, which covers designing information displays for maximum clarity. Tufte also gives seminars around the country where he gives an intro to his philosophy of design.
- Establish UI standards in a document that can be referenced by your developers when creating interfaces. There are references by Apple and Microsoft which are good starting points, but your UI manual should cover material specific to the domain your team is working in. For instance, if you're a securities firm, you should standardize on how you represent security names, prices, and labeling of market data points (e.g., "52Hi" vs. "AH" vs. "YrHi", etc.).
Many development projects also neglect to spend sufficient time observing how the target users do their work. Even though there are lots of users whose work requires too much keyboard dexterity and accuracy to use a mouse, developers don't often account for keyboard shortcuts, hot keys, etc. I've seen a trader pick up a monitor and throw it because he couldn't use the program running on his computer fast enough to do his job. Not a good way to discover a hole in your requirements process.