What is IT Architecture?

Architecture definition

Architecture is defined as the fundamental organization of a system, embodied in its components, their relationships to each other and the environment, and the principles governing its design and evolution. Source: IEEE 1471-2000

Key attributes of an architecture are:

Architecture defines elements : The architecture embodies information about how the elements relate to each other By definition, the systems can and do comprise more than one structure and that no one structure holds the irrefutable claim to being the architecture Every software system has an architecture because every system can be shown to be composed of elements and relations among them The behavior of each element is part of the architecture.

Architecture processes Enterprise architecture (EA) Enterprise architecture is the process of translating business vision and strategy into effective enterprise change by creating, communicating and improving the key principles and models that describe the enterprise's future state and enable its evolution. The scope of the enterprise architecture includes the people, processes, information and technology of the enterprise, and their relationships to one another and to the external environment. Business architecture (BA) includes: Business area vision, strategy and value proposition Business services and/or products and value creation chain Business functional decomposition with supporting processes Business organisations, who, what, how and available resources Business IT alignment and the implementation of a business strategy Information architecture (IA) Data and application principles, policies, standards, technologies and models that link the business with technology architecture; Information assets, flow of information and the composite views of information required for decision making; Information topology of business data and applications with their supporting services for the enterprise Constraints in which data models and applications will be further developed. Technical architecture (TA) Technical Architecture refers to the structured process of designing and building IT hardware / infrastructure, whereby issues such as Server Hardware, Network, Storage, Backup, Resilience and Availability are all within the remit. Solution architecture The combination of the Business + Information (Data & Application) + Technical Architecture for an particular business problem is the Solutions Architecture.

The heart of a good solution architecture is to ensure that the system specification is available to everyone.

Technical Architecture

Introducing the concept of a "technical architecture" has gained a lot of ground in recent years. The problem is that delivering systems on time and within budget is hard enough when the only thing to consider is the immediate project. When additional "enterprise considerations" are brought into the equation it is not surprising that many Project Managers and Developers dread the words "architecture".

And, it must be said, in many situations the Project Managers and Developers have a point: For small(ish) scale systems with limited integration there are few architecture considerations. A good architect should be able to realise this and their involvement will be minimal. However, when the system is large, integration is significant or user requirements are complex then involving an architect is normally a good idea.

This is the same in the real world of bricks and mortar: If you are building a large, municipal or corporate building, you will probably want to involve an architect. If you are putting up a shed in your back yard then getting someone to come up with a design may be a little over the top.

Data Architecture

I have acted as a Data Architect on a number of projects. And what is Data Architecture you may ask. Well, the description provided by Wikipedia is actually pretty good: I try to ensure that

the database created for a particular system is consistent with good data modelling practices and consistent with the data environment that the system will be deployed in

And sometimes those two aims seem to be mutually exclusive.