Over coffee, every evening, some of my colleagues and I try to address some of the biggest challenges that the world around is facing. Our discussions span from the games politicians play, how cricket has been ruling over other sports in India all the way to the affect of global warming and trends in technology. On one such evening, while sipping freshly brewed coffee, one of my colleague started talking about the architecture work that he was doing for one of our clients.
He explained to the group, about the complexity of the architecture that he had been working on for the past few weeks. The project seemed to be turning out extremely complex and he was having a tough time putting all the pieces of the architecture together. For the next one week, we spent a few minutes every evening discussing the evolution of his architecture work and my friend went on explaining it to the rest of us. All of us had had reacted with a “Wow! That indeed sounds complex!!” sending a big smile on his face. In retrospect, I think the reaction should have been “Wow! That ‘architecture’ sounds complex!!”
Now, I am not an architect myself but I have had the good fortune of working with some really great architects and along the way, a bit of architecture knowledge has rubbed off on my seemingly non-technical mind. After we concluded that discussion, a few things kept coming to my mind:
1. How complex can a complex architecture get?
2. What makes architecture complex?
3. Should architecture be complex at all?
The few complex projects I have worked on, had really huge architecture documents, multiple architects in the team, involved multiple products and had taken a really long time to create the architecture. Based on my experience, I think these are the few attributes that define complexity of the architecture:
a) Number of products involved.
b) Number of interfaces and integration points.
c) Duration and effort involved in creating the architecture.
d) Number of architects involved.
e) Lot more things …
But then, when I look at the other side of the coin, I cannot help but think, ‘Isn’t it an architect’s job to take a complex problem and split it into simpler, more manageable units? And if that’s the case, should a good architecture really be complex? Moreover, when the designer picks up the architecture, should he be looking at a complex set of information that needs to be decoded before breaking it into simpler design details?
I have gone through the architecture documents of some really complex projects and what I appreciate about them is the simplicity. The documents, no doubt, had been extremely huge, but the language, the flow of thoughts and the explanation had been very simple and easy to understand.
In my humble opinion, a really great architecture is one that is not complex. In fact, there is no term as a “complex architecture” or a “complex architecture” is a synonym for a “bad architecture”. What is “complex” is not usually the architecture in itself; but the whole process of architecting. In most cases the “technology challenges” and more of “people issues” are what make architecture process “complex”, the final architecture in itself should never be complex.
The greatness of the architecture is in its simplicity not in its complexity – isn’t architecture a simple representation of a complex solution?
When it comes to architecture, shouldn’t the architects Keep It Simple Sir/Ma’m (KISS)?
About The Author:
Girish Srikanteswaran Kothamangalam is a Senior Project Manager working for the Systems Integration unit in Infosys. He manages projects in the areas of Enterprise Portals and Enterprise Content Management Systems.