Monday, September 17, 2012

The unfriendliness of software

John Battelle and Scott Hanselman wonder about software:

    I spent a few more fruitless hours trying to find another solution on the web. There wasn’t one that didn’t require pretty significant technical know-how (such as installing a utility, running it to reveal all files on the iPhone, then deleting each file one by one, even if you weren’t sure what the file did). The only option that was relatively straightforward and seemed to work, according to many forums, was to restore the phone.

    Which I did. And I lost all my apps save the ones that come preinstalled on the iPhone in the first place. And guess what? It didn’t fix the problem.

  • Everything's broken and nobody's upset
    Software doesn't work. I'm shocked at how often we put up with it.

Interestingly, although both Batelle and Hanselman fill their rants with a number of instances of actually buggy software, for the most part what they are complaining about is two things:

  1. It's hard to design a simple UI for feature-packed software, so you end up with powerful software that requires training, experience, and motivation to use efficiently
    You need a four-hour class just to understand all the contortions Apple seems to be doing in its attempt to make its desktop interface work the way the iPhone does. You know, pinch and swipe and app stores and mission controls and magic corners and all that.
  2. In the attempt to design a simple UI, products often hide unimportant details that turn out to be important details, and then you find yourself at a dead end.
    The phone is pretty much useless now, because all of its storage is taken up. With what, you might ask? Well, it’s a mysterious yellow substance – found, in a masterstroke of intuitive design, in iTunes – called “other.”
    My iPhone 4s has 3 gigs of "OTHER" taking up space, according to iTunes. No one has any idea what other is and all the suggestions are to reset it completely or "delete and re-add your mail accounts."

This is an interesting discussion, and not a new one. Let's turn to Professor Tony Hoare's brilliant Turing Award speech, now entering its fourth decade:

Programmers are always surrounded by complexity; we cannot avoid it. Our applications are complex because we are ambitious to use our computers in ever more sophisticated ways. Programming is complex because of the large number of conflicting objectives for each of our programming projects.


I conclude that there are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies and the other way is to make it so complicated that there are no obvious deficiencies.

This stuff is very hard; which is, of course, why we become obsessed with it and spend our lives doing it :)

No comments:

Post a Comment