Wednesday, November 14, 2007

David Platt on Why Software Sucks

I went to a lecture by David Platt on the subject of "Why software sucks", which discusses what is wrong with software today (hint: it's mostly designed by programmers) and how we can improve it.
From listening to a previous ARcast with him I already knew he is a very entertaining speaker, and he proved me right (in fact, I kept thinking I could bring my wife to one of his lectures and she would have enjoyed it as well).

David began his presentation with a screenshot from the Better Business Bureau in the US, listing complaints by industry, and the amazing thing about it - people dislike software more than they dislike used-cars salesmen!

The main idea of the presentation (backup up with all sorts of amusing anecdotes):

  • People don't buy software for the sake of the software itself - they buy software to get something done. They are not interested in using the software, they want to have used it.
  • Programmers tend to design software for people like them, while most users are very different.

Platt's solution resolved around 5 key points:

  1. Add a virgin to the team - add someone to the team with zero knowledge about the inner workings of your software.
  2. Break convention if needed - don't behave in a certain way just because all every application behaves the same way.
  3. Do not let edge cases complicate the main stream - extra features aimed at edge cases complicate your software and make it counter productive.
  4. Instrument (Carefully) - Try to gather information about the way users use your software without harassing them.
  5. Question each decision - ask if each decision is taking your project closer to the result or further away from it.

The lecture itself was followed with a Q&A session, in which I asked him a question (which landed me a signed copy of his book - thank again, David!):
If programmers are so bad at designing UI, why not bring in a specialist to do it?
His response (after correcting me for saying "Graphics designer" instead of "User interface designer") was it's actually a good idea, since most of the industry is already headed for specialization in various subjects.

I found another podcast on ITConversions network, and here are two short videos from the presentation:

No comments: