I'm fairly new to the world of Java and am interested in the ideas behind XP. I might seek a job involving Java and XP but I'm curious to know how a newbie fits in to an XP team. Would the more experienced developers get frustrated with too much mentoring? would it be best to pair the newbie with the most or least skilled developer in the group? anyone have some experience with this?
I think an XP team handles a newbie in a pretty organized way. There are a couple of things that immediately come to mind. First, since the system's design is evolved with the participation of the entire team, it is pretty easy for a new team member to get up to speed with the direction the architecture is taking. A new team member should be encouraged to participate in the CRC sessions, to ask questions, to offer design options. And since the existing design was created by the entire team, anyone (and not just the Architect) is able to help the new member understand why things are being done as they are. Secondly, the code is protected by a robust suite of unit tests. This means that a new person can be very confident that they will not break anything. This alone will greatly reduce the time it takes a newbie to be a productive team member. On the procedural side of things, when we brought a new person in to C3, we did 2 or 3 CRC sessions inwhich we reviewed the major classes in the system and how they worked together. At the same time we had the new person sit with a developer pair. Maybe the same pair for a set of tasks and then with another pair for a different sent of tasks. And then depending upon that person's experience level (at one end of the spectrum we brought in Ann Anderson, who had lots of Smalltalk experience and had worked with Ron on a previous project, and on the end we added Adrian Pantea, who had been working his way through college on the minivan assembly line) we decided one day to have them work with a more experienced developer as sort of a junior partner. They could not sign up for tasks themselves but they could do everything else. Then after one iteration as a junior partner we let them sign up for tasks usually with an increased load factor. If that went ok, we just turned them loose. This whole process took about two iterations. Since XP is a lot about building a environment where developers can make mistakes and therefore, learn, without injuring the project. A new person is able to get into the guts of the system pretty straight away. Even though it looks like we had a new person jump through some hoops, in fact they were able to work on any part of the system the same as anyone else after just a few weeks. I have been on projects where you had to have been around for a couple of years before you could make a change to some programs. chet ------------------ author of: Extreme Programming Installed(The XP Series)
author of:<BR><A HREF="http://www.amazon.com/exec/obidos/ASIN/0201708426/electricporkchop" TARGET=_blank rel="nofollow">Extreme Programming Installed(The XP Series)</A>