Today I was humbled in talking about architecture as I stumbled through some explanations of principles and key terms. For those that know me I am very passionate and professional on how I approach things, including discussions. I found myself stumbling because I got myself stuck on answering an open question about how I would architect something anyway I wanted to (skies the limit). I struggled because everyday architects resolve issues within the constraints of budgets, personnel, and technology stacks. It was like asking me, if you could do anything in the world, you want what would do? Flight or invisibility? But at the end of the day, the laws of gravity and physics comes into play.
I asked myself, why is architecture important?
Like everything else to me it is a process and with that it has defining characteristics. Some of the main issues that seem to get focused on is acronyms and perceptions. What I mean by that is acronyms have different meanings to different industries – they also seem to overlap. Like a house, software needs a strong foundation to build on and without it everything built on top of it is at risk – do we really need to concern ourselves with what we call it. Sometimes I think quite a few great discussions get last with acronyms and there usage
With that what should the goals of Architecture be?
The main focus should be bridging the gap between business requirements and technical requirements by understanding the software’s use cases and working out ways to implement them.
Well then, what key principles should an Architect consider?
- Instead of building to last, build to change.
- To reduce risk and model to analyze.
- Use visualization as a collaboration tool.
- Work to identify key engineering decisions.
With emergent architecture try using a more iterative or agile approach to help minimize risk of change throughout the process.
So, to answer the main question without a strong foundation you simple end with a house of cards, that is difficult to deploy, modify, manage, and support. While architect by nature is conceptual, without walking that mile or suffering through a bumpy foundation – how do you really know what foundation to build?