8 February 2011

How to choose architecture and technology

By Andrew Clifford

Architecture and technology decisions need to be driven by IT management requirements more than by functional business requirements.

We have plenty of methods for analysis and design, for project management, for programming, and for evaluating software. But we rarely take a methodological approach to defining an overall architecture and selecting the main technical components within it.

Part of the reason for this is that major architectural and technology decisions have usually been set by earlier acquisitions and projects, and, rightly or wrongly, new solutions tend to fit into what has gone before.

But if it is not already set, how should you define architecture and technology?

I do not think that you can start with business requirements, or even general non-functional requirements such as security and usability. Business requirements translate into IT functionality, and most modern architectures can deliver pretty much any functionality. You need to start with broader IT management requirements, such as:

Once you understand the main IT management requirements, you can consider the architecture by splitting the overall solution down into major chunks. You will need different chunks for independent business areas. You will need different chunks where pieces are outsourced, or where you may use packaged software. If longevity is a major concern, you need to split solutions so that different parts of the solution can be replaced independently, and pay attention to standards.

Once you have the major chunks, pick sets of technologies that fit into your architecture, which are conventionally used together, and which meet your IT management requirements. These may well be subsets of one of the major families of technologies, such as Microsoft, Oracle, open source or IBM mainframe. However, just because you pick, say, Oracle, it does not mean that every product from Oracle is appropriate. You still need to think through which pieces of that family meet your IT management requirements, and steer away from the ones that do not.

This is not in any way a detailed method, but for me the key points of defining an architecture and picking the right technology are: