title: Should application architects write code?
body: <p>This is an often-asked question that has views on both side. Those in favour will argue:</p>
  
  <ul>
  <li>To design a system for coders you must understand how to code (and be coding)</li>
  <li>You can't design a system without being aware of what is happening at ground level</li>
  <li>Architecture is not just about broad stroke design but about adapting to changing needs at the code level</li>
  </ul>
  
  <p>on the other hand,</p>
  
  <ul>
  <li>Architecture is a high-level role and should be not be concerned about implementation details</li>
  <li>Coding is a detailed oriented, heads-down funtion which is at odds with the risk management, broad view nature of architecture</li>
  <li>Architecture is about technical risk management and not implementation</li>
  <li>Architecture is about leadership. It's difficult to lead from behind</li>
  </ul>
  
  <p>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.</p>