I’m going to diverge ever so briefly from my “Reversed Assumptions” posts to share some happenings in this current engagement I’m on and to tie in some of the previous posts on design and architecture. This post focuses on what architecture is and what it isn’t. As I have engaged with many different sizes of customers over the years, one thing remains true: architects and architecture are many things to many people. There has been a lot of talk and debate on this, and I thought it necessary to be sure about what architecture truly is, and who is qualified to practice it.
There are many parallels between the architecture of computer systems and the architecture of buildings. Both mix science and art to create things that are elegant, functional, durable, and fit for purpose, and that enrich the lives of their many users.
Compare and contrast, if you will, these two descriptions:
- Building architects must know their materials and the properties thereof; observe legal constraints; invisibly intertwine water, gas, electricity, HVAC, telecoms, and data conduits; put enough space in the right places; provide privacy and access; and make it all look nice.
- Systems architects must know their hardware, software, and networks; know their speeds, capacities, and other characteristics; follow compliance and rules; accommodate competing requirements; design unbreakable security; and provide a pretty user interface.
It should be evident that, although their tools, materials, and methods of execution are quite different, both sorts of architect have to solve similar kinds of problems in producing their designs. I’m not suggesting that all parallels between the two kinds of architecture are valid; rather, I’m using the comparison to illustrate the fact that two apparently related entities (the architectures) can be similar at one level (conceptual) and yet completely different at another (construction). Concepts and principles that are to be found at the level of similarity will apply to all such similar entities.
“Architecture begins where engineering ends” is a statement that’s been tossed around for many, many years. It’s worth, at this point, distinguishing clearly between architecture and design. The two disciplines are related, yet they are not the same. Design is about creating a single, albeit complex, system; architecture is about understanding how to do design, and therefore how to create all such systems. Architects, therefore tend to be better at design than designers are at architecture. The architecture of the system is what takes the functional requirements, QoS requirements, trade-offs, and scaling factors, and creates the optimal design. The design of the system is what is turned into software. In other words, an individual design is an “instantiation”—an instance, an example—of the generic architecture. Architecture is thus, as computer scientists like to say, at one level of abstraction higher than design; architecture and design operate on different planes and have different purposes. They are both concerned with the creation of high-quality, fit-for-purpose systems, but from different perspectives.
I hope the distinction above is clear, because it matters. In fact, I would go so far as to say that an understanding of the difference between architecture and design is an important success factor in strategic projects. Armed with this knowledge, it should be possible to appoint a good architect; without one, your project is likely doomed from the beginning (like this current engagement). So, when you get your prospective chief architect in for an interview, ask them to explain the difference between architecture and design. If they claim architecture and design are the same, show them the door. If they don’t know that architecture provides the principles, tools, and constraints needed to put together a design, don’t hire them.
This engagement has been an eye-opener, highlighting the still extant massive divides between what people think and what people know. Don’t get me wrong: there are some great architects involved here, but that number is far lower than what I have seen in other transformations this large. It has to be said, though, that part of the problem of finding a good architect is caused by a combination of HR departments and human ego. Years of job title inflation have raised the humble “designer” up to an exalted “architect,” simply through sleight of nomenclature, in the same way that every sales clerk is now a sales consultant. This does make it hard for the really good architects to stand out, because somehow they have to shine through all the smoke and appeal to people who, for the most part, can’t actually tell the difference anyway. I hope that they figure out and understand the difference between architecture and design, and become one of those rare companies that can pick the good architect out of the herd.