Architecture (as we can see in britannica) can be originally defined as being a word referring to the art and science of construction.
However, as an emerging science, computer science decided that “architecture” sounded like a cool term to use.
So, What The Fridge does architecture even mean in CS?
The word we use when we want to talk about design but want to puff it up to make it sound more importantMartin Fowler
This sounds like a really funny but somehow accurate definition, but let’s look at more formal definition:
the highest-level concept of a system in its environment, the organization or structure of significant components interacting through interfacesIEEE – from Martin Fowler’s article
Who The Freak defines what the highest-level is, or what is a significant component?
In most successful software projects, the expert developers working on that project have a shared understanding of the system design. This shared understanding is called ‘architecture.Ralph Johnson – from Martin Fowler’s article
These kinds of definitions exist because no one can conclude on a final definition. If we go from one company to another, their software architect would have different responsibilities with certain similarities. Even moving between teams in an organization will cause dissonance in the original believed term.
What the Flower is architecture then?
At the end of the day, it is whatever we want, is a social construct, and the final definition is part of what each specific group defines.
If we are talking about architecture in computer science, then there must be someone we could define as an architect.
Who The Fudge is the architect?
The architect is the one that has the knowledge to guide the project. It could be a strict guide who does not accept decisions from anyone, or it could be the guide who tries to give growth opportunities to all their team. And as with the architecture term, the architect is as ambiguous that it could be interchangeable with other terms like the project manager or engineering manager depending on the organization.
Why the Font do we need architecture and an architect?
Architecture is a way we have to define something. In construction, we define a building; in computer science, we define a system. But the difference between using it in construction vs. using it in computer science is that in construction must of the times if you already did something defined by the architect, it’s really difficult to change it. Meanwhile, in computer science, if you define something, it may not be really that difficult to change it later on.
Software is not limited by physics, like buildings are. It is limited by imagination, by design, by organization. In short, it is limited by properties of people, not by properties of the world. “We have met the enemy, and he is us.Ralph Johnson – from Martin Fowler’s article
After everything said, an architect and architecture are some of the vaguest terms in computer science, but everyone is happy using them because, in every organization, everyone knows the responsibilities of their architect, and the architect knows what he is supposed to do. What the f*ck architecture is will remain as the common question, but there will be always an architect eager to answer it.