How should I manage a team with different skill levels

code-qualityproductivityproject-management

I'll be working on a software project with some friends of mine, and I've been appointed technical lead. None of these guys is a bad programmer at all, but I do have significantly more experience than them. I need to be able to distribute the work among everyone on the team, while also making sure that we don't tread on one another's toes; that they meet the relatively high standards of quality and scalability that we need to make this project successful, without requiring me to review everything they commit.

How should I maintain standards while avoiding micromanagement? Is it enough to make some diagrams, schedule some code reviews, and trust that I'll be able to fix anything that they might break, or should I go the TDD route and write explicit tests for the team to satisfy?

Best Answer

You should review some of their code and let them review each others. It's not that you want to be the Check In Police, but want to provide feedback as often as possible. Being a reviewer can reinforce their understanding. Let them review your code as well. Be the model.

Side Note: there should be no surprises during an anual review.

Related Topic