Tue 27 May 2003
Making the Trade-Off
Category : Commentary/tradeoff.txt
If you should ever find yourself managing IT project, there are two things (I hope to persuade you) that you should have.
One is the ability to see the system in terms of pipes, reservoirs, and taps. Let me explain.
You should start off by imagining how each part of your organisation could work better if it has the kind of information you hope the system will produce for you. Then you imagine going around and placing the taps so that people could get the right information, on tap, when they're needed.
Then you work backwards to see how you can collect that information. That's when you design the piping system to suck the information from wherever they are being produced. And bring them towards the reservoir, which is the database system you will use to collate and store that data. From the reservoir, other pipes bring the information back to the taps. So there's a circulation.
It's important to visualise that circulation. For example, in an insurance application, the premium you charge for an insurance policy has to cover the costs of all the claims incurred by policies of a similar type. So you will want to set up the system such that information collected by the claims department is sent back towards the underwriting department so that the pricing of new policies can be automatically adjusted. That should make sense, right? But most systems don't have that feedback loop.
Two is the ability to make trade-offs. E.g., to get useful statistics, you've got to have a structure, so you can compare like with like, apples with apples. But the users may rebel against a structure and want to enter data free-form, simply because they can then record anything under the sun.
This is like having a user who wants the sun to rise from the east, and another who wants the sun to rise from the west, and you say OK to both. Even God can't do that. (Or can He?)
I've observed that this is somehow hard to get people to do. But you've got to think three or four steps into a problem before you can see where they collide with another "must-have" requirement. Then you've got to make the trade-off. There's no free lunch.
So you see, to do IT well, you don't need to be buzz-word compliant (three-tier, four-tier, Java, for heaven's sake). You've just got to be capable of logical thought, be intellectually honest, and be a decent human being. Welcome to the human race.