Hacker News new | past | comments | ask | show | jobs | submit login

I read through this quickly, but I couldn't find any mention of pair programming not being suitable for sensitive and introverted people - especially those that suffer from anxiety and other mental illnesses that can be made worse by the stress of pair programming.

Whilst the article mentions that it "can be hard and stressful" there is still the assumption that most people are more or less the same in terms of mental resilience, that most people would be okay and that everybody should "give it a go". I don't feel that's true at all, and certainly I'm one of those people that would be made ill by an environment of constant forced pair programming _even though_ I manage to hold down a job, appear "fairly normal" from the outside and do pretty well as a mostly solo programmer.




For such a person, short periods of pair programming might be sustainable, but beyond that you'd expect two reactions: either the become combative as they reach the end of their rope, or they shut down, at which point they are just the chauffeur and the other party is calling all the shots. One of those is immediately and obviously detrimental to teamwork, the other is just as bad because it's insidious.

Neither is improving productivity or buy-in. I think pair programming works best when, upon discovering any two independent tasks, you have the pair split up for a while, do the task, and bring back the code to share. This is not about going faster, it's about getting a break from one socially and mentally intense activity. It's similar to the reason I vehemently insist on a 'bathroom break' for any meeting over 90 minutes. Get some air. You'll get to the outcome faster, and often a better outcome.

I know a few people who'd go so far as to suggest that these practices (being volun-told into all-day pair programming, or god help you, mob programming) are discriminatory. I'm not sure I'd go that far but if one wanted to argue that I'm not gonna stop them.


I sometimes lean toward calling it discriminatory, but generally don't - not because I think it isn't, but because I think that doing so weakens any legitimate criticism of the practice by coming across as hyperbolic.

My take: I like it as a training or mentoring activity. I like it as a voluntary activity for slowing down and being careful on trickier bits of code.

But I don't like it nearly so much as a mandatory thing. The social dynamics here are tricky. I'm a pretty severe introvert, and am quickly exhausted by what I experience as socially intense situations. I've been paired with exuberant, highly extraverted people, and the results were, frankly, disastrous. Within no time at all, I would be deliberately letting obvious bugs sail past just to avoid having to have interactions that I was finding to be increasingly mentally and emotionally taxing. And yet I'd still come out of it feeling so worn out that I'd be off my game for days. I guess you could say that that was negligent on my part, but, truth be told, once the cortisol levels in your bloodstream get high enough, you're just not thinking clearly anymore. And, in any case, it would be much easier for me to wait and put a more thoughtfully composed, "Hey, I just noticed..." comment in the async code review than it would to try and clearly verbally explain what I saw to someone who dislikes pauses in a conversation so much that they literally would not allow me 15 seconds to compose my thoughts.

So, don't call it discriminatory, but, still, it can easily end up making people upset and escalating intra-team tensions in return for not much. There's a term of art in some sects of Buddhism that I like to describe these sorts of well-intentioned but poorly executed plans: "Unskillful." Indiscriminately following a prefabricated, one-size-fits-all script often ends up being unskillful.

I think maybe it's a bit like test coverage. More code coverage is good, but, at the same time, I typically see the lowest quality test suites in codebases where it's been set up as an explicit performance metric and measured by some tool. Similarly, when doing Scrum-type-workflows, I find velocity to be a useful concept up until the exact moment when some manager finds out about it and asks for it to be included in a report, at which point it immediately becomes the most harmful thing ever.

That said, and for the sake of contradicting myself repeatedly, it sure is useful sometimes, and I'd hate to work at a place that isn't supportive of developers and teams who want to do it.


> Within no time at all, I would be deliberately letting obvious bugs sail past just to avoid having to have interactions that I was finding to be increasingly mentally and emotionally taxing.

This is 100% my experience. I don't do pair programming in any formal capacity, but do occasionally sit nearby while others write code.

I despise telling people they're screwing up at the rate they're screwing up in real time, especially when I'm more senior and they're just not noticing things that I see immediately.

Compounding this, I'm not great at quickly expressing myself verbally, and so it's not always clear what I'm pointing out. Even when I'm perfectly clear there's an element of a flustered typist trying to correct on the fly.

Combine this with introversion and mild social anxiety, and I'd say if my workplace instituted mandatory pairing I'd be looking for a new job the day they announced it.


It sounds like you and I are very similar.

I was part of a company that went down the road of XP...it was very difficult for the first 6 months but it changed my life.

I am much different now than when I started (I am actually in a role where communication is a big part of my role)...I forced myself to stick it out. Not going to lie there were a lot of tough moments on long train-rides home but I not only learned a ton from those around me, but it changed how I connect and interacted with folks.

Granted it is not for everyone, I would especially say those who want to punch-in, browse reddit, and punch-out...but it is the one thing that I've found which brought up the water-line of a team I was working on.


I appreciate your positive encouragement and that you took the time to write. I'm glad that you jumped in at the deep end and that it worked out so well for you :-)

I'm still not convinced that it would be good for my wellbeing and happiness, given that I've experienced PP for a couple of weeks on and off (not anywhere near 6 months like you!).

I do like to collaborate with co-workers to solve problems, for sure, and we will often share screens and benefit from putting our minds together. But PP for 6 ... 8 hours a day, without periods of quiet contemplation, spent with my own thoughts? When I think about it like that, my heart sinks.


Mine does too! I would generally describe myself as an ambivert (right in the middle of intro/extrovert) and I would say 6 to 8 hours a day on pair programming is too much.

I've only been at one company that has so I'm not sure how other shops do pp. What I find really helps me is actually taking turns at the keyboard with a timer every 10, 15, or 25 (pomodoro work interval) minutes. Take frequent breaks. Also, splitting it into two 2-hr sessions, one in the morning and one in afternoon. Increasing the time between your turns by turning the pair into a mob also helps.

edit: And maybe only 2-3 times a week.


I think it's endemic of larger open plan office style organisations. They have (unintentionally?) self-selected out those with sensory processing issues plus some forms of autism just by the way the workplace is shaped. So perhaps that's why the concerns stated in the article don't take people with SPD/autism/other related issues into account.

Pairing causes the social part of my brain to activate which is fine, but I cannot also think analytically in real time while speaking. To do so is somewhat stressful and that stress just mounts up the longer the pairing session lasts.

I was diagnosed autistic at the end of the last year, because I was going to therapy to deal with suicidal ideation caused by the anxiety I was carrying around with me from work. A lot of that is from long sessions of intense pairing leaving me essentially bankrupt of energy to use in my personal life.

There's just so many different non-programming things to keep track of for me as an autistic person while pairing

• Am I giving good input as the coordinator?

• Is my language acceptable?

• Is my tone correct?

• When pairing my mind goes blank for 2-5 seconds at a time and it can strike in the middle of a line, so I forget what I was trying to do and have to re-read the previous lines to remember, does this give my co-workers the impression I'm inept?

• Social anxiety causes hand tremors which make it difficult to type. Expressing thoughts now takes an inordinate amount of time to register via keyboard. Is my coordinator getting frustrated by this? Would it be rude to ask them to take over? Should I do this or is it better to persevere?

Pairing plus frequent high population meetings equals a workplace that's nigh on inhospitable for people like me with sensory processing disorders. Even though I'm sure I'm capable of the meat of the work I cannot do it without the extra steps my company mandates, and these steps reduce my capability in the areas I do exceed!


> Pairing causes the social part of my brain to activate which is fine, but I cannot also think analytically in real time while speaking.

This happens to me in whiteboard interviews and other high anxiety situations. There is no need to be atypical or suffer any disorder to feel this. Undoubtedly, this likely happens to a big chunk of the population given the disgust most people have for whiteboard interviews and other anxiety inducing situations.


I have long thought that pair programming and open offices were yet another way of punishing anyone who is neuro-atypical.


I am an introvert (although I don't have social anxiety). I work at a company where we pair program every day. I was very nervous about it at first, but I absolutely love it.

Sure, if your coworkers suck it's going to be horrible. But I've found that most people who go into programming are themselves introverts, so as you get to know your teammates and build trust, you know how to interact with each other, take breaks, not talk over each other, etc.

In fact, I think someone who is more extroverted or someone who is loud/obnoxious, would have a more difficult time pairing since it might be harder for them to listen to the other person and step back a bit.


Same. I'm introverted but find pairing works well for me. I don't like it if it goes on for more than a day in a row, however.


I consider myself rather socially anxious and introverted. I pair-programmed at a startup for the whole day, every day, for over two months, for an internship.

At first it was terribly exhausting and not very fun but over time it just becomes a part of your day. I think most people can get used to the increased level of social interaction as just something they do as part of work.

What's essential is taking breaks. We had a pomodoro timer running on every team. Some teams took a 15 minute break every hour. Some took breaks more frequently, some took breaks less frequently. I noticed that more introverted teams took breaks more often.


It's not even an issue of "mental resilience". Pair programming, like any other close human interaction, is strongly weighted toward the most aggressive or insensitive (or autistic) personality.

And in the tech world, it's very easy to encounter people more weighted toward the autistic end of the spectrum. Pair one of those with one of the HSP people, and you have a really shitty combination. The HSP will expend most of their energy appeasing and compensating for the needs of the autist. The autist will feel frustrated, and the HSP will feel fully exhuasted.


Just a heads up, HSP is often comorbid with autism as are plenty of other atypical sensory processing manifestations.


Every label probably has a range of details which can describe it, but in my experience autistic people are marked by their relative inability to understand social cues and other non-verbal (and even verbal) indications of emotion.

Highly sensitive people, however, seem to be given to feeling the emotions of others without even the necessity of verbal indications.

In my experience, they are opposite ends of some spectrum. Perhaps "normal" people fall rather in the middle.


Would you mind expanding HSP? An online search seems to indicate Highly Sensitive Person which would fit based on context?


I've done fulltime pair programming with dozens of people and not found this to be the case.

Pairing is a skill. Practiced regularly it becomes easier and smoother, like any other skill.


I sure am glad I never have to do pair programming with someone like you.


You might be looking for the section "Pairing can be exhausting".




Consider applying for YC's Fall 2025 batch! Applications are open till Aug 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: