Architecture is a skill, not a role.
Categories: Issues“We’re looking for a .Net / Java architect…”, a pretty common sight in todays work ads for software professional. I keep wondering, who is this architect and how does his role compare to the regular developer?
I consider myself fairly up-to-date on the latest software architecture trends. I lean towards architecture as a question of best practices and methodology, not about technology or tools. However, the correct picture is probably both. I check up on the architecture term and I find Skyscrapr, the new Architecture MSDN site. They categorize architects into 1) Solutions Architect, 2) Infrastructure Architect, or 3) Enterprise Architect. Martin Fowler wrote a book about Enterprise Architecture Patterns, which describes patterns of layers from data layer to GUI layer, crossing all three roles above.
My conclusion of all this is that architecture is a knowledge skill that goes hand in hand with the use of tools, infrastructure and development practices. It’s critical to have architecture skills when you look at something more than the next piece of code you’re about to write. Architecture skills will save you hours from redoing a solution once more.
Keeping architecture as a role sounds imposing. Telling a developer how to write code will never be as good as getting a developer to understand how to make the right architectural decisions. Hence, architecture becomes a skill. Saying this, I believe the architect as a coach can be a good idea. An enterprise project will most definitely benefit from this. And having several “architects” coming together to solve a common problem in a “best solution possible” effort sounds to me like the ultimate dream to solve complex problems.
Keeping “architects” away from code doesn’t seem like a good idea either. Coding is designing. Good design comes from a good architecture perspective. You won’t get a better result splitting these activities from a developer. The architect must code to be an efficient architect, hence the architect is a developer.
Rather than seeking “architects” to a position, lets start getting developers with good architectural skills.