Starting newbies onto a project

This week I have the enjoyable experience of bringing 3 new developers onto our project.  Most of you that know me probably read that last sentence with a sarcastic tone on the word enjoyable.  You, my friends, would be wrong.  Of all the ridiculous things that I do at work right now, training and molding new programmers is by far the most enjoyable.  It's sad that I don't have more concrete work to train them with, but I have to deal with what I have.

Because I have little, if any, work most days to give to my development team, figuring out how I was going to train newbies was a daunting task.  There's the standard "Here, take this document and read it.  I'll be back to see you in two days." approach, which I've had to implement to a certain extent.  There's also the "Welcome to the company.  We have two weeks of class room training prepared for you." approach as well.  I decided to try to fall somewhere in between.

What I've done is given the new guys (sorry ladies, nobody from the fairer sex is in this group of recruits) a small set of readings for them to stay busy with.  I expected them to read it during the times that I didn't have other stuff organized (or spontaneously created) for them.  This leads me to the "other stuff" I was trying to be prepared to give them.  The truth is, my preparation skills were non-existent last week, so Monday when the newbies arrived, I had nothing.  That's not 100% true.  I had run a few things past some people, but I hadn't taken those ideas and formulated a plan.

For the past few days I've been winging it.  What I've tried to do is intersperse a number of different experiences with the reading.  I've pulled all of them into a session where we talked about the overall architecture of our application.  We've spent time discussing the tools that we have, both home grown and otherwise.  I've tried to pull each of them off into a design session so that they can see how I'm approaching the decisions and requests that I'm putting forward to the developers.  Lastly, I've started to set them up with full days of pair-programming some of the existing team.

The pair-programming is an interesting experiment both for me and the company.  Normally, new hires work through one or two defects with an entrenched (yes, at times it is like a war) developer and then they're sent off on their own to work through the minefield that is our code base.  This is how I was introduced to the application and project, and, frankly, it didn't help me at all.  If it weren't for the fact we have a slack schedule right now, I think that I wouldn't have been given the leeway to push forward with this approach.  Because of the schedule slack I'm able to work the pair-programming angle for as long as I can.

So, I'm wondering two things.  First, for the couple of the newbies that may actually read this between Ayende's 55 posts a week, has this approach been beneficial?  Second, how are the rest of you assimilating new developers into your teams?

posted @ Wednesday, June 06, 2007 9:54 PM

Print

Comments on this entry:

# re: Starting newbies onto a project

Left by Shane Courtrille at 6/7/2007 5:47 AM
Gravatar
Well I can't speak for either of the other two newbies but the process has been very good for me. While I had absorbed pretty much as much useful information as I can at this point from the docs and reading code I also now realize that being thrown to the code would have been a massive mistake. In my pairing session I was able to get a lot of information as to how parts of the system work and how to do things. At this point I feel much more confident with my ability to code things up. There are of course a million things I don't know but now instead of 10 questions an hour it'll be 1 question an hour hopefully :) After this experience I can't imagine starting a new job without some paired programming at the start.

# re: Starting newbies onto a project

Left by D'Arcy from Winnipeg at 6/7/2007 7:31 AM
Gravatar
So what day are you going to teach them how to get sperm from a bull? D

# re: Starting newbies onto a project

Left by The Igloo Coder at 6/7/2007 8:08 AM
Gravatar
@Shane -- That's good to hear. @D'Arcy -- I'm saving that session for your first day dude. It'll be an interactive field trip for you.

# re: Starting newbies onto a project

Left by D'Arcy from Winnipeg at 6/7/2007 8:46 AM
Gravatar
The scary thing is that I know you have a bull costume from a few Halloween's ago...

# My own Private WTF

Left by Fear and Loathing at 6/8/2007 10:30 PM
Gravatar
I've always wanted to submit something to The Daily WTF (come to think of it, I think I did but that

# re: Starting newbies onto a project

Left by DannyT at 6/9/2007 8:51 AM
Gravatar
Brownie points to Shane for being the only noob to read this. We have a new recruit starting soon and we're always piss-poor in the planning department with that. I like the pair programming approach and am definitely going to try it out. I love the idea that 2x couples pair programming would be overall more effecient than 4x single programmers... I just can't bring myself to accept it. Maybe next time we're quiet i'll give it a go. Interesting post, thanks for sharing

# re: Starting newbies onto a project

Left by Ryan Ternier at 6/10/2007 2:23 PM
Gravatar
The pair programming is very critical in some jobs - especially when you have high maintenance customers who think they're all divas... oh wait I work in a company like that. We hired a new guy a few months back. He was the first one to pass my "test": 1) Give them a baloon, LavaLamp, tank, and a cake. 2) Ask them what they'd do with them. The new guy's response was: Run the customers over with the tank, scare the CSR's by blowing up the baloon behind them, put the lava lamp on the desk and eat cake after a hard days work. I would hire any developer who gave me a answer like that. Anyways, he started out, we said: Here's our CRM program, here's what needs to be done. Oh, documentation? here's some phone numbers. We know it's not the "best" way of doing it... but he coped. between the Nerf darts flying accross the room and the "script" he has to work with (he's doing ASP, not .net so we labeled him a scripter), he's doing a great job. The new guy we hired just a few weeks ago, we paired him up with the "scripter", and he leared way quicker, and he's more comfortable and not as scared as some of our other "recruits" were :P Man i love cake...

# re: Starting newbies onto a project

Left by Mitch at 6/19/2007 11:48 AM
Gravatar
I think the transition was good. I agree with Shane, in that not being thrown into the line right away allowed myself to accimlate smoother. Not only did it give me time to look at the code and documents (especially developers first day), but also learn how the environment functioned, people, process and personalities. I do agree with Justice though: http://graysmatter.codivation.com/IntroducingNewPeopleToYourOrganizationTheJusticeGrayWay.aspx A free meal is hard to pass up :P
Comments have been closed on this topic.