Characteristics of a software architect
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 leader
No 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 team
This is an interesting point. I think that's how I would like it to be: a team effort.
The architect understands the software development process
This 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 domain
Very 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 knowledge
Of course.
The architect has design skills
A big part of architecting is designing flexible, easy to understand, maintainable systems.
The architect has programming skills
As an architect, you will oversee other programmers, you have to know.
The architect is a good communicator
An 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 decisions
Very good point.
The architect is aware of organizational politics
You cannot avoid politics, as much as I don't like it, that's the truth.
The architect is a negotiator
You 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?
Reference
Characteristics of a software architect, The Rational Edge Newsletter, March 2005, my recommended resource
Comments
Go to:
« previous entry: Improving Your Process
» next entry:
Martin on Bad Design
The Pragmatic Craftsman