| The Qualities of Solution Architecture Design |
| Written by John Critchley |
| Saturday, 16 February 2008 19:37 |
|
It doesn't take an architect to marvel at architectural wonders, such as the Sistine Chapel - the genius and creativity combined with constructive energy and skill are instantly recognisable. Similarly for technology architecture, when we experience a well-designed IT system we can feel it through all our sense. But what is the essence that separates good architecture from bad? Consider how often you have read an architectural design and, although technically good, you intuitively knew that something was missing. Now gauge the number of times you read a design that was technically sound and felt it was comprehensive & inspiring. If your experiences are anything like mine, then the cases of the former outweighed the latter, which inevitably leads to lengthy clarification workshops, issues during implementation as design assumptions are flushed out, and a large volume of high severity faults during testing. So how can the balance be tipped in favour of good design to limit these potential issues? The answer is notionally simple: test the output of architecture against the recognisable, principle qualities of architectural design before proceeding to engineering and implementation stages. There are seven principle qualities of technical design that, although individually distinguishable, together characterise comprehensive & balanced architecture:
These don’t define how to achieve an architectural design, but they do describe what architecture output feels like (architecture vs. specification vs. shambolic nonsense). Cohesion
The independent elements of the architecture function in harmony to fulfil a clear, common purpose; no element is left ‘orphaned’ from the rest of the architecture. The whole is an orchestration of the parts.Cohesion runs within functional sub-components of an architecture (e.g., how related the functions are within a module) as well across the entire architecture (e.g., the solution architecture fulfils a clear value for the business that defines the cohesion of its elements). Failing to ensure common purpose and coherency in the elements of a design results in fractured experience that frequently requires manual intervention where automation would be expected. This defeats the purpose employing of technology and introduces risk & cost to the enterprise operation. Completeness
There are no missing parts to the design and there are no elements of the design that have been left with a weaker description than the rest. The solution is complete and the architecture balanced. Organisation & process are often overlooked as valid elements of an architecture. These should to be included as part in the architectural design. Ignoring this frequently results in paper ‘solutions’ that cannot be integrated with the enterprise properly. Elegance
The architecture weaves together the ingenious use of technology with processes & organisation to complete tasks and fulfil business objectives. The architecture oozes innovation without confusing the observer, the solutions infuriatingly simple (“why didn’t I think of that?”). Achieving this degree of quality requires dedication, time and bags of experience. Elegance in architecture design is a prize accolade and a characteristic one recognises instantly - this is the x-factor. Frequently, the time-pressure imperatives of the sponsor limit the architect from dedicating the necessary time to strive towards the goal of elegance. This results in complex or over-engineered solutions that must be unravelled by the implementation team. Complex solutions often result in misinterpretation or redundant features, causing waste or even dysfunction … a costly outcome for a cost-saving measure. Equivalence
The architecture separates the design along distinct levels of equivalent concern of its constituents. Therefore, the levels of abstraction are easily distinguished within the design, allowing development at a parity of detail (e.g., conceptual vs. logical). Similarly, functional equivalence can be distinguished and other concerns isolated out of the design consideration (e.g., infrastructure vs. applications). This results in uncluttered and clear designs for each design concern. The principle levels of abstraction concentrate design effort efficiently. Without equivalence in the composition of architecture, the designs become heavily coupled across boundaries of logical divide (e.g., defining physical servers in a business architecture). This can result in duplicity in the design, which may produce inconsistency (one part of the design is changed but its coupled designs elsewhere are forgotten about) and inevitably lead to ambiguity in its interpretation for implementation. Hierarchy
The architecture demonstrates the inheritance of properties from higher levels of abstraction to lower levels of detail. This order of inheritance recognises patterns to simplify complex problems, using hierarchical relationships to avoid repetition and confusion in detail. As a result, designs that use hierarchy properly are ‘clean’, easier to understand and the relationships between higher and lower levels of detail clear. Not properly recognising the patterns that indicate hierarchy and repetitive properties in a design can result in duplicity and complexity. This has then risks producing an architecture that is neither elegant nor exhibits the characteristic of equivalence. Modularity
The architecture utilises a science of patterns (either standardised or bespoke) to establish repeatability in the design. The repeatable patterns may vary for each instance, but common characteristics are cleverly recognised and used to produce an efficient architecture. This results in efficient construction, which reflects in better cost, time & resource effectiveness in achieving the design outcome. Ignoring the benefits of modularising repeatable patterns in design will invariably result in higher cost of design, construction and, ultimately, maintenance. Eventually, this lack of modularity will limit the scalability & extensibility for the implemented design, driving replacement of the construction. Duplicity, complexity and poor maintainability are hallmarks of designs that did not leverage the power of modularity. Vision
The architecture conveys an inspiring outline of the future of the enterprise within the bounds of the scope of the problem being solved. Inspiration is born of creative innovation in the solution, justification in the language & context of the business and, occasionally, solving more than just immediate problems, but lateral or future issues, thus producing unexpected advantage for the business. Too often architecture output is dry specification that does not inspire. Project teams are more willing to pull together when excited by the work they will be doing and business sponsors more supportive of initiatives driven by an architecture they can perceive as being more than just ‘bits’ & ‘bytes’. The vision needs to be articulated from the perspective of each key stakeholder group. |

The action or fact of forming a unified whole.
Having all the necessary or appropriate parts.
Pleasingly ingenious and simple.
Equal in value, amount, function, meaning, etc.
An arrangement or classification of things according to relative importance or inclusiveness.
Employing or involving a module or modules as the basis of design or construction (where module is each of a set of standardised parts of independent units that can be used to construct a more complex structure).
A mental image of what the future will or could be like.