This post originated from an RSS feed registered with Java Buzz
by Simon Brown.
Original Post: Should architects code?
Feed Title: Simon Brown's weblog
Feed URL: http://www.simongbrown.com/blog/feed.xml?flavor=rss20&category=java
Feed Description: My thoughts on Java, software development and technology.
Interesting how this comes up time and time again. Just as some background, we (Evolution) are looking to recruit Technical Architects (Java and/or C#) and an Enterprise Technical Architect. As one of Evolution's senior architects, I'm involved in the interview process and the question around writing code is always prompted by phrases like "I want to remain hands-on".
My opinion on this is that I think that architects should be able to code, particularly if they are going to be involved and responsible for the architecture/design of a system. After all, putting together a feasible, implementable architecture is much easier if you understand at least how some of the technologies work. You can only delegate so much to your team!
With application and system architecture, being able to code is different from actually doing it. A major part of an architects role is about quality assurance, both in terms of the functional and non-functional requirements. Clearly, allocating the architect to development tasks 100% of the time means that they can't take care of their QA responsibilities. The same goes for mentoring the rest of the team. Time needs to be allocated to these activities. We learn by experience and I've certainly been bitten by this in the past.
So when shouldn't an architect write code? Well, for me, that time would come when you are not directly responsible for a project. Here I'm talking about enterprise level architects that are either responsible for many systems and/or making strategic decisions that affect the business. Since a much higher level of knowledge is required here, I don't really see the reason to write code.
At the end of the day, everybody has a slightly different opinion on this. What do you think?