Architecture is a compass, not a blueprint - codecentric AG Blog
It’s christmas holidays and as many other people I use that time to goof off a bit – no big visits of relatives, no big vacation trips, just hanging around at home and making sure not to do too much at all. But as many other people after the first few days I start doing odd things, namely cleaning up things here and there. So, this morning I spent some time sorting out things in my office at home I don’t need anymore.
In doing so I found some notes I took 2008 at the Enterprise Architecture Conference in London. Even though it was a great conference I decided that I don’t need most of the notes anymore and threw them away. But there was one sentence on one of the pages that made me pause for a while. It seems that it was a sentence from a keynote that David Robertson, a professor from the Switzerland held. The sentence seemed to be so important to me at that time that I noted it down (I’m not a big note-taker, so it must have been important to me).
The sentence was: “Architecture is a compass, not a blueprint”. In brackets, I added a “Rethink that!” as a reminder for me to come back to that sentence. Okay, it seems that it took me more than 3 years to come back to that sentence and from todays perspective I think, it actually is an important sentence – one of those timeless sentences.
From my todays perspective it perfectly describes what architecture should be and what it shouldn’t. Architecture should be a guidance towards the right solution in a terribly complex environment where even “right” is an extremely complex thing that isn’t obvious and hard to find. Therefore, we need to watch the environment once in a while from several distant (i.e. more abstract) points of view, just with the goal to come back then and to say “From what I saw over there I think it’s a good idea to follow that path for a while”.
After that we take the next steps and then we observe again to decide about the next steps and so on: architecture as a compass. We usually cannot draw a complete map (i.e. a blueprint) from our territory upfront. It is just way too complex. And usually you don’t need that big, thorough map at all. Usually it is enough to take a few notes about the basic perceptions you had at the distant points of views (overview pictures and high-level concepts) and the rationale for the most important decisions – just in case you come back to that point and you want to comprehend why you did it then the way it is done.
Architecture as a compass also has a second meaning: Architecture is dynamic, not static. Architecture is not a goal, it is part of a journey. It changes over time. It evolves. It changes if the terrain changes, it changes if you learn something from your former steps. While an outdated map doen’t help you anymore at all a compass will always stay useful – but only if you accept that it is not a solution in itself but just a valuable aid to find the right direction on your journey through uncharted complex territory.
I think we also could get rid of many of these annoying discussion about architecture – especially in conjunction with agility – if we all would accept this one sentence: “Architecture is a compass, not a blueprint”. Architecture is not a map to the solution, it is a means to find the right way.
There is for sure a lot more to write about this sentence but it’s christmas holidays and I don’t want to do too much at all … 😉