Monday, March 09, 2009

Two types of Architects

I am amused by these creatures called 'Architects' in software development. In recent phenomena, They are available under numerous headings such as 'Software architect', 'Solution architect', 'Front end architect', 'Enterprise architect' and so on. To me, in what they really do, there are only two broad types of architects. My brain timed out while guessing fancy names for them so their description is in order with uninteresting machine generated type names, it is up to you to decide what to call them.

The Type1 Architect:
A Type1 architect lives near 'The well of Eternal dreams' in his tranquility. He speaks high of latest technologies, buzzwords from internet meme. He actively attends all expensive technology conferences, management meetings, and is excellent at presenting management with summaries of what he may possibly be capable of.
The ideal Type1 architect rarely talks to developer and/or QA teams, he doesn't really waste his time for trivial details and is religious about development-by-exception (don't stop coding/testing till you hit the roadblock); he would rather express his greatness with another Type1 architect who can really appreciate him. He is a huge fan of his super-mega automated, ultra-modern cloud-based, universally-ultimate end-of-the-world web 9000.0 ready architecture, which he thoughtfully insists in applying wherever it's not needed. His thinking is beyond languages, frameworks, platforms and business needs, no mortal can grasp what he thinks. He usually masters the skill of overkill and is full of without-the-box ideas. I can really go on for next few weeks talking about this type of architects but I need to talk about the other type so I will stop here.

The Type2 Architect:
This type of dude is a very simple earthliving guy, he lives by the belief that success of software development efforts is dependent only on the people who are involved in it rather than tools and technologies. He holds the shared vision of what the end product is likely to be and thrives at driving the team efforts in that direction without managing them. He doesn't fear coding (more like the existing code fears for its life when he starts coding), testing or training whenever he needs to do it. He believes in pleasing management with frequent stable releases than presentation of the obvious. He communicates with everyone, right from tester to business analysts and managers frequently, this guy is often found roaming around discussing with different team members.

So if you are an architect, what type are you?


straun said...

It sounds like you have had an encounter with a Type 1.

I call these types 'hands on' (type 2) and 'hands off' (type 1). Neither type can effectively guide development in the long term, because a type 1 driven project will eventually become derailed by the details; while a type 2 driven project will drift away from the hyped end of the technology - which leads to brain drain and support issues.

The most successful projects are the ones where both character traits are present. You have to live and breath the buzzwords to differentiate between the myth and the magic. You have to roll up your sleeves and code/test/deploy on a regular basis to learn from your own decisions.

And me? To an outsider I would appear to be a type 1, but anyone who has worked with me will know that I am closer to a type 2 (I hope).

The true skill of an architect is to have the breadth and depth of vision that covers both the whole technology space and all the necessary detail to make it fit together.

Nirav Thaker said...

It sounds like you have had an encounter with a Type 1.

How I wish!

I hope we had the 'ideal mix' of both, (after all there has to be something to differentiate them from senior developer or management) but it's not the case.