I think it's really efficient, and something that I would use when teaching CS. It's tough at first, because it can make us vulnerable and you have to be accountable to another human. Once you get past the initial hiccups, though, what a cool way to work.
It's not about mentoring, but I always come away from a pair programming session having learned a ton of new stuff. Interacting with others who are awesome at what they do is helpful.
Done it a lot at uni, but not after, sadly.
I noticed some pairings went great for me and some... not so much.
I tend to be a creative but chaotic, the right partner made the difference between "hey don't you mean < rather than >?" and "You broke it! Why can't we do it the simple [lower-quality] way?". In the first instance our AI beat all our classmates', in the second our 'robot' shot as far to the left as possible regardless of inputs.
Based on those experiences and discussion with others, I started to believe pairing men and women together works best.
Great post. I came across some pair program in sporadic episodes. It was basically on core components with a high impact on a project. The only rule is that the person who has and idea on how to do it has its hand on the keyboard. If both have an idea, they need to settle the argument beforehand.
I recently started a new job with a company that lives XP, and was super skeptical when it came to Pair Programming. I was coming from a few years of flying solo as a developer, so having another person with a different way of thinking about problems and differing opinions seemed like it would be more of a hassle. Boy was I wrong! It was definitely an adjustment, but now that I have been living pair programming for the last few months, its hard to imagine ever going back to the old way of doing things. I have learned so much from the devs on my team, and feel so much more effective and productive at the end of the day.
Pairing is grear for working ideas out with others in real time. I am glad I was exposed to it very early in my career because some people go through decades never trying it or feeling intimated by it. However I personally wouldn't say it's gaining popularity.
I'm a pair programming expert and a big fan of both pairing and solo-ing.
It is totally true that pair programming is a skill to be learned through practice. Once learned, it can be amazing, but, if a pair isn't set up correctly or if the power dynamic is off or if someone is being a jerk (which definitely happens) pairing can be a miserable experience.
Solo-ing is great because it's a great way to build confidence in oneself which is so important, especially for people in tech who are under-represented. If there is something you are trying to learn or research, solo-ing allows you to do at your own pace.
Do I have a favorite? I personally prefer pairing, but I like solo-ing too!
That is a nice article with plenty of details. But I would like to hear from the author and other people more about the manager's point of view, regarding pair programming. I am currently working in a software company where projects are handled by only one person. It would take a lot of effort to bring a colleague into the middle of my project and the second, more powerful, in pair programming would mean that instead of one person, two persons should be paid. Please enlight me if I am wrong.
it's very difficult at first time as you said but I think it would be nice and will bring well-structured code.
I've done pair programming, not all the time though, ever since I started in 1982. Don't really enjoy it, but it depends on who you're working with.
I love it (most of the time)! It's great getting other viewpoints while you're working.
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.