3 July 2012

Back to basics: Extreme reuse

By Andrew Clifford

Our prejudices stop us achieving the highest levels of reuse.

When we talk about reuse, we usually mean reuse of code. This could be low-level reuse, such as libraries, or higher levels, such as frameworks and services.

Reuse at this level is valuable. It helps deliver sophisticated systems faster. Provided that you manage it well, you can reduce long-term costs and risks by exploiting reusable libraries, and this contributes to minimising your IT.

Valuable though this is, this is not extreme reuse. Extreme reuse is when you don't write your own code at all, but use code that has already been written and, ideally, reuse system instances that are already running.

The most obvious example of extreme reuse is to implement packaged software, rather than write your own. Where there is packaged software that meets your needs and budget, it makes sense to use it.

But packaged software can have problems. They may be no packages that meet your needs well, or packages that have many more features than you need, which means it is more complicated to learn and to use. Packages can be very expensive. Using packages can give you a long-term dependency on a supplier which undermines your ability to control your own destiny.

How can we get the extreme reuse advantages of packages without the problems?

I think the answer is "generic applications". This is software, ideally provided as an on-demand service, which is generally capable of a broad range of IT requirements, and which you can quickly configure to your specific needs.

There are lots of different sorts of generic applications.

The commonest is Excel. Many businesses are run on Excel. Although we in corporate IT might look down on this, it is a way of meeting requirements closely at low cost.

Microsoft Sharepoint has some of the characteristics of a generic application. You can quickly build many types of information system based on Sharepoint.

Other software can be bent to many purposes. SalesForce.com has grown from its sales background into a more general tool. Even our own Metrici Advisor can be configured to support pretty much any business requirement.

We don't exploit generic applications anything like as much as we could. Large numbers of home-written systems and ill-fitting packages could be replaced by relatively simple configurations of generic applications.

There are challenges with this, especially with long-term management, which I will cover next week. Despite these challenges there is a large untapped potential. The main barrier is our attitude within IT.

Exploiting generic applications runs up against our prejudices. We feel that they must be second rate because they are not proper packages, neither are they proper bespoke systems. These prejudices apply both within the IT department and across the broader business. We want to protect our position as the purveyors of expensive packages and exquisitely tailored solutions, and our business colleagues want systems that are reassuringly expensive or which are unique to them. To exploit generic applications, to achieve extreme reuse, and to minimise our IT costs and risks, we have to overcome our own prejudices.