I have always found pair programming incredibly frustrating and frankly exhausting, both when driving and navigating.
It's a useful tool, for sure. Bringing new people on to a team or in to working with code they've not touched before, or to help spread knowledge around a team. But I loathe using it any more than I have to.
I also take issue with tone of the article as well, it's condescending as hell.
"If you're not comfortable pair programming, why not go off and play around with a pet project, then maybe you'll be good enough to code in front of somebody else!".
Yeah you can never get away from the fact that programming is best done in isolated concentration, and then occasionally gathering in a group to share insights/gather feedback. Just like academia and every other field that requires concentration and deep thought. If pairing would be effective, why don't people do this in other knowledge jobs, it's incredibly frustrating, exhausting and wasteful, just another attempt to dumb down programming to assembly line factory work. The little knowledge sharing that you get is much better shared in different ways.
I prefer to pair up when there's a decision that needs to be made, or when stuck. This can be much better to work on by two people, to get a second opinion or a fresh pair of eyes. But as soon as this is resolved and the path forward is clear, I immediately stop pairing and go back to work individually, because it's much better.
I, for one, would like to work on a team where everyone is working at the same thing, as opposed to everyone working in isolation on its own slice of the problem before figuring out how to assemble the slices eventually.
I guess this can work only on rather small teams though. What's the cardinality of that mob of yours ?
You are correct that we are a small team. I have 4 devs. We are hiring 2 more right now and the plan then would be to coordinate 2 mobs/teams. I generally believe a team should be between 3-5 people.
I’ve been pairing at all but one of my jobs in the last ten years, and love it, but I found mobbing to almost always be a driver, a half engaged navigator, and a third basically napping or distracted by a smartphone.
The devs in question were experienced in pairing and happy to do it, but I pretty much always found adding more than a second head was effectively net neutral if not negative.
So I’d love to learn how to make mobbing better for the rare times it comes up. What do you have to change or be more disciplined about to make mobbing a net gain?
We don't have that issue really. We do remote mob programming (all day long zoom call + https://mob.sh/ ) so we see everyone while we work.
The issue we do have is that sometimes myself and my other senior dev end up Navigating too much, leaving our more junior developers to not contribute as much. When I catch ourselves doing that I'll just ask the other sr dev to step back for a little bit and allow the others to step up.
Thanks for the response! I guess the big difference is being on camera. My team has been 100% remote of course since Mar’20, and split across SF and Toronto for the most part.
We use Zoom for cross discipline meetings (and nearly everyone has camera on most of the time, though there’s no explicit rule) but discord+drovio for remote pairing. Discord has been nice for the ability to drop into another pair to ask for help, or for non devs to know who is pairing and drop in as well.
One other thing I’ve noticed is that some team members play music in their headphones while pairing/mobbing. While the others can’t hear it, it’s certainly not helping our communication or focus… and it certainly feels disrespectful to me.
I've done all day Zoom/VC mobs, and that sounds exhausting as hell to me. Different strokes and all, but programming this way really takes the fun out of it.
We solve this three ways. 1. We don't do a full 8 hour day, 2. We take breaks every hour, 3. we keep it entertaining by joking around with eachother while we work.
We thought it was going to be exhausting like you said, and one of our guys even brought up that he was very introverted and didn't know if he would be able to do this. To our surprise, the days go by faster (not just because they are shorter), we get done with more work than we did before, and although yes we are tired after working all day, we all look forward to doing it again the next day.
It's true, mobbing isn't for everyone. But for us it couldn't have worked out better.
Yeah I find that I can remote pair for maybe 5-6 hours a day. Catching up on non pairing work things (email and slack and whatever) takes another hour or two, and I’m beat by 4 or 5.
I wager you try to hire people that fit your culture and would be very open to that kind of atmosphere in the first place ?
Mob programming is a tool that can be useful on some circumstances, but I'm really not sure I'd join a company where the team is crazily enjoying it all day.
We actually started it as a trial 1 week after hiring our last developer. I had to convince the team to try it and told them to give it 1 month to see how it worked, but everyone was 100% on board within the first week. We are hiring people now, and yes we are going to be hiring based off of willingness to program like this.
Exactly. And when we do get stuck, we have everyone working on the problem together, so it doesn't happen for very long. The only time the team really got frustrated was due to a mysterious memory spike that pops up at the most inopportune of times, and we had to spend a long ass time investigating it (orders of my boss) so all work ground to a halt other than banging our heads trying to figure it out (to no avail).
Outside of that, things have been running smoothly.
Might be just me, or might be because English is not my native language, but the use of possessive to designate people who work with you (albeit in a position that feels like it's inferior on some org chart) always sounds patronizing to me. Does it really not in English ?
Not against you personally, I just could not keep this feeling within for longer.
I would interpret some one saying "my guys" in this context as a sign of respect. It can be roughly understood to mean "my go-to guy." It has the connotation of a well established, high-trust, working relationship.
For example, if I needed to get my car serviced and someone was trying to pitch me different mechanics I would say, "I got a guy" to indicate that I already feel looked after.
You're not wrong to wonder about this, and even if it's off topic, I appreciate your asking about it.
As others explained, it is common usage in American English.
The bigger problem to many contemporary readers may be the (I am sure unintentional) sexism in the phrase "my guys".
Instead of "Every one of my guys says", another way to say it would be "Everyone on my team says". Or maybe even better, "My teammates all say".
Of course we have to keep in mind that these are all just late night off-the-cuff comments, so some gaffes may be expected and accepted.
Edit to address the thoughtful replies below: I think whether "guys" is gender neutral or not depends on the context and culture. Informally and in personal conversation, sure, if the "guys" in question don't mind it. Here on HN, doesn't matter too much. In formal writing or business communication, it would be something to avoid.
“Guys” in my experience is just as gender-neutral as “teammates”, “people”, “folk”, etc. I’d address a group of all women as “guys”, e.g. “hey guys, you alright?” And if someone else used the word referring only to men I’d probably not clock that unless they clarified after
I mean, yeah, but its awkward and unnatural phrasing. Try "I'm going to a club to watch some folk taking their clothes off", or "I'm going to a club to watch some teammates taking their clothes off" as well and see how unwieldy and cumbersome they are.
>(I am sure unintentional) sexism in the phrase "my guys".
I generally try and be mindful of stuff like that, and were there any women on my team I wouldn't have used guys. Unfortunately covid plus unrelated personal issues caused the only woman on my team to have to resign last year. I do sincerely hope I can get some women to apply this hiring round, because diversity is important to me.
Not an English native as well, but in my language it works in the same way. "My" is used to designate possession of the set, not of the individuals. I don't own "my friends" as a slave owner, they are "my friends" because that is my personal set of friends among all possible sets of people.
Yeah, there’s nothing wrong with “my guys”, at least not with the possessive pronoun. You would say “my team”, “my employees”, “my direct reports”. You’d also say “my boss”, if that helps with your sense of internal conflict over this.
We do it for just about 100% of the time now. Only two exceptions: 1.) We have a second project we are ramping down on that only myself and 1 of my devs is trained on, so when we have to do anything with that he breaks off to do so. 2.) When bugs creep up that I can quickly solve, I'll do so as to allow my team to remain focused on our current system wide rewrite. Other then that, we do everything as a team.
There's supposed to be joy involved?!
I have always found pair programming incredibly frustrating and frankly exhausting, both when driving and navigating.
It's a useful tool, for sure. Bringing new people on to a team or in to working with code they've not touched before, or to help spread knowledge around a team. But I loathe using it any more than I have to.
I also take issue with tone of the article as well, it's condescending as hell.
"If you're not comfortable pair programming, why not go off and play around with a pet project, then maybe you'll be good enough to code in front of somebody else!".