Hacker News new | ask | show | jobs
by pizzaparty2 2389 days ago
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.

1 comments

Although this may attract developers initially which is the original question, this seems like an ineffective strategy for a business. In The Mythical Man Month, the author argues that one of the most important things in software architecture is conceptual integrity. Having many different architects cycle through seems like a great way to end up with too many different ideas in your systems and a poor conceptual integrity.

Maybe this could work for a short time at a startup, but I'd be curious to know your thoughts in response.

That's a good point. I left out a concept of constraints. For example, it has to be written in the same language as our other applications. But if it's not different enough from an existing application just copy the existing application and don't call it a greenfield.

Or let someone burn their turn by copying the existing application but making minor tweaks and changes. That could work just as well.