To Train an Architect
A think-tank at OT2001, 2 April 2001
© 2001 David Harvey. All rights reserved
Warm thanks to the twenty-four participants in this think tank! The format of this type of session emphasises process and collaboration towards a defined deliverable in a very tight time-scale (75 minutes): it’s a tribute to the effort and concentration of all involved that we came up with (I believe) significant and useful recommendations out of the session.
The goal of the session was to produce an outline of the experience, accomplishments, and personal qualities we find in successful software architects, then to sketch a programme of personal and professional development to inculcate and strengthen these characteristics. While the literature on software architecture grows by the month, little has been written about the qualities and qualifications of those who act as architects in software. The responsibilities of the role are outlined in some of the less notation-focussed books, but even a job description won’t help us identify the particular personal characteristics and way of working of an effective software architect, even less indicate how such characteristics and habits of work should be fostered.
The process was as follows:
· Participants reflected in groups on successful (and where appropriate, unsuccessful) interactions as or with architects, capturing these experiences in short scripts or stories.
· These stories were annotated to highlight qualities present in successful interactions with architects (and to identify those notably absent from unsuccessful interactions).
· The qualities and attributes defined were written on 8 * 6 index cards and used to form a ‘semantic map’ on the floor (qualities deemed to be closely related – by any intuitive measure of closeness placed close together, distantly related qualities further apart).
· Participants made a position statement by standing at a point in the map that reflected their own particular interests and concerns, and on the basis of this positioning formed new groups.
· Each of these groups then produced a poster outlining ways in which these qualities might be fostered (through education, professional and personal development). Participants were – strongly – encouraged to note but then to go beyond ‘traditional’ means of building skills and experience (training, conferences, relevant work experience and so on)
· In a closing gallery session participants reviewed each other’s posters, asked questions, made comments (attached to the posters using post-it notes). The posters were then displayed in a public area of the conference – a number of other post-it annotations were made over the course of the next three days (some of these garnered responses in turn).
The clustering of teams around concepts was revealing: the eight posters produced developed ideas in the following areas
· Abstraction/holistic/aesthetic/simplicity/consistency
I’ve added where I feel it necessary some commentary on the posters themselves (in addition to transcribing some of the annotations).
The cluster of interest around leadership, and the fact that many of the stories produced which threw this topic up were of unsuccessful interactions, suggests to me (borne out by experience!) that technical people have some work to do to develop appropriate and effective leadership skills. The other looser grouping is around holistic/creative/aesthetic/systems skills, suggesting to me that development of vision is mandatory.
Largely undeveloped in these posters are the following
· Social and political skills (persuasion, influence)
· some group skills (for example, facilitation, mediation and consensus-building, which I don’t see as functions of leadership as it is usually understood)
· technical skills
All of these surfaced as qualities in the initial trawl of the stories: some of them are to a certain extent subsumed in the areas which the posters did explore.
Participants (who left their names) were
|
Gareth Bradley Jim Briggs Jon Collins Lee Copeland Gladwin Rachel Davies Sven Erik Knop Andy Longshaw Ken Lunn |
Mark Lycett John Lyle Peter Marks Duncan McGregor Clive Menhinick Michael Oderinde Colston Sanger Helen Sharp
|
Paul Simmons Matt Stephenson Detlev Vollmann Rob Westgeest Eoin Woods |
David Harvey has fifteen years of experience in designing, building and managing the development of software. He is currently Middleware Technical Architect at UBS Warburg, and has worked throughout the City of London on advanced middleware frameworks and architectures. As a consultant he has helped organisations make effective use of object technology, and has delivered introductory and advanced training courses in C++ and OO design. He has presented sessions at the OT conference and elsewhere on C++, patterns, distributed computing and software architecture, jointly (with Paul Dyson) presented the UK's first workshop on Extreme Programming, and was conference chair for OT99.