I was thinking that one way that a coding team could work would be that coders would be rotated through several roles. This would prevent people from getting too comfortable towards the goal of preventing problem areas (code quality wise) from developing in the department.
- Architecture
- Production Coding
- Documentation
- Quality Control
Splitting off architecture as a role will help, I hope to clarifty role-wise for a coder when they are expected to have input on process, vs. when I'd be happier if they were actively attempting to hit a metric and fulfill a specification.