4 ms·
Pair programming works for specific people, for others it's an exercise in anxiety. Especially in the scenario you're suggesting with a senior watching a junior
by ctvo 9y ago
Pair programming works for specific people, for others it's an exercise in anxiety. Especially in the scenario you're suggesting with a senior watching a junior write code.
- proverbialbunny 9y agoYep. Pairing a senior with a junior has showed that it does not often help juniors beyond the rate they'd normally grow at on their own. It appears like pair programming is accelerating learning when in reality it can actually hinder progress. However, pair programming has shown to accelerate growth when both peers are roughly at the same level. For some companies this means hiring two juniors and having them work together, but this isn't as common of a practice as it could be. One solution I've found to this is to subtly pretend to be forgetful and or anxious when pair programming with a junior. This lowers my level down to their level giving them growth potential. If the junior is anxious, showing anxiety about myself in a subtle way will lighten their anxiety. This works during interviews too. Being non-judgemental and friendly work too to melt anxiety away. If I am randomly forgetful from time to time, it gives them an opportunity to shine and help out leaving them feeling good and accelerating growth. Studies show that optimal learning has roughly 75% failure and 25% success. Is your jr helping you 20-25% of the time? How I encourage this growth is I start with forgetting a bit of language syntax, then a language idiom or two, then library syntax, then parts of the framework, and so on. The key here is to not show any sort of judgement. It's 100% okay if they do not know. That's part of the point. They have to look it up and figure it out and help out and grow. By doing this their level increases. My back story usually is, "Oh Python? I don't know that language. We'll have to run through it together." works like a charm as long as I start low and find their level, instead of overwhelming them. When pair programming with a junior I find 30 minutes to 2 hours at a time works best. It's slow going at first, but by giving them something to grow on, the second you leave them to their own devices they will continue to grow in that area. You can leave them alone sometimes for a week at a time and watch the results from a 30 minute pair programming session.
- muzani 9y agoYeah I think it's the vulnerability that's important too. Anxiety applies to the senior as well as the junior. Senior programmers feel they need to look competent. But much of software engineering means not knowing things and how to deal with that.
- hawaiianbrah 9y agoYou’re speaking rather matter-of-factly about the effectiveness of pair programming. Were there studies done that you’re referencing, or is this based on your own experience?
- muzani 9y agoIf done wrong, it will feel like an extended interview. It should be in the tone that the junior has a person whose highest priority is to mentor them. Upper management feels this is a tremendous waste of resources, so the term often used for this is "pair programming". It's a way to teach a lot of the design patterns like SOLID or teach architectures in the real world. Most of these things are habits. Sometimes they could take days just figuring out the architecture of something (where the files are). Sometimes they're stuck trying to build or compile. Sometimes the codebase has a particularly buggy thing that nobody touches, or the documentation only exists in someone's head. Once the junior is up to par, which might take 1-3 months, they can move back to single programming. A lot of the habits are already in place.