[Book] Essays for hands-on software architects.
A practical and pragmatic guide to software architecture. Read more...

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.

Tags :


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

"Spectrum of skills" makes a lot of sense. Many people have "architect" roles but very few will do the same thing. The ordering on the diagram is kind of arbitrary, although each row kind of groups related stuff together. Perhaps this can be the discussion topic for the first user group session. It could be entitled, "what exactly do we do?!".

A handbook ... interesting that you say that. ;-)

Re: Role Profile for Software Architects

I just put together an 'Architect's Manifesto' to describe my role as an architect. There were two points that I have on my list that don't appear on yours: Customer Relationships, and Evangelism. I am expected to maintain good relationships with customers, keep my ear to the ground, and represent their concerns and requirements to the developers. Another aspect of my job is to liaise with other architects in my organization, identify areas where we can cooperate and share ideas, and even code where possible.

Re: Role Profile for Software Architects

Applying the "scores" to projects as well as yourself seems to give a fair indication of the architectural health of that project.

Re: Role Profile for Software Architects

You're right - I'd not really thought about it like that.

Re: Role Profile for Software Architects

I notice there is no box for "sorting out cr*p". The week I am having makes this feel like an oversight :-)

Tom

Re: Role Profile for Software Architects

I like this approach to describing the aspects of a software architects role. One area that to consider adding is that of Evangelist / Communication. An important role of an architect is to convince management and the team that the selected solution is valid. An architect needs to know how to communicate with management effectively. They also need to be effective in selling their work to the developers and others that implement the architecture.

Re: Role Profile for Software Architects

I've been talking about the role of an architect recently and the sales aspect has come up more than once. You're right; architects *do* need to sell their vision to both the management and the development team. If you don't successfully do this, then I guess nobody will buy into your solution - and that's not a good position to be in. I'll add this in when we revise the profile. :-)

Re: Role Profile for Software Architects

Nice description of software architect role can be also found here:

http://www.ibm.com/developerworks/rational/library/mar06/eeles/


Add a comment Send a TrackBack