Last week I had to introduce a new developer to one of our projects. I wonder how you usually deal with this situation. He has no knowledge about our business domain and a good Java OO background (our app is mostly written in PHP). My goals must be to
1. introduce PHP (shouldn't be too hard)
2. present our business
3. introduction to "the way we code"
4. introduction to unittests, MVC, some patterns in a PHP context
This is my strategy to get him productive as fast as possible:
- Pair programming something that makes good use of our models and libraries. We already programmed a simple view together to get him into our MVC implementation and to acquaint him to the structure of the code and the model in a gentle way. Also I hope this got him around some PHP beginner's gotchas.
- Next thing I'm planning is pair programming some unit tests before leaving him alone to do some tests on his own in his own pace. I'm afraid pair programming might provide a little too much information sometimes as I'm talking and explaining constantly.
What do you think of this? Any other ideas?
(Also I would like to mention that showing a project to a new team member seems to make all design flaws visible. Similar to the introduction of unittests, just on a higher level. Did anyone have the same impression?)
I'm not the boss. I have to work with what I get.
And anyways I don't think this process is unusual, the new team member is certainly able to do his job, he just needs some introduction. My question is now how you would approach this.
(Btw, I myself would never want a job I'm able to do 100% from the beginning. That would be boring. Where's the benefit for me?)
I think pair programming would be a good idea overall; Not just for the introduction period, to get aquainted with your business domain. But do consider that productivity will decrease for the short term...
If you move this new lad about a bit over the next coming weeks, the depreciation on productivity may not be as bad as it could be; The lose of productivity would be more wide spread, but to a lesser degree in other words.