Originally posted by Jayesh Shere:
My question pertaining to usage of Agile technologies with teams of relatively less experienced developers.
Do you think pairing can work effectively when there is a gap in the skill levels of the various developers in a team?
Does the reduction in the amount of documentation hamper the learning (or handover) of new team members?
I'll be thankful if you could share your thoughts on these questions.
Hi Jayesh,
Pairing is the most effective way I know to transfer knowledge, both of the system under development and in software development in general. For the junior developer, it's a chance to work with a mentor. For the experienced developer, it's a chance to explain the system by walking through it, which often provides the opportunity to check some assumptions by having to explain things.
I can't tell how how many problems I've seen solved just by talking through them with other people, let alone reviewing code together. Pair debugging is highly effective; pair programming more so.
Your point about reduced documentation and handoff is a good one. For that reason, we recommend a rolling handoff, where you bring the new maintainers into the team gradually and let them pair with the existing maintainers. As well, we suggest a specific practice of documentation for the sake of handoff and ongoing maintenance.