Why novices must learn from veterans:
Because 9 times out of 10, when a novice asks "Why not do it this way?" the veteran can provide a good reason.
Why veterans must learn from novices:
Because 1 time out of 10, when a novice asks "Why not do it this way?" there *is* no good reason.
(disclaimer: this is a rule of thumb, and pair programming isn't about sitting a 12 year old behind John Carmack for six hours.) | [reply] |
If senior programmers never give you feedback, how will you
learn?
Conversely every teacher I have talked to agrees
that when they try to explain things to other people they
quickly find out how much they did not know and wind up
learning the subject much better.
This seems like a good thing both ways.
Besides which, your statement seems to assume that there
is a hierarchy of levels of skill, each of which has little
to gain from those below, and little to say other than,
"You suck." I hope that this is not really how you feel,
and it certainly does not fit my experience... | [reply] |
Having someone senior to me say my code sucks or being weighed down by a junior coder (in effect, training him) seems unpleasant.
Don't you ever do code reviews? Does someone then telling you how your code could be seem unpleasant, or does it actually help?
Pairing allows someone to do this in real time. It's not a senior/junior pairing - for pairing to really work well it's meant to be people of roughly equal skill. And counter-intuitive as it seems, any time we've tried it you tend to get more 'value' from it than from the two individuals coding alone.
Tony
| [reply] |
OK, I phrased that way too negatively. I agree with the benefits of advice from senior programmers.
The pairing is still an uncomfortable idea for me. Maybe it's based on my personality. It seems that people who "gain energy" from being around other people will be better suited for it.
| [reply] |
Having someone senior to me say my code sucks or being weighted down by a junior coder (in effect, training them) seems unpleasant.
Two comments on this:
First, to get better at programming, most people to need external input (i.e., feedback). Some of that feedback will come in a constructive form, and some may be harsh. Good Extreme Programming people learn to be tactful when giving feedback, but if someone chooses to hear any and all criticism of their code as being "this sucks", then they're cutting themselves off from a lot of valuable information, and their path up the mountain is going to be that much more difficult.
Second, if someone isn't willing to share the responsibility of helping train junior team members, then perhaps Extreme Programming isn't for them. But then perhaps lots of other things aren't for them, either. Like anything to do with being on a team. The chance to impart what you know on a junior programmer, helping mold them into a more capable programmer, is a challenge that one can learn a lot from.
| [reply] |