At what point does a developer stops being simply a developer and turns into a software architect. Or in other words , whats the minimum job description of a software architect?
|
Like most IT job titles there is no definition, it is just a made up term. I would describe a Software Architect as someone who is in charge of the technical application design, building things like base libraries, application frameworks etc. Of all the various IT 'Architecture' jobs this is probably the lowest one on the food chain. |
|||
|
|
|
I could probably come up with 2 pages of humor here, but I'll assume you are taking this seriously. So, I'll respond as seriously as I can. First thing you must understand: @Craig is right... differnet organizations mean different things. For some, it's just part of their advancement track and doesn't really mean much beyond that. For others, its a distinct role and very often, they get subverted out of doing any code or other hands on work and so lose their efficiency. The point at which you stop being a developer and start being an architect is the point at which you spend 90%+ of your time engaged in the following
Short of it is that an architect is the interface between the dev team and the stakeholders (the BA is the opposite). They need to be able to understand the business side and the technical details, but truth is, they are likely to not "get their hands dirty" all that often. Their primary 'technical' skills need to be with UML, a word processor, other technical drawing tools, and presentation software. So, in most cases, within a few years, they will start to become less and less effective as their knowledge of coding becomes dated (e.g. they are trying to think in C++ while the project is in C# or Java). At that point, the smart people learn how to lean on and learn from the hands on folks. The others become a pain in rear because they have a harder and harder time relating to state of the art. |
|||||||||||||||||
|
|
I think there is no best answer than:
So if you do architecture, you are an architect. Maybe you asked for what is a "good" architect ? Or maybe a predefined task list? In addition to the other excellent answers, including the one from Jim Leonardo, please read this document: Who needs an architect - Martin Fowler My opinion ?
|
|||||
|
|
A guy whose coding skills are terribly out of date, but who is not capable of performing any managerial duties. Or An impractical fool with an over-inflated sense of self-importance who destroys whatever thing he touches, never ceasing to bring layers of accidental complexity to even the simplest of contrivances, but who is, thankfully, kept out of harm's way by being assigned the task of writing grandiose-titled corporate documents that no one is ever expected to read. |
|||
|
|
A software architect is a programmer with hubris. (This is no joke nor sarcasm.) |
|||
|
|
|
Although it is true that software architects "do architecture", I think the role today has come to mean much more. Someone in the "software architect" role tends to be a leader, both in skill and in status. I've always liked Ted Neward's definition of a software architect:
And later on:
Unfortunately, not everyone who carries the title "software architect" fits this definition. Others fit the definition but don't carry the title. Nonetheless, I feel this is a more accurate definition of the modern software architect. If nothing else, it is a worthy goal to strive towards. |
|||
|
|