I spent the first fifteen months of my current job on a 100% pair programming team before transferring to a more traditional scrum-based team. Some observations: team cohesion on the pp team was much higher, code quality was higher. Flexibility, not surprisingly was lower: we had a very fixed schedule: "Stand up" at 8.06 (despite the name, it was unrelated to the scrum event, instead it was more time for sharing news…
Pair Programming Economics
31–40 of 82 posts
Re: Pair Programming Economics
#32> The underlying assumption is actually, For any two programmers, no matter how good he or she is, if we get them to sit together, the value of their work will be greater than if they sit apart. Yes, an ASSUMPTION. Not proven. Not studied. An assumption. > There's an implicit assumption there that all bugs take the same amount of time to fix. No there isn't. > Now, I'm about to make a crucial assumption: that Alice a…
I did pair programming at two different companies full-time, one was over 200 people and that was one of the most productive companies I've ever worked at, hands down. That is also highly anecdotal, but I know it's true because I did it for 5 years and also have seen what it looks like without it for at least as many. It doesn't work for everyone. Some organizations just attract better people and that is a confounding factor. Remote pairing is hard. All these things are true, but if I want to try it at my next company, as I'm doing right now, I need articles like this to prove I'm not crazy, and yes, it's worth trying if you have problems with communication, or want to train young developers, or learn something new, or reduce bug rework from poor code reviews. It's a very useful method of developing software and I'm happy this guy made an attempt to quantify it, however poorly, because software is just a hard thing to quantify.
Re: Pair Programming Economics
#33What is that website by the way? There is a lot of good content on it but it’s quite unusual. It’s becoming a go-to of mine
Re: Pair Programming Economics
#34Anyway, I've done some pair programming when I was younger, and I like helping some new folks with a 1-hour pair programming sometimes, but I don't think I could stand having someone pairing with me all day. Furthermore, there are other ways to keep code quality high (code reviews, tests and so on).
Re: Pair Programming Economics
#35- Pair programming works better remotely than people say, in my experience.
- It is a great way to share unwritten/unspoken information and best practices.
- PP is excellent for team cohesion and allowing engineers to get to know each other and their strengths.
- Not every engineering problem warrants PP.
- Some problems are better solved by one person as it can take too much time to get the other person up to speed with the issue.
- Pair programming often leads to better code, but you have to balance that with the overall reduced amount of work being done at once. If two people are working on one issue, you have to balance the benefit of that versus two people working on two problems.
- I'm more effective when I can focus, and sometimes I need to spend an hour deep-thinking about a subject and perhaps pseudocoding something. Pair programming with someone remotely and having long periods of silence would be... weird.
- People seem to view PP as a measure of success. The more a team is pairing, the more success being experienced. Right?
- If someone isn't into pair programming often, that's seen as a negative.
- 95% of people who pair remotely need better microphones or accoustic environments. I wish remote companies would ship their employees a pair of AirPods, a Yeti mic, and some acoustic foam squares.
- Pairing is more consistently useful for reviewing large code changes where it can be difficult for a reviewer to reason about the work that was done. Going through it with the author and doing a screen share can make all the difference.
My conclusion is that pair programming can be good for some things, but I would consider it a red flag if a company highly emphasizes pair programming or coerces people to do it. Treating pair programming like a panacea dismisses the fact that people of different personality types have been writing perfectly good software without pairing since time immemorial, and that there are other ways to improve code and product quality. What I think can be nearly as effective as pair programming is getting code reviewed early and often. I'm not the best at this yet, but I've noticed that life is just better when I don't do a ton of work and wait for it to be reviewed when it's "done".
Re: Pair Programming Economics
#36Personally, I dislike PP - hard for remote teams. Only good if everyone on the team can easily pair up. - only good if everyone follows a strict schedule - only good if everyone understands the problem and solution space equally. If one of us needs to go into a cave for an hr to read documentation or experiment, it all falls apart. - very mentally intense. You're always on. Can only keep it up for a few hrs without s…
I find it really hard to try things I'm not sure will work, or noodle around, or feel my way toward a solution, when someone's watching. Just incredibly uncomfortable. Since those sorts of things are where a lot of my value comes from, count me out on PP. It's fine in very small doses for specific purposes when both people want it and are already comfortable working together but I'd go fucking crazy being forced to d…
Re: Pair Programming Economics
#37I spent the first fifteen months of my current job on a 100% pair programming team before transferring to a more traditional scrum-based team. Some observations: team cohesion on the pp team was much higher, code quality was higher. Flexibility, not surprisingly was lower: we had a very fixed schedule: "Stand up" at 8.06 (despite the name, it was unrelated to the scrum event, instead it was more time for sharing news…
My suspicion is that the jawboning about pair programming has more to do with the fact that it's a legal way to weed out older programmers than for any real economic benefits. We're more likely to have hearing loss, and will seem like poorer programmers in a pairing situation. Plus, we're overall less likely to put up with trendy bullshit like PP.
Re: Pair Programming Economics
#38Personally, I dislike PP - hard for remote teams. Only good if everyone on the team can easily pair up. - only good if everyone follows a strict schedule - only good if everyone understands the problem and solution space equally. If one of us needs to go into a cave for an hr to read documentation or experiment, it all falls apart. - very mentally intense. You're always on. Can only keep it up for a few hrs without s…
I find it really hard to try things I'm not sure will work, or noodle around, or feel my way toward a solution, when someone's watching. Just incredibly uncomfortable. Since those sorts of things are where a lot of my value comes from, count me out on PP. It's fine in very small doses for specific purposes when both people want it and are already comfortable working together but I'd go fucking crazy being forced to d…
Re: Pair Programming Economics
#39Not necessarily. I pair with a guy who's probably 10 times as productive as I am(I really try, but I understand that I'm relatively slow), and he'll ask me to pair with him because I might come up with an idea for something that even he is stuck on. I often do, despite the fact that I'm much slower than he is at implementing things.
So while I do think that it can often be the case that a pair will only work as fast as its slowest member, most likely when tackling a large problem or even doing something tedious, that doesn't mean that there aren't times where a more productive member can value from pairing with a less productive member.
EDIT: This is entirely from my point of view, so it's possible that this person I mentioned feels differently. However, even if they were frustrated by my slow performance, I don't think they'd inquire my assistance on problems if they thought they wouldn't benefit from it.