Working on a particularly tricky bit of configuration led me to consideration of a few issues.
Because customising systems brings cost accountants (and others) out in a cold sweat, we’ve all learned to prefer configurable systems.
Great in theory, and fabulous where we’re dealing with data and rules which are a known quantity – for example, addresses (I know there’s a few years debate to be had on that but bear with me).
However, for more complex business rules and workflows there’s a point where the distinction is more blurred.
Sure, configuration of the rules means you can realistically expect that they will work when you get a new release of software; but you’ll still need to determine if the new release allows you to improve the configuration you have.
It’s true that your config lives in metadata, but when you get into the more involved business rules (payroll calculations, absence rules), yours are likely unique.
Even if two organisations have identical rules, the flexibility of the system may have allowed them to get the same results by two totally different routes in config.
Some of this configuration is in fact tantamount to custom code – it just lives in a more controlled environment.
So what’s the point?
Well there are two really
One is about the permanent battle I have with trying my best to provide estimates for initial config and changes to calculation rules.
And the other is about the differences between customisation and configuration.
On the first point – give some thought to this
Are our rules complex? Most organisations tend to answer no to this, most are wrong.
Are our rules unique? As above, Most organisations tend to answer no to this, most are wrong.
Who else uses this software and have they done this already? Did they have help? Who from?
The more complex and unique the requirements, the fewer other users and smaller the talent pool of configurers, the more unpredictable the implementation or change process will be.
It will be harder, even for a highly experienced person to estimate work that they haven’t done before.
On the second point – don’t assume that the word “configuration” is an automatic route to pain-free implementation and maintenance.
If the system you buy/use has functional limitations that a clever config expert can work around to make your rules and calculations work, that’s great, but it’s not that distant from custom code.