Wednesday, November 23, 2005

Why software sucks

Scott Berkun's terrific essay Why software sucks, begins with the assertion "No one makes bad software on purpose". As hard as that may be to believe, it's true. But why does so much software suck? Well, first you have to understand what "this sucks" really means:
  • This doesn't do what I need
  • I can't figure out how to do what I need
  • This is unnecessarily frustrating and complex
  • This breaks all the time
  • It's so ugly I want to vomit just so I have something prettier to look at
  • It doesn't map to my understanding of the universe
  • I'm thinking about the tool, instead of my work
Now that's more concrete than "this sucks". As Scott says, if we invert these feelings, we'll find common responses people will have to good software:
  • This satisfies my needs
  • I can figure out how to do what I need
  • This is smooth, seamless and fun
  • This never fails.
  • It's beautiful
  • It is based on my understanding of the universe
  • I think about the results I want, not the tools
Building software that elicits these feelings is hard. It requires a combination of skills beyond just being able to write good code and build UI. And, sadly, even if you are successful, you won't meet everyone's expectations. No matter what you do, someone is going to say that your software sucks.

Some people go beyond quietly muttering about how much your software sucks. They build web sites or post to mailing lists enumerating why they feel that your software sucks. They even create coffee mugs with the same message.

Are they right? Maybe. Of course, there's no pleasing some people. They may just like to complain. Or they may have their own agenda. Obviously when a business partner supporting one vendor's software says that a competitor's software "sucks" you have to consider the source. But not everyone has an axe to grind. You may have really failed to meet their expectations

So should you listen to them? Yes. People who get beyond just saying "this sucks" can be the sort of user you want to talk to. In fact, if you look at the Lotus Notes Sucks web site, you'll see an included email IBM wants your help in fixing Lotus Notes inviting the web site's author and readers to participate in usability evaluations of a Notes re-design. (By the way, I know who sent the email and I think it was a clever approach for dealing with this type of criticism. It's too easy and often pointless to respond in kind).

Scott Berkun's essay goes beyond what I've mentioned here, I really encourage you to take a look.