views:

222

answers:

6

How do you distribute tasks and collaborate with your team, with a few newbie or not experienced people (or not as smart as you)?

I hope you can understand my question.

Pareto principle said that 20% people may complete 80% tasks. 80% of unexperienced people can only offer 20% in the total productivity. Is it truth in your working environment?

Do you put in place any procedure or methodology to ensure the quality of the code, while you'll spend minimum time for training/code review.


EDIT: I am not in the management level nor a decision maker. I am just a member in the team, and want to focus on my tasklist rather then their tasklist.

A: 

Newbie's will pretty soon become better. On their first projects tutor them heavily. I.e. link them to a more experienced developer. So the two share one workspace for a day or so and one list of tasks. This will get them into it pretty quick.
Then let them work on their own on the more simple tasks of the projects. Make sure they always have someone by who they can ask their questions. That same person should review the code with the Newbie sitting next to him.
And then after a couple of days start slowly increasing the difficulty of their tasks.

Pim Jager
How can I spend minimum time for training/code review in the apprentice system? Good developers may not be also a good teacher.
Dennis Cheung
+3  A: 

See also Making the most of below-average team members

Ed Guiness
+1  A: 

Well they should be aware that they know less. Is their pay less?

If they want to learn more that is good. They can learn as they work and slowly get up to a level with the other developers. If they don't want to learn and they aren't actually helping, I would want to replace them with a better hire. I would hope the company hires people that it needs and isn't just filling positions.

A new person might need to more time but it can pay off over time. Give them smaller tasks and check their progress or 'pair' them with another programmer. Not in a way that bugs the other programmer, but if one is willing to be a mentor it could help. Recommending books or giving company time, if possible, for learning something could help.

Do you mean 'smart' though or that they lack knowledge currently? :)

Arthur Thomas
+2  A: 

Do you put in place any procedure or methodology to ensure the quality of the code, while you'll spend minimum time for training/code review.

Why do you want to spend minimum time for training/code review? Economically, you should spend an optimum time doing these activities, since they usually pay off very well. You don't want less experienced people to be less productive forever. You want them to catch up and be at full speed as soon as possible.

Tasks should be estimated and distributed according to each developer's skills and their speed should be measured so that you can do Evidence based scheduling; but it is essential that you allocate some time to newbies learning the Coding Standards and doing/getting Code Reviews done - if you do it both ways from the start, they won't feel inferior: they review other people's code, too!

Daniel Daranas
+1  A: 

When working with a newbie you need a lot of patience. It helps if you have experiences of your own from when you were a newbie in the industry. You can't expect too much from them and you can expect a lot of mistakes.

They key to turning them into an experienced developer is spending the time to mentor them. Ultimately every developer will be mentored by someone...sometimes even by the very code-base they are modifying (ie they'll copy what they see others doing). If you leave the mentoring up to chance, it is highly likely that they can pick up poor habits that may follow them for years into their professional life.

It does take time to mentor people and it will often seem like time you can't afford to spend because of your own tasks...but I believe it is time that you can't afford not to spend.

Mentoring a newbie need not take up 100% of your time. There is a lot to be said for developing a friendship with the developer in question...thereby making them more open for feedback and more likely to come to you for advice....and making the task seem less like a chore.

There are heaps of good books on the subject so you should probably look into purchasing a couple of them...just note that often these books won't be specifically about IT but more about people development.

The initial steps I would take are:

  1. Make them your friend
  2. Spend time with them
  3. Mentor them whenever you can...in person, by email, by example
  4. Be patient with them as they make mistakes...cause they will!
  5. Read books on how to become an effective mentor
mezoid
A: 

To bring on new members of staff in my team we often do pair programming on key areas of the systems until the newbies get the way things work. People investment is key to team health

Stewart Robinson