Posted on 12 June 2006 under General

Have you ever felt that terrible sinking feeling? The one where you realise that the latest upgrade of Super Corporate BlahBlah has broken a huge chunk of the loving customisations you did the year before last? Its a trap - the flexibility trap. Unless you are careful or lucky lots of corporate software forces changes to existing customisations and integrations. So all those special screen hacks you did will break. Those database queries that you use to feed the latest figures into your ERM system - dead.

The trap isn’t triggered when you decide to do a customisation. No its long before that. Its triggered when someone decides to buy software that:

  1. needs to be significantly customised to suit your needs; or
  2. needs to be customised before it can be used at all.

So what should you do? There isn’t a great deal you can do right now - most corporate software assumes customisation and or massive implementation efforts. Witness PeopleSoft for example. The idea of Opinionated Software as espoused by David Heinemeier Hansson offers some hope in the future:

Opinionated software was a term I coined to describe the rebellion against the fallacy of objective software. That software should be as configurable as possible from the outset to allow every user to bend it exactly to their needs. Opinionated software dares say the customer is not always right. That not everything should be a preference, that decisions can be made once for the better.

I’d like to see that idea take a stronger hold. Be a master chef, prepare me a meal of code that you think is the best it could be. Spare me the construction kit.

If your corporate software was sensibly opinionated then you’d have less customisation to do (as long as you agreed with its opinion). Ideally opinions would be obvious and shared by salespeople (”only buy our stuff if you believe that bug tracking should be a simple three stage process”).

The second trigger of the flexibility trap is software that is an empty shell waiting for you to fill it. Lots of toolkits fit into this category as does some software. For example, I’ve been working with a product that is supposed to provide help-desk style support. It has a workflow engine built into it which must be used. The bloody thing doesn’t even come with a simple workflow process out of the box. Its infinitely customisable, so it can do anything but can you get it to help without becoming an expert in helpdesk processes? No way. A waste of everyone’s time during setup/install and a real pain when it comes to upgrade time. Even if they had a menu of half a dozen standard processes (and optionally customised for those truly special cases) to choose from it would be so much better for everyone (except for their consulting arm). GRRRHFDHHFDHRHEHJHHHH!!!