Why Software Sucks is a very good book by David S. Platt.

In the book, and in the podcast you can listen here (IT conversations), David shows many examples of software not design to ‘just work’:

Why does Google know how to correctly translate a United Parcel Service tracking number, while the actual UPS website requires multiple entries just to get to the point where the tracking number can be entered?

I agree upon two facts:

  1. Software should just work. This means it should do the obvious thing without any (much?) complicated setup, configuration, navigation.
  2. Software is too often done for other developers and not for “regular” users (he says that a typical example is open source)

While average users are expected to use the computer as an everyday tool, programmers too often produce software that has poor functionality, especially compared to other devices used to perform other routine tasks.

People go to Home Depot to find something that makes a hole, not to learn every little thing about drills before they can make the holes.