| Let everyone architect but only after they've completed some challenging but reasonable tasks. For example: - passes multiple choice test about how current code works - has a professional knowledge of the language they are using (part 2 of the test) - has read and done a book report on 2-3 design-pattern/architecture books. Once you do all that you go in the queue. New developers have precedence over seasoned developers. When a new project comes up the developer who gets that greenfield is the first developer in that queue who hasn't had a chance to architect yet. The main idea is that good developers don't want to be assembly line workers and yet a total lack of autonomy seems to be the norm for (I think) most software developers. So the ability to make technical decisions is a real benefit IMO. Some other things that might be advantages: - you now have a team of experts. Good job. - you can avoid senior devs possessing all of the knowledge of the companies software (because only that select few got to design anything) and then not having an incentive to improve. - Creating a genuine interest in new code (because you want to see how the new guy did it). "Everyone is an architect" should be your tag line. |
Maybe this could work for a short time at a startup, but I'd be curious to know your thoughts in response.