Structure, foundations and vision
The word "architecture" means many different things to many different people and there are many different definitions floating around the Internet. For me, architecture basically comprises of four things.
- Structure - the building blocks (components) and how they relate to and/or interact with one another.
- Foundations - a stable basis on which to build something.
- Infrastructure services - the essential services that are an integral part of whatever is being built. With a building, this might be power, water, cooling, etc. With software, this might be security, configuration, error handling, etc.
- Vision - it's crucial that you understand what it is you are building and how that process will be undertaken. Vision can take the form of blueprints, guidelines, leadership, etc.
Architecture is inherently about structure, but it's also about vision and creating sufficient foundations to deliver a set of requirements; regardless of whether those requirements are related to a physical building or a software system.