|Research, training, consultancy and software to reduce IT costs|
People are different from computers
IT often tries, and fails, to treat people and computers as if they were the same. This does not give people the flexibility they need, nor computers the definition and proving they need.
How often do you hear people asking questions and not listening for answers? Why did he do that? Why do they think like that? What does she see in him?
These aren't real questions. They're a way of reasserting our own position, disregarding our opponents. The last thing we want to do is listen for answers, because it might show up our deficiencies.
IT is full of these sorts of questions. What can't the users decide what they want? Why do they keep changing their minds? Why can't they accept the new ways of working? Why is it so difficult to integrate systems? Why is the system so full of bugs?
The truth is we don't want answers to these questions. The real answers will show us up. The truth that we don't want to face is this: people are different from computers.
In the typical IT mindset, computers are rational and systematic. People and organisations should be rational and systematic, too. Time and money and politics get in the way, so we have to make do with "near enough". We never quite finish gathering requirements, never quite complete analysis, design and specification, never quite finish testing.
This mindset misses the point.
Computers are completely systematic. They can not deal with ambiguity. Near enough is never good enough with a computer. Near enough is miles away. Complete definition and proving are vital. Without them the computer simply can't work, any more than a car can work without the engine bolted in. From the computer's point of view, it doesn't care what it does, but it must be completely defined and made consistent through testing. If you miss this, you won't be able to get systems to work together, and they will be full of bugs.
People are the opposite. They are complicated and dynamic. They resist being systematic, and exude ambiguity. People will never fully decide what they want, they will keep changing their mind, and will resist change.
We need to adopt methods that treat people and computers differently. People can not live in a fully specified and defined world, so our methods and technologies must allow them to refine and evolve their ideas through time. Computers can not live with ambiguity, so our methods must give them the definition and proving that they need. We need to be softer on people, and harder on computers.
Some methods try to do this. Iterative development which emphasises constant re-integration and testing provides the computers with the definition they need, and allows the overall system to evolve along with its masters' ideas.
But I think we need to go further. We need to have systems which, once they are complete, can be tailored and changed as their users' needs evolve, without resorting to expensive re-engineering. But the underlying technologies should be unambiguously defined and proved so that the computers can function without error across all potential uses.
But that's difficult. Maybe that's why we don't want to listen for the answers.Next: People make IT expensive
Minimal IT: research, training, consultancy and software to reduce IT costs.