|Research, training, consultancy and software to reduce IT costs|
Back to basics: Systems development
To improve responsiveness, risk and cost, you need to stop obsessing about systems development.
We are obsessed with systems development. There are huge bodies of work about structured methods. There are huge bodies of work about agile development.
These are all very well and good. They help you deliver new solutions quickly, at low cost and with low risk. However, maintenance costs for IT systems are higher than development costs, and frequency of system replacement is the big multiplier for IT development costs. If you are trying to minimise unnecessary IT, maintenance and longevity are much more important than development.
It is about focus. The focus of all development methods is the same, whether they are traditional, waterfall, structured methods or newer, iterative, agile methods. Their focus is on the development process itself: they attempt to meet requirements with minimum cost and at lowest risk. This is a good aim, but the wrong focus. The costs, risks and responsiveness of systems development are only a very small part of the overall costs, risks and responsiveness of IT. To achieve minimal IT, our systems development should focus on reducing overall costs, risks and responsiveness, and not just optimising the the development process itself.
The key is to think about what the systems development process delivers - systems - rather than the processes by which it delivers them. To get closer to minimal IT, you need to focus on the qualities of the product of systems development, not the qualities of the process.
Other than meeting requirements, the important qualities of systems that are influenced by development are the ease with which systems can be maintained and modified. The three most important are to have a structure to the system that makes it easy to modify, to have automated regression tests that allows change to be made confidently and quickly, and to have documentation which helps people understand the system and which is easy to keep up-to-date. Without these the system will constantly demand more resources than it needs - IT demanding IT without delivering business value.
Processes are important. But the processes used for development are inconsequential when compared with the processes used during maintenance and support. If your maintenance and support processes preserve and enhance the structure, tests and documentation of the system, the system will continue to be responsive, change will be cheap and low-risk, and the system will last for a long time. Conversely, if you don't preserve these during support and maintenance, then your systems will quickly degrade, and become difficult, expensive and risky to change. You will quickly be forced into an expensive redevelopment or acquisition.
To achieve significant cost savings, you need to stop thinking about systems development. Instead of worrying about how quickly and cheaply you can deliver projects, worry about how long your systems last and how cheap they are to maintain. Put your efforts into maintaining effective, non-bureaucratic standards for automated tests and documentation. This is a far better way of improving responsiveness, risk and cost than obsessing about systems development.Next: Back to basics: Standards and open source
Minimal IT: research, training, consultancy and software to reduce IT costs.