It's easy to want to use the things you're used to, but forcing software into situations that aren't appropriate is a poor long-term solution.

Starting with the right tool (or set of tools) can save you having to either throw it out and start again or limp along with an inadequate solution when you reach the limitations of what seemed like a good choice at the time.

These comments are particularly relevant in a business environment where people need to share data. If you are the only one involved then do whatever you want. I think it's still a good idea to think about the right tools for the job, but if no-one else is affected you can make your own choices.

Why it hurts

Some people use the same software packages for everything, no matter how appropriate. Some commonly weird activities are:

  • Using spreadsheets as documents
    You really don't have the formatting options for decent documents. Really. I know there's a lot you can do in cell formats but it's still not a document.
  • Using databases for lists
    Overkill. If you just need to keep a list of things, use a spreadsheet or even a text file. You might be happy with a database interface but it's likely to horrify anyone else that needs to get at the data.

Why we get it wrong

Lack of time. We need to do something now, so use {product} and we'll come back to it when there's time. Except there's never time, not until the monstrosity you've created starts destroying cities and laying waste to villages.

Misplaced assumptions. You might quite reasonably think that you only need a short-term solution, in which case a quick-and-dirty solution that just gets the job done is Ok. This is fine, so long as it really is a short term solution.

Lack of analysis. The long term requirements of a new system or process can be difficult to foresee. This is where experience (bitter, bitter experience) come into play. If you've got the scars from some bad decisions, you're less likely to repeat them; although no-one is immune. Put bluntly, worthwhile analysis is hard, but bad choices can be worse.

Lack of knowledge. I don't mean this to sound as harsh as it may, but sometimes the people making the decision aren't aware of the options. Platitudes like 'thinking outside the box' are almost relevant here (although once you've seen the options it's more like making the 'box' bigger).

Tunnel vision. To justify not looking at anything not already is use I hear things like "we always use...", "why can't we just..." and so on. If someone wants to use the latest and greatest whiz-bang software package they've just seen in a magazine/trade show/computer store with fruit-based branding, you tend to get a slightly glazed look and earnest assertions along the lines of "{product} can do everything; we don't need to look any further". You might be right, but it's good luck, not good process.

Getting it right

What makes something the right tool?

Context is everything. The right tool for one organisation might not be the right tool for another with the same problem.

After you've done the analysis (that's after, not before), some other considerations are:

Familiarity. Not a justification in itself, but systems need to exist in an environment. If you have Microsoft everything, it's probably not a good option to look at an Apple-only solution (and vice-versa of course).

Openness. A particular bête-noire of mine. If your solution needs to exchange data with anything else (and most will), you need to consider how this will happen. Even simple operations like copy-and-paste aren't as universally supported as you might expect. For off-the-shelf applications, having good system documentation is a must.

Flexibility. I favour configurability over customisability - meaning a user interface to change the behaviour of the system without requiring vendor support.

Ubiquity. A system with a wide user base does two things for you. (1) you're more likely to be able to get local support either from appropriately skilled people or organisations, and (2) your own people are more likely to be familiar with the operation.

Just because you can do something, doesn't make it a good idea. Think about the longer term uses of any new system and try to include them in your decision making process. Remember that a little compromise isn't always a bad thing.