Are you thinking of becoming an architect someday? What are your plans for future? Maybe you are just a hard-core programmer and want to stay that way? There are people in each group. I would like to become an architect, a technical leader, and a manager. What? All three? Actually, I would like to become a manager, but I think a software manager should also be a technical leader and have at least some of the architect’s skills. I’d say, by the end of 2008, I would like to be a manager. Those are my goals for next couple of years. I am still not 100% on it, but more and more, that’s the direction I want to pursue.
Back to architecture. Being a software architect is not easy. It is only for the select few.
But I know, now, what software architect is, and what it entails. I found out from this excellent article, Characteristics of a software architect, by Peter Eeles, a Senior IT Architect at IBM. It’s an excellent read. A must read if you would like to go in that direction.
Software Architect is (I’m putting my comments for each major point; quotes are taken from the article)..
The architect is a technical leaderNo question about it. You have to know your stuff. You have to be an expert in a lot of different areas.
The architect role may be fulfilled by a teamThis is an interesting point. I think that’s how I would like it to be: a team effort.
The architect understands the software development processThis is a must. A software process needs to be continuously improved. You have to understand it first, to make improvements. Thus, you need to know others processes as well.
The architect has a knowledge of the business domainVery important. One interesting point in the article, by knowing the domain you can foresee some of the problems or extension to the system.
The architect has technology knowledgeOf course.
The architect has design skillsA big part of architecting is designing flexible, easy to understand, maintainable systems.
The architect has programming skillsAs an architect, you will oversee other programmers, you have to know.
The architect is a good communicatorAn architect has to be able to communicate with a lot of stakeholders; he has to share his vision clearly. Plus, he has to defend his decisions.
The architect makes decisionsVery good point.
The architect is aware of organizational politicsYou cannot avoid politics, as much as I don’t like it, that’s the truth.
The architect is a negotiatorYou have to talk to programmers, testers, business people. You have to negotiate.
What do you think? A lot of skills and knowledge required.
Excellent article. This is the best summary I’ve read. Written in a clean manner. Nice, pragmatic approach.
Do you still want to be an architect?
ReferenceCharacteristics of a software architect, The Rational Edge Newsletter, March 2005, my recommended resource
Do you know a certification to become a senior software architect?