“Owning a hammer doesn’t make one an architect”
-An old proverb
Well ,object oriented system design is here for more than two or more decades, still people had struggled and struggling a lot to adopt to it. Why still so many people cannot become master of it?
Only very few people who probably having their hairs turned gray or losing them partially or completely doing well in it?
Many people will say Hey man! We are doing OOP and OOA/D since you were not even born or when you are a kid! I know, they probably are master or skilled professionals and hence known as senior developers or may be having more coveted designation of “Architect”. But my argument is still why it’s so sacred skill? What is if somebody really wants to learn it? What he have to do and how he can assure himself that he had mastered the art.
In my quest to find answers to these questions, I read lot of books, magazines and surfed through a whole lot of blogs, forums [still doing this] and think that I am getting my answers or at least I found the way for getting there.
First let me clear some doubt, being “a codie guy” will not help you much if you want to become Architect. A codie is that fellow who had mastered the syntax of any object oriented language or an expert in using IDE. I had seen couple of my colleagues/ friends/seniors who are GURU in Java or .NET or PHP [by the way, PHP is object oriented now and I am now able to write “Hello PHP” ]. Give them any debugging problem or logical problem and look into their eyes!! …
But they lack what is the soul of architecture “thinking and thinking and deep thinking”. You should understand to treat your system from various angles.
Just to give you a small example, there is a glass half filled with water.
If you ask to one codie guy he may say “Glass is half filled! “
Another codie might say “Glass is half empty!”
But when you ask to an Architect he will say “The glass is half filled and half empty”. S/he can think of both the perspectives.That is how I define the person with Architectural ability.
This is also called as “View” of a system in architectural language. When we design our system we should not hold any preconception or biased views about any stakeholder, platform, any team member, any programming language or database etc.
We should never forget that primary aim of system design or even entire SDLC is meeting the business requirements utilizing technological capabilities.To fulfill these requirements systematically, organizing the information consumed, manipulated and or resulted out from system is necessary for an Architect.
Also,There are more aspects to become an Architect.We’ll see those aspects and more on system design in next posts…
sometimes journey is more important than reaching the destination.
Until then, Think Architecture!



