I recently bought some new gadgets. I am usually reluctant to commit to new technology, but faced with rebellion from my family about our ancient TVs, the family computer, and a phone that they were embarrassed to see me with, I took the plunge and replaced loads of stuff. I bought a new Android phone, a large screen smart TV, a new PC, and a new PC monitor/TV.

From a functional perspective, these devices are very similar. The Android phone can do anything. The smart TV can access the internet and run apps. Using Skype I can make phone calls from the PC or the TV. I can play movies on any device and stream to any other. I can attach a keyboard to the TV and use it as a word processor. Even the "dumb" monitor runs Linux and can be hacked to run programs.

It is useful that any device can do anything. It gives a lot of flexibility, allowing you to rearrange devices as your needs change. You do not need to buy extra devices for features you do not use very often.

However, just because you can do anything on any device, it does not always makes sense to do so. Trying to use the web on the TV is not as comfortable as a PC. The built-in recording capability on the TV is not as functional as a dedicated machine. The phone isn't really cut out as a video streaming server. And so on. It makes sense for different devices to specialise in different ways.

Most business systems lack the flexibility of consumer electronics and are difficult to keep aligned with ever-changing business needs. To be more flexible, we need to adopt two principles:

Each system should be self-sufficient, with all the features it may need in any situation. Every system should be able to manage users, manage permissions, maintain master data, integrate, import, export, report, log, monitor, provide web-based and mobile interfaces, support add-ons, and so on. This gives lots of flexibility and removes the need for lots of peripheral systems for secondary features, but also allows dependencies between systems where it makes sense to do so.

We should configure each system to use only the features that reflect the system's role in the organisation. We might decide that some systems act as the masters for data, and others are slaves fed from it. We might have some systems that specialise in reporting, or in providing external web interfaces. Just like consumer electronics, it is a mistake to configure any one system to do everything, which would create a monolithic architecture which is impossible to manage.

This is hard. Traditionally, systems are acquired as narrowly focussed packages or from systems development projects with narrow requirements. System boundaries and functionality are an accident of history, and many systems are not self-sufficient. The overall architecture is very rigid, and is a major constraint on business change. And even where platforms are flexible (such as Microsoft Sharepoint), we don't have the methods to properly decide what each instance should do. If we want to make IT as flexible as consumer electronics, we need a new IT architecture.

Some name

Andrew has experience as an internal consultant in IT departments of major UK retailers - advising management and staff on project technology approaches. His current role is Technical Director of
Metrici Limited where he's responsible for the development of a web-based platform for assessment and advisory services.