A blog mainly about Java

Looking for a definition of an architect

On top of my J2EE consultancy work, I teach one evening a week at university. The topics I cover go from UML modelling, Design Patterns, Refactoring, Java APIs, Servlets, JSP, XML, EJBs, XML to Web Services . My students have to do a weekly exercise and therefore have to model and write lots of Java classes (and refactor them from time to time). At the end of the year, I always have the same question: « Will I have to do all this work if I become an architect? »

In my students heads, an architect is someone who doesn’t write code anymore (even better, someone who never had to write a line in his/her entire life, not even a Hello World). I try to tell them that it’s difficult to link customers, project leaders and developers without having any technical background. One day I was so frustrated, that in my following class I introduced two new slides so we could talk about it. Here is the content (picked up from Enterprise Architect for J2EE Technology book):

“The ideal architect should be a person of letters, a mathematician, familiar with historical studies, a diligent student of philisophy, acquainted with music, not ignorant of medecine, learned in the responses of juriconsults, familiar with astronomy and astronomical calculations – Vitruvius, 25 BC”

After lots of laughter I showed them the following slide which contains more accurate information based on our job (Software Architecture and the UML – Grady Booch)

Architecture is just paper

Architecture and design are the same things

Architecture and infrastructure are the same things

is architecture

A good architecture is the work of a single architect

Architecture is simply structure

Architecture can be represented in a single Blueprint

System architecture precedes software architecture

Architecture cannot be measured or validated

Architecture is a science

Architecture is an art

The last slide shows how difficult it is to clearly define what an architect is and what an architect does. It’s easy to see the people he/she interacts with (users, customers, project leaders, developers, production team, maintenance team and other architects) but difficult to define the boundaries he/she cannot cross.

I’ve read many definitions but none really grabbed me. We also have to admit that it’s difficult to generalise: the architect’s role is really different from a small company to a worldwide one that works 24/7 with thousands of employees and uses B2B (the famous example of architecting a dog house, a house or a high rise).

If anybody out there has a good definition of what an architect is (here is what Wikipedia has to say but I don’t completely agree) I would like to hear it, if not, I like to think that in our scientific world, there is a black zone that nobody really understands.