Well, when I say ‘Solution’ that’s a pretty general term. I’m obviously referring to a technical solution, the final product or resulting system in an IT project.
In terms of the architecture part. Let’s look at what an architecture is.
Architecture is the structuring of elements (modules/components/systems/interfaces/*), the relationships between those elements and the properties of both. Usually to satisfy a set of requirements and usually the stuff that’s hard to change later on.
As a general rule, you cannot create an architecture without knowing what is required up-front in terms of requirements and quality attribute goals (the stuff the big cheese’s expect… well performing, highly available, extensible, fault tolerant etc)
In systems architecture, this is ensuring that (sub) systems are organized in a way that provides the most optimal interaction (high performance, high availability, high scalability). In software architecture, this is organizing software components in the most optimal way (high re-usability, low coupling, high cohesion). In a service oriented architecture, this is organizing service and data contracts (cross boundary (north/south/horizontal) business object definitions, highly cohesive service interfaces, common (re-usable) low level data objects). In traditional building architecture, this is organizing building parts into a structure that meets building regulatory requirements or other specific design requirements (structurally sound, foundational plumbing, rain proof).
So in basic terms, solution architecture is the structured organization of elements, relationships between elements and the properties of both that constitute your solution.
A good architecture is one that allows a system to meet its functional, quality attribute and life-cycle requirements – the architectural drivers.
We don’t just create architectures for the sake of it though, nor do we do it just to satisfy the need for some form of documentation. There’s a whole lot to be gained from implementing a sound architecture for a technical solution. Here’s why need solution architecture and a set of reasons why solution architecture is important.