Thursday, August 30, 2012

Is “architect” a job or a role?

This is one of the questions posed in the SATURN 2011 Keynote called The Intimate Relationship Between Architecture and Code: Architecture Experiences of a Playing Coach by Dave Thomas. The article is a series of observations, presumably made by the author and colleagues, on the view of architects as seen by developers on agile projects and is fairly damning of architects and what they do. I'd urge you to read the complete list but a few highlights are:
Part of the problem is us [architects] disparate views from ivory tower, dismissal of new approaches, faith in models not in code.
Enterprise architect = an oxymoron? Takes up so much time.
Models are useful, but they’re not the architecture. Diagrams usually have no semantics, no language, and therefore tell us almost nothing.
Components are a good idea. Frameworks aren’t. They are components that were not finished.
The identification of high-value innovation opportunities is a key architect responsibility.
Is “architect” a job or a role? It’s not a job, it’s a role. They need to be able to understand the environment, act as playing coaches, and read code.
Addressing each of these comments probably justifies a blog post in its own right however I believe the final comment, and the title of this post, gets to the heart of the problem here. Being an architect is not, or should not, be a job but a role. Whatever type of architect you are (enterprise, application, infrastructure) it is important, actually vital, to have an understanding of technology that is beyond the words and pictures we use to describe that technology. You occasionally need to roll up your sleeves and "get down and dirty" whether that be in speaking to users to understand their business needs, designing web sites, writing code or installing and configuring hardware. In other words you should be adept at other roles that support and reinforce your role as an architect.

Unfortunately, in many organisations, treating 'architect' as a role rather than a job title is difficult. Architects are seen as occupying more senior positions which bring higher salaries and therefore cannot justify the time it takes to practice, with technology rather than just talking about it or drawing pretty pictures using fancy modeling tools. As discussed elsewhere there is no easy path to mastering any subject, rather it takes regular and continued practice. If you are passionate about what you do you need to carve out time in your day to practice as well as keep up to date with what is new and what is current. The danger we all face is that we can spend too much time oiling the machine rather than using the finite number of brain cycles we have each day making a difference and making real change that matters.

Thursday, August 9, 2012

Architect or architecting?

A discussion has arisen on one of the IBM forums about whether the verb that describes what architects do (as in "to architect" or "architecting") is valid English or not. The recommendation in the IBM word usage database has apparently always been that when you need a verb to describe what an architect does use "design," "plan," or "structure". Needless to say this has generated quite a bit of comment (145 at the last count) including:
"Police are policing, judges are judging, dancers are dancing, why then aren't architects architecting?"
"Architects are not "architecting" because they design."
 "I feel a need to defend the term 'architecting'. Engineers do engineering, architects do architecting. We have the role of software or system architecture and the term describes what they do. There is a subtle but useful distinction between a software designer and a software architect that was identified about 30 years ago by the then IBMer Fred Brooks in his foundational text, The Mythical Man Month."
"From a grammatical point of view use of "architecting" as a verb or gerund is as poor as using leverage as a verb... and as far as meaning is concerned, as poor as any platitude used when knowledge of precise content and detail is lacking."
As someone who has co-authored a book called The Process of Software Architecting I should probably declare more than a passing interest in this and feel that the verb 'architecting' or 'to architect' is perfectly valid. Whether it is strictly correct English or not I will leave to others far better qualified to pass judgment on. My defence of using architect as a verb is that there is a, sometimes subtle, difference between architecture and design (Grady Booch says "all architecture is design but not all design is architecture") and although architects do perform elements of design, that is not all they do. I, for one, would not wish to see the two confused.

The definition of architecting we use in the book  The Process of Software Architecting comes from the IEEE standard 1471-2000 which defines architecting as:
"The activities of defining, documenting, maintaining, improving, and certifying proper implementation of an architecture."
As a related aside on whether adding 'ing' to a noun to turn int into a verb is correct English or not it is interesting to see that the 'verbing' of nouns is picking up pace at the London Olympics where we now seem to have 'medaling' and 'platforming' entering the English language.