Wednesday, March 10, 2010

Book Review - Why Software Sucks... by David Platt


Non-technial computer books are often hard to find. Most deal with the steps you should take to correct your embarrassing photos (why am I the only one not smiling in the group shot?) or how to improve your web page (in just 30 seconds a day!). Rare is the book tht deals with the social aspects of computers and how our lives are affected, in some cases controlled, by the little boxes that sit by our desks, or on our laps or in our pockets.

As I perused the local library's shelves, the catchy title jumped out at me. "Why Software Sucks..." seemed like it would be a fun romp through the problems with our current software and what changes should be made. Some enjoyable but educational before bed reading was what I was looking for.

This was not what I found. Although written in a lighthearted manner, David Platt's humour was often demeaning and less than funny. His quickness in labelling people as either geeks, idiots, or worse came off as pretentious. The book's tone reminded me of being at a party listening to someone speak pompously with too loud a voice and being unable to refill my glass to dull the pain.

Mr. Platt begins his assault on software developers (note that software is taken loosely to mean traditional software such as Microsoft Word and websites) by criticising the need for the Dummy series of books. If software was designed well enough, we would not need these books he posits. They only exist since the programmers wrote code that did not take the need of the user into account and hence we feel like dummies. Although I do understand the need to make software as user friendly as possible, the use of the term dummy is intended to indicate a beginner rather than a feeling of being mentally inferior. Primarily, it is a catchy title. Calling your book "Photoshop for Beginners" or "An Introduction to Flash" is not as arresting. As Mr. Platt knows very well, using extreme language is one way of attracting attention. He entitled his book "Why Software Sucks" rather than "Why Software is Inadequate" for a reason.

He spends the first half of the book uncovering various issues that make software difficult to use: Windows XP confirming that you want to delete something, websites that do not automatically detect your location, companies requiring that you have a unique username and password. He criticizes options and features that seem to demonstrate a programmer's prowess rather than doing anything useful.

Although these examples are interesting, the quantity and variety of them seem to be lacking. With it's title, I expected a more in-depth look at what was the reasoning behind the design feature. Was it laziness? Was there another reason? A bit of investigation would have seriously helped. Does he not know an ex-programmer at Microsoft who could detail what goes on behind he scenes? This would have been more fascinating than lambasting a company for several pages for not being able to find a coffee shop close to his house.

After the software criticism, Mr. Platt describes the requirements for security, why there is no common system at the moment, and how cooperation between web developers could help the situation. Although interesting, this was section seemed more like filler as it did not really advance the thesis of Why Software Sucks.

The book became even less focused when he wrote two chapters on "Geeks". I know that he was trying to write in a sarcastic, playful manner but having computer programmers further stereotyped is no help at all. Furthermore, he fails to balance the user side with the complexities faced by the programmer. Again, some interviews to hear what the programmer has to deal with would have been enlightening.

In conclusion, he asks everyone to make their views known, provide feedback so programmers can take the users' needs into account when they design their software. This is sound advice. It has even made me reconsider my usual refusal to send a report to Microsoft when my system crashes.

In sum, "Why Software Sucks..." is, as intended, a light read that exposes some of the issues in the software industry. However, it seemed too light on details and some footwork by the authour to procure interviews or more detailed information would have fleshed out his arguments better. Resorting to stereotypes and painting issues as black and white oversimiplied the complex nature of having software work on a variety of computers while pleasing a majority of the users.

The evolution of software has been amazingly rapid. Compared to 25 years ago when all the computer screen showed you was a blinking cursor, almost everyone can use a computer reasonably well. Back then computers were, for the most part, only expected to handle word processing and spreadsheets. Week long training seminars were held to introduce users to a piece of software. Now, we organize all aspects of our lives on the little box sitting in front of us and we are expected to learn the software on our own. 90% of the time it works as expected with a few little quirks that we learn to live with.

Mr. Platt often refers to how much cars have advanced and that they are paragons of user friendliness. It is ironic that much of this user friendliness found in today's cars can be traced to the computers inside them. No longer are they prone to stalling due to the replacement of carburators with electronically controlled fuel injection. Breakdowns are less frequent because electronic sensors know when something is out of spec and can eiher indicate the problem on the dashboard or correct the situation internally. Over the past twenty years, our ability to control the car has been taken away by computer nannies that monitor a myriad of subsystems. Is this better? Should user friendliness trump control as Mr. Platt implies.

A loss of control may make day to day operations easier but the lack of understanding of how things work and what is going on can be a recipe for problems in the future. Is the Toyota Prius' user friendliness the cause of people's inability to react when (and if) the accelerator fails to release? Do people not know how to use the emergency break, shift to neutral, turn the car off? Or has Toyota's (and other car maker's) quest to make things as simple as possible removed our ability to control the machines we operate?

Personally, I prefer the control. Layer on the user friendliness for those that need it but allow manual control for those who want it. Is software perfect? Of course not and Mr. Platt's book indicates that there are strides to be made. Is the current crop of software crap? For the most part, no. Yes, there are quirks but the ability to customize and create what was unimaginable even 10 years ago is amazing. However, a book praising software developers and entitled "How Software has Improved" wouldn't sell. Every dummy knows that.