Earlier quoted context omitted.
> Two talented, smart people who are able to work together will produce a better solution than one person alone. The issue I have with this statement is that working together does not require pairing. I agree with your statement, but not as support for pair programming. > As you rotate pairs, context on the code base is shared and permeates the team faster. New onboards get up to speed at a remarkable pace--far bette…
> Having run companies, and hired many dozens of engineers, if you do so you'll end actively discriminating against many types of neuro-divergent people. Apart from the issue of whether or not you can actually show any benefits, you'll be one little conflict away from a lawsuit. "We pair program here--that means actively working with another engineer for 8 hours a day. Is this something you're comfortable with?" "No.…
Pair Programming Antipatterns
81–90 of 136 posts
Re: Pair Programming Antipatterns
#82Earlier quoted context omitted.
> Two talented, smart people who are able to work together will produce a better solution than one person alone. The issue I have with this statement is that working together does not require pairing. I agree with your statement, but not as support for pair programming. > As you rotate pairs, context on the code base is shared and permeates the team faster. New onboards get up to speed at a remarkable pace--far bette…
> Having run companies, and hired many dozens of engineers, if you do so you'll end actively discriminating against many types of neuro-divergent people. Apart from the issue of whether or not you can actually show any benefits, you'll be one little conflict away from a lawsuit. "We pair program here--that means actively working with another engineer for 8 hours a day. Is this something you're comfortable with?" "No.…
A whole lot of unwillingness to make reasonable accommodations for people based on disabilities will open you up to lawsuits.
To imply reasonable accommodations for neuro-divergent people is simply a matter of "comfort" is indeed worth a "what a world" on the same level as refusing to make reasonable accommodations for those who are blind or hard of hearing or in a wheelchair.
Re: Pair Programming Antipatterns
#83I've never pair programmed before, so if anyone has any advice like this that they're willing to share it would be helpful.
Pair programming is terrible by default. You have to work to make it good, but then it can be great.
Re: Pair Programming Antipatterns
#84Re: Pair Programming Antipatterns
#85Earlier quoted context omitted.
> Having run companies, and hired many dozens of engineers, if you do so you'll end actively discriminating against many types of neuro-divergent people. Apart from the issue of whether or not you can actually show any benefits, you'll be one little conflict away from a lawsuit. "We pair program here--that means actively working with another engineer for 8 hours a day. Is this something you're comfortable with?" "No.…
> What a world. A whole lot of unwillingness to make reasonable accommodations for people based on disabilities will open you up to lawsuits. To imply reasonable accommodations for neuro-divergent people is simply a matter of "comfort" is indeed worth a "what a world" on the same level as refusing to make reasonable accommodations for those who are blind or hard of hearing or in a wheelchair.
I kind of take issue with your assumption that someone with (edit: meant Neurodivergent... NPD is something else) can't pair program.
If your assumption of an effective pair programmer is that they're always bubbly extroverts with politician-level shmoozing capability, I kind of doubt you've spent any length of time doing it.
There's a lot of people who struggle with more "normal" communication that are incredible pair programmers. I've worked with many of them. In many cases, the code and the keyboard becomes a communication medium they're effective at leveraging--more than other means. Actually doing pair programming challenged a lot of my misconceptions about what it takes to be good at it.
It's skill and like any other should be disconnected from stereotypes. I don't see why you can't hire for it like any other. Hopefully I don't run into you in the court room. ;-)
Re: Pair Programming Antipatterns
#86Earlier quoted context omitted.
> Two talented, smart people who are able to work together will produce a better solution than one person alone. The issue I have with this statement is that working together does not require pairing. I agree with your statement, but not as support for pair programming. > As you rotate pairs, context on the code base is shared and permeates the team faster. New onboards get up to speed at a remarkable pace--far bette…
> one little conflict away from a lawsuit I find this hard to believe. Which country’s laws are you thinking of? In the US, at least, companies such as Pivotal and Menlo Innovations, as well as others I’m not at liberty to name, require full-time pairing. They’ve never had an issue. Your statement is also at odds with my understanding of employment law, which is admittedly at a layman’s level, but I have studied it f…
I'm in Europe, but I've seen such law suits and threats of lawsuits over issues like this affect companies I've done projects for first hand, including at least one US company. They are very hard to make stick, because most people are not dumb enough to make statements that are clear cut enough to provide proof that the employees failure to get hired is discrimination. But that does not stop people from suing (or threatening to sue). I've seen team paralysed for months [dealing with legal issues surrounding conflicts over discriminatory hiring practices] instead of doing their jobs. I've also personally seen people walk away from threatening lawsuits over issues like this with well over a years worth of compensation just from a threat.
This is separate from the moral issue - personally I've interviewed enough neuro-divergent candidates who were qualified (and hired a few) but who'd struggle with things like pairing and I'm personally not willing to refuse to make reasonable accommodations.
> You’re losing credibility with me. I’ve done exactly what GP is talking about and it was better than code reviews (etc), not worse. Are you talking from experience, or from personal preference?
I'm talking from experience over nearly 3 decades, including direct personal experience in cleaning up the failures of teams who took short cuts because they thought pairing could replace code reviews. They catch different things. Pairing for some teams where people are comfortable with it leads to lower counts of some types of defects assuming a lot of things go right (e.g. the pairs are matched well with people who'll actually speak up and challenge each other), but pairs tends to look themselves blind to many of the same categories of failures as individual developers because they focus on solving a task and steer their view of the code accordingly rather than looking for at breaking it.
It's the same reason developer written test suites does not obviate the need for QA, and internal security reviews does not obviate the need for external pen testers, or having developers try to think about operational issues does not remove the need for SRE's or equivalent.
Re: Pair Programming Antipatterns
#87I'm pretty convinced that pair programming is in and of itself an antipattern.
I’m curious to hear what you dislike about pair-programming.
Re: Pair Programming Antipatterns
#88Earlier quoted context omitted.
> What a world. A whole lot of unwillingness to make reasonable accommodations for people based on disabilities will open you up to lawsuits. To imply reasonable accommodations for neuro-divergent people is simply a matter of "comfort" is indeed worth a "what a world" on the same level as refusing to make reasonable accommodations for those who are blind or hard of hearing or in a wheelchair.
> A whole lot of unwillingness to make reasonable accommodations for people based on disabilities will open you up to lawsuits. I kind of take issue with your assumption that someone with (edit: meant Neurodivergent... NPD is something else) can't pair program. If your assumption of an effective pair programmer is that they're always bubbly extroverts with politician-level shmoozing capability, I kind of doubt you've…
Many can. Many can't. I did not make the assumption you're arguing against here.
> If your assumption of an effective pair programmer is that they're always bubbly extroverts with politician-level shmoozing capability, I kind of doubt you've spent any length of time doing it.
That was not my assumption at all. You're jumping to unwarranted conclusions not at all supported by what I wrote.
> There's a lot of people who struggle with more "normal" communication that are incredible pair programmers.
That's fine, but it does not change the fact that many people struggle with it. Including people who manage to deal with "normal" communication just fine, but who find the intensity of a pairing unbearable. I can do it, but to me it is intensely uncomfortable to the point that as I've pointed out elsewhere I refuse to be pushed into it - for me it's not a problem, as my career has afforded me the luxury of picking and choosing positions where I get to decide what goes -, but I've met many brilliant developers over the years who just could not deal with situations like that at all.
> It's skill and like any other should be disconnected from stereotypes.
This dismissal of what to quite a few people is an inherent part of their neurological makeup as a "skill" comes across to me as incredibly offensive.
Re: Pair Programming Antipatterns
#89I've never pair programmed before, so if anyone has any advice like this that they're willing to share it would be helpful.
Re: Pair Programming Antipatterns
#90> Sit so that the monitor is between the two of you. No. Use two monitors that are mirrored or with screen sharing, so that each person can sit comfortably centred on their own screen.
I've found shared tmux/screen sessions are ideal. + each person can have their own font/resolution + it doesn't dominate the entire screen, allowing each person to keep their own notes/etc on the side + at any point someone can "jump in" and take control of the session + interacting in a confined shared space radically reduces "over communication" issues. i.e. if you want to show something it's got to be demonstrable…
So we end sharing the screen over hang outs, that is basically very inefficient and wastes a lot of CPU. But because it is normalized, it is "the standard".
EDIT: my comment was a bit unfair. I guess I could install VS Code, change my daily editor, and use it with the Live Share plugin with those using VS Code. So hang outs it is.