Skip navigation.
Home

How to create really bad software ...

If you're creating software, you're probably using some sort of database. It may be an SQL database, or something like XML or some other format, but it's likely a database of some kind.

I was thinking recently, and I figured I'd put my thoughts on the blog. I'm sure there are plenty of people out there who already understand what I'm about to write, and many who understand it better than I do.

For those that don't, here are two ways to create a lousy software application:

  1. Design the data model around how users use the data
  2. Normalize the data and design the UI around how the data is modeled

If you want the software to be truly unwieldy, simply don't put much application logic between the data and the UI.

I've worked with some software lately that has both of these mistakes. With the former, the application is bloated, slow, and has all sorts of bugs.

With the latter, the interface is too complicated to use.

It seems like some people who should know better have forgotten that the purpose of programming is abstraction. If we didn't need to abstract data from humans, we wouldn't need programming languages -- users could just interact with bits and bytes directly.

But a good program acts as a translator between the form of the information that makes sense to a human, and the way it makes sense to a computer.

There's my rant for today. Hopefully, someone will read it, have an epiphany and change the world with their well-written software.

Otherwise, sorry for the noise.