Yesterday I was in a fully day of writing training so I hope you notice some improvement in my writing! One of the main points that came out was it is very important to know who you are writing for, that is your audience. You really need to understand exactly what the people you are writing for are like, their interests, background and so on. This got me thinking about Architects (and developers) and the different types I have met.
I think that there are four different types of architects in IT today; three are mainly in large organisations and the fourth in all organisations. I think of them as senior developers or designers, application or solution architects, infrastructure or operational architects and strategic or enterprise architects. To me they have the following attributes:
Senior Developers / Designers
These people are typically experienced developers in smaller organisations or the smaller divisions of large organisations. They are experienced developers who still do programming but also understand a lot about the technologies. They normally architect new departmental level applications. They are young and dynamic, able to talk to business people, vendors and developers with a good understanding of the problem spaces of all three. Their main interest is in development and so often their solution uses rather too much new technology and becomes CVware. They understand OO and web development very well because they grew up with it and are keen on Agile methodologies.
Unfortunately, as they cover so much ground, applications with very high throughput, reliability, scalability or complex interconnectivity and integration issues are outside their scope of experience. Additionally, as they tend to do everything themselves, they are less good at achieving the sort of consensus required in large projects. The developers however think they are wonderful! Finally they think that applications architects are stick in the mud’s who don’t see the full richness of technology and typically don’t even know of the existence of operational or enterprise architects.
Application architects are similar to designers except they specialise in architecture. Again often from a developer background they now do too little programming for developers to think they are wonderful and spend much of their time in meetings. They are excellent communicators, lateral and out of the box thinkers, less detail oriented which means they were probably never excellent programmers anyway. As with designers they understand the technologies and businesses but as they spend more time in these areas they are rather better with them.
They tend to be older than designers and so come from mainframe, mini or Unix backgrounds and be less into jeans and more into chino’s. Their real expertise is understanding how to get large systems to work; achieving high scalability or reliability and integration with complex systems. CICS does not draw a sneer from these guys but a thoughtful nod.
They understand budgets, project management, Gant charts, QA, SDLC, how to deploy big and complex systems with multiple test and development stages and have a great feel for the business. They admire the energy of the designers but think they have a lot to learn about big systems and integration, think operational architects are just there to block all new systems and the enterprise architects have no touch with reality but come up with daft strategies that cannot be implemented.
Operational architects come from a data center background, sometimes database but more normally networking. Again they come from mini or Unix backgrounds and are really at home in trousers and a tie talking about operational procedures, ITIL and SLA’s. They spend a lot of time in status meetings and are mostly interested in hardware technologies, being able to talk about the model numbers of the latest and greatest servers with ease.
They look on new technologies with distrust (except hardware of course!), have a office near the datacenter, look down on developers and designers as people who have no clue about running big systems and think that the systems would be ultra reliable if the applications architects would just stop giving them such untested and poorly architected systems.
Enterprise architects are very senior people reporting to CIO’s who set the strategy for IT. They come from mainframe or mini backgrounds with many years since they did anything hands on when they were typically not developers but system architects. They go to all the Gartner conferences (with a 0.8 probability!) and have private tours set up by the vendors where they know many of the VP’s personally.
They set the technology, applications and operational strategies for the organisation, which are often ignored. They have a good understanding of large scale integration, technology, the applications used throughout the organisation and the business.
They tend to wear jackets, play golf, have an office in Corp Headquarters with stylish furniture and have a poor track record having defined both CORBA and J2EE as “strategic”! They are now looking into the whole area of “Enterprise Architecture” (not enterprise scale application architecture), Governance, Portfolio management and large scale integration.
They think that if the application architects would just follow the strategy then all would be well and that the operations architects just say no to everything. Designers are just smart developers to these people.
So which do you think you are closest to? I bet there are very few operational or enterprise architects reading this Blog! As always these are generalisations from my viewpoint so your mileage will vary.
Im a Technical Writer formerly known as an Operational Architect.
Occasionally I wear trainers ;)
good categorization... I wonder if there are any job classification codes (source: Dept of Labor) for these positions.. :-)
Senoir developer, who frequently falls into the trap of trying to incorporate too much new technology in my projects, but I'll learn someday.
And why we have so many issues with software.
Hmm... I see a bit of myself in each of those.
Hmm... I see a bit of myself in each of those"
SO, you are openly admitting to being a cross dresser?
But how many companies employ a single person to perform all roles - the classical split of developer, designer and architect is less apparent in modern system development - due to cost AND what I believe to be the misinterpretation of architect i.e. added to someones title to make them feel more important, but pay them the same ;-) Also, due to formulization of architectures and the basic principles being adhered to the process of 'architecture' is less meaningful - many architectures can be applied to the same application e.g. the over rated/stated SOA architectural model is being pushed as being the solution to all our problems - architecture for all, so to speak.
You forgot to mention that architects don't play with code! Or do they?? Also, to be an architect you don't have to come from a comp science background - there are many consultancy companies out there who have architects who originate from other disciplines e.g. English, Geography, Electronics etc. Does a designer make a good architect - not necessarily, but a developer doesn't necessarily make a good designer either.
Finally, are there more architects in the MS space vs Java?? - I suspect there are, but who has the larger, more successful systems MS?
To many cooks ;-)
Of these categories, I probably fall in the "Senior Developers / Designers" category, as I'm not only unwilling to give up doing actual coding, but am of the opinion that architects that haven't coded in years tend to lose their grip on reality and start overlooking important aspects of the design.
Martin Fowler recently came up with another categorisation of architects: http://www.martinfowler.com/ieeeSoftware/whoNeedsArchitect.pdf
Personally, I'd like to be an "Architect Oryzus", but since I work for a company where architects are typically of the "Reloadus" type, I end up being a blend of both types...