Should Architects Not KISS?
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.




Comments
Hi Girish,
Nice article on the Keep it Simple about architectures. Agree, Architectures have to be very simple, otherwise, modifying them would be very difficult.
Posted by: KN | February 13, 2009 9:12 AM
Nice post.
An architecture should aid in the process of managing a challenging business problem, it shouldn't result in managing a challenging architecture.
Posted by: Dinakaran | February 20, 2009 4:29 PM
YES! But, please do not mix up an "easy" big picture and the underlaying "complex" solution. It's some kind of virtualization. If you just claim E=mc^2 ... easy, but do you understand all the implications? Architects, and many others, need good communication skills to present complexity in an understandable way to any stakeholder.
Posted by: Dirk | February 25, 2009 10:01 AM
A quote from C.A.R Hoare is appropriate:
"There are two ways of constructing a software design. One way is to make it so simple that there are obviously no deficiencies. And the other way is to make it so complicated that there are no obvious deficiencies."
Posted by: Al Maline | March 3, 2009 3:45 PM
Nice one. A complex architecture should never be adopted. It makes the product fragile. But as architects, we should strive to model the complex problems with a simple architecture. Believe me, it works long term...
Posted by: Senthil | March 11, 2009 4:01 AM
A lovely writeup on one of the biggest dilemmas for architects. An architect has two major roles. One as "builder" of systems. The other as an executive adviser in decision making and facilitator of making choices by various participants. It is in the latter that KISS is required. Often, the failure to KISS arises from an architect not being able to articulate the architecture is the second context above. My 2c worth :-)
Posted by: Rajeev Arora | May 9, 2009 2:26 PM
Not all architectural solutions can be simple. Experienced architects have the ability to create 'complex' architectures but they should be presented and documented in simple language, flow, pictures etc so that it is easy for non-Architect community to decipher the 'complex' architecture in place. My 2 cents...
Posted by: Nitin Gaur | October 13, 2011 7:50 AM