I realise this isn’t a new rant but I need to vent. After coming back from Tech-Ed and listening to a few people talk about an architecture competition run there and how poor the competitors were. It seems to me that developers like to call themselves Architects where really they’ve simply designed a solution to a problem. Let me take an example from the world of building. If you need a house built then you know this is a serious project and you’d employ an architect to create all the plans, consider all the structural requirements, fire proof materials, thermal qualities, etc, etc. I.e. lots of complicated and big serious decisions. Whereas when you want decorate a room you’d probably do it yourself because it doesn’t really matter if you get it wrong, i.e. you can design the room within the constraints given to you by the original architect. In a similar way when I think about software architecture I think about systems talking to each other, or maybe down to the overall way a set of application services work together to provide a full application. What I don’t consider as architectural is producing a design for a small feature. For example, I might consider that architecting Visual Studio Team System would consider how to create something that allows various types of professionals to work on a projects and how all the various tools should work together. However I would consider something like the Server Explorer as a problem that needs a software design.
So before you go spouting on about what a wonderful architect you are, consider this, did you just put some new wallpaper up or did you really build a new house?
YES! You\’re right on the mark with regard to abuse of the term software architect. It is true that one evolves into a software architect over time, but it would be a mistake to automatically bestow a title of an architect to a programmer with many years of experience. Every software architect must be a programmer, but not every programmer can be a software architect.
Firebrand Architect CK – http://www.softwarearchitectures.com/blog