Thursday, November 01, 2007

Role of an architect

I have struggled a lot with what it means to be a good architect in the technology space. I have been involved with IT for a good 13 years now. Although an engineer by training, I have had this title for a good 5-6 years now.
So what have I been doing? Many things - filling in for project management, writing code when needed, providing design guidance using the experience gained working in this field, collaborating with user interface designers to express functionality that they can visualize. At times, I have also had to manage the client relationship to shield the project team and let them be productive. So have I been playing 'Architect' on these projects? I am not sure! The one common thread in all these roles has been leadership. On each of these engagements, I have been playing the lead role in terms of taking the proverbial bull by the horn and doing what is necessary to get the project over the line. Thus, from what I have seen, the architect or someone who carries a title of an architect, is more often than not a senior team member who has been through the grind of executing projects over and over again and has uses his/her experience or gut feel to make effective decisions that more often than not, prove right.
Of course, most of my career has been in the consulting space. So any first hand experience is definitely from this perspective. However, I have interacted with architects on the client side, who are employees and not consultants. I have often wondered what decisions I would make if I were on the other side.
In my opinion, in such a scenario, my first priority would be to understand the direction that the organization is moving in, the business goals, the culture, the delivery processes. All of these factors would certainly figure into what kind of architecture needs to be put in place to support the business. For someone to know the above, I think it is important that the person be acclimitized with the environment and have worked there for some time. Additionally, a natural curiousity for understanding the business would definitely be an added bonus. After all, the architect is a key position that translates technology to business and vice versa (I can cite countless examples of how I have seen this lacking in many clients I have consulted for..maybe another entry some other time).
Last but not least, what constitutes an effective architecture? I dont know if there is a good definition around this. At some organizations I have worked for, architecture to them really is just the hardware, deployment configuration, software stack etc. In other words, specifications that a data center would be concerned with. At others, architecture is extremely detailed and intimately connected with the technical design of the applications and products, going into the patterns of data movement, integration methodologies, protocols etc. Is one more right than the other? I dont know!
Anyways, if anyone reads this blog, I would love to hear opinions and thoughts.