Role Profile for Software Architects
The role of the software architect is a frequently discussed topic and changes depending on any number of factors. Even with a large amount of existing material available (e.g. the RUP role definitions, the IASA Skills Library, etc), defining exactly what a software architect does is hard, particularly when you're trying to define a role profile for a project or recruitment. In an attempt to address this particular area, I've distilled what I think it means to be a software architect on a bespoke software development project and broken down the role into a number of broad groupings, which are the aspects of the software architect's role.
Rather than simply present a breakdown of the software architect role, I've given each aspect a brief description and listed a number of levels to reflect that the role of an architect is an evolutionary experience. For example, there's a big difference between contributing to the architecture of a software system and defining it yourself.
This additional categorisation of the aspects means that you can use the diagram in a couple of ways. The first is as a prompt when interviewing potential architect candidates so when they say "I've architected a system", you can ask them whether they contributed to or defined it, drilling into detail where necessary. The second way in which you can use this diagram is as a self-assessment. If you're an aspiring software architect, this will give you more information on what the role entails. Likewise, for more experienced architects, it will highlight areas in which you have little experience. For example, I'd say that my infrastructure selection experience is limited because of the type of environments that I work in (many banks have a central infrastructure team that take care of this stuff for you).
This is certainly a work in progress and we'll be refining this over the coming weeks, perhaps also putting some detail behind each of the major boxes. If you have any comments, find it useful, etc, please let us know.
Update: Please see What is the role of a software architect for much more information about the role.
Re: Role Profile for Software Architects
This is really good stuff. I was thinking of creating a "Architects Handbook" internally, but perhaps there is scope to do one externally if enough people were interested.
Regarding your boxes, something architecty in me wants to order them according to something like the roles- I mean that it feels like there is a spectrum of skills there that could be structured?
Tom
Re: Role Profile for Software Architects
A handbook ... interesting that you say that. ;-)
Re: Role Profile for Software Architects
Re: Role Profile for Software Architects
Re: Role Profile for Software Architects
Re: Role Profile for Software Architects
http://www.ibm.com/developerworks/rational/library/mar06/eeles/
Re: Role Profile for Software Architects
I've been building (predominantly) database-driven web applications in the Java/J2EE arena for 8 years and currently class myself as a Technical Team Lead having just led a greenfield software team that's built a b2b/b2c business directory search engine with "Web 2.0" social networking aspects (gotta love the pointy heads!).
I had the part-time help of an Architect on various aspects of the project and this discussion neatly categorises those areas that I was solely responsible for and those that were a collaborative effort where the two of us would bounce ideas around.
IMHO, having the presence of another senior technical resource (albeit on a consultancy basis) meant that very few mistakes were made in terms of technical direction/architecture as we were generally always able to correct each other before paddling the wrong way up the proverbial creek.












