This is an often-asked question that has views on both side. Those in favour will argue:
- To design a system for coders you must understand how to code (and be coding)
- You can't design a system without being aware of what is happening at ground level
- Architecture is not just about broad stroke design but about adapting to changing needs at the code level
on the other hand,
- Architecture is a high-level role and should be not be concerned about implementation details
- Coding is a detailed oriented, heads-down funtion which is at odds with the risk management, broad view nature of architecture
- Architecture is about technical risk management and not implementation
- Architecture is about leadership. It's difficult to lead from behind
In my experience architects should not be spending a lot of time coding but must keep in touch with the code base primarily through lead developer communication, review and stand ups. If you spend a lot of time coding you lose sight of the high level issues and become ineffective at managing technical risk.