A software architect who doesn’t care about what his system is supposed to do isn’t worth his salt. For the term “software architect” to hold any meaning at all, it must be to describe someone who understands what the customer needs and designs a system that is fit for this purpose.
Sometimes, however, people talk about “technical architects”. I have myself been guilty of falling into this category once or twice myself. The fallacy of the “technical software architect” is that there is a large number of solutions that will work independent of what problem the customer have.
This is ludicrous. The very meaning of architecture is to apply technology to a context. Leave out the context, and you have no basis to choose a technology.
This is not to say that you don’t need experts within technologies and design strategies used in the solution. If the customer wants to connect a number of old and new systems into a shared portal, an Enterprise Service Bus (or a Data Warehouse!) may be a good solution. And then you will need people who are experts on the technology in question.
However, I would not call such an expert an architect. If you’re really good in some technology, I have no problem calling you a freaking good developer. Heck, you can even put that on your business card. Just don’t think you’re an architect.
Strange, I always considered a software architect to be someone with a broad enough knowledge and experience base to help the right experts work together. A technical software architect would be someone who would be focusing more on the technical aspects.
Maybe I’m just getting old.
I don’t think I agree, although I will be perfectly willing to admit that this is a gut reaction.
Applying technology to a context is what I would call development. I think architecture is more to do with leadership in some form. There are either multiple teams who need some form of coordination, or there is (horrors) some malfunctioning piece of wetware outside of the development team, and the architect is introduced in order to try to sort it out, or at least shield the developers from the issue.
I need to think some more about this, but I am really, really sure that applying technology to a context should be left to the dev team.
My question would be:
– what’s your defintion of an architect?
The reason for focusing on the non-functional requirments is of course that the functional requriments is defined and already have a focus.
You could say that an architect is’nt someone only focusing on the functional requirments.
Some people return from the shitter and call themselves food baby architects.
To each their own.