29 September 2009

Living wills

By Andrew Clifford

Living wills for IT systems, which explain how they need to be managed at the end of their life, would help us keep them running usefully for much longer.

The UK government has proposed that every bank maintains plans which explain how the bank should be managed if it runs into financial difficulties. The plan shows how the bank's assets can be sold, how its liabilities can be met, and how it can be wound up quickly. These plans, dubbed "living wills", would help regulators quickly assess a failing bank and stabilise the situation.

I have been wondering whether we would benefit from something similar in IT.

IT living wills are nothing to do with business continuity or disaster recovery. IT living wills explain how to decommission a system gracefully, for example:

One of the main contents of an IT living will would be a list of the business processes that are supported by the system, and other systems that take data from the system.

This would be difficult to document. The links from older systems are like spaghetti. Commentators have pointed out that banks will need to simplify their corporate structures so that they can write living wills. I see parallels in IT, where the need to record what a system supports would drive simplification.

An IT living will would explain how the business assets in the system, the information and business rules, can be recovered.

Most corporate information is held in databases. The data needs to be exported in a simple, understandable form that could easily be taken into another system, or even into a simple spreadsheet. A database dump will not do. The living will would have to explain how to resolve the complicated structures used inside the database into much more understandable business data.

Recovering business rules is really hard. Reverse engineering code would not be acceptable. We would have to maintain good written specifications of all key rules.

A living will would explain how the main parts of the system interact, and how they could be replaced individually. It would be easy to explain how to replace a database if you have used standard SQL, but impossible if you have used vendor-specific extensions.

IT living wills would encourage a lot of good management practice. They would force systems to have simpler connections, data and rules. They would help us spot technology dead-ends. Paradoxically, planning the end of systems will help keep them running usefully for longer.

But IT living wills go much further than just good housekeeping. Existing systems are a major constraint on business change, and living wills would force us to make systems easier to change and to decommission. If we really want to take business forward, perhaps we should start by planning how to turn off the IT.