Monday, 17 February 2014

What is "Architecture"? It's not "Design"!




Put five IBM Architects in a room, ask that question, and stand back...  And, if the energy levels sag, ask the supplemental “what’s the difference between architecture and design?

From the myriad of arguments that ensue, I see two common themes:
1.      “Architecture is the big picture stuff, design is the detail”
2.      “Architecture provides the guidance and governance to ensure good design”

Of course both ideas are critical – the first suggesting mechanisms for breaking large systems down into manageable chunks (“systems of systems” etc), while the second offers, at any scale, a sense of “that architecture would be a good basis for that design”.  

But I, for one, do not like homonyms (the same word meaning different things to different people); and therefore find such conflicting distinctions tiresome.  So, for many, many years, and based on my aero-engine days(*), I have been an advocate of definition #2, arguing that the complementary but fundamentally different ideas of architecture and design are scale free:  for example
·         there are “few” chip architectures underpinning many chip designs,
·         there’s “some” network architectures (SNA(!), TCP/IP) that form the basis of 1000’s of network designs
·         and (maybe my favourite), there are (were!) exactly five Gartner client-server architectures (“distributed presentation”, “remote presentation”, “distributed logic”, “remote data access” and “distributed database”) selected from over and over again – Cloud, anyone?

Maybe the best distinction between the two for me is… bridges – how many bridge architectures are there?  Wiki says seven.  But how many bridge designs are there?  Exactly the same number as “how many bridges are there?”The critical question therefore is – how do you chose the right bridge architecture for your specific(sic!) design?  It’s all a question of context…


PS:  (*)Aero-engine architectures:  for example, there are (or have been!) pros and cons to “two shaft versus three shaft; or “high bypass turbo fan versus turbo-jet”, or “reheat versus no reheat”…  Every engine design needs to choose between these architectural options.

No comments:

Post a Comment