TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

On Pair Programming

156 点作者 joeyespo超过 5 年前

31 条评论

lifeisstillgood超过 5 年前
As a &quot;senior&quot; the thing I find about pair programming is that it forces code review - it&#x27;s waaay too easy to blip over code in a review. It really is higher quality code review<p>but boy it smashes productivity with a frying pan and keeps hitting it.<p>Pair programming - bad for startups that want to hammer out quick code, bad for enterprises that want to hit deadlines on stretched resources.<p>It&#x27;s a tough one to argue for.<p>Edit: Things I want to try - Tennis Programming - sit next to each other, one writes the tests, one writes the code, swap round often, run on shared disk space or something. Spending ages watching someone else code is just being a human syntax checker. Swapping and diving in to code after ten minutes might be more interesting.<p>It&#x27;s like writing a joke or a scene in a movie then handing the paper to your writing partner. You need fast feedback.
评论 #22060519 未加载
评论 #22060512 未加载
评论 #22060441 未加载
评论 #22060681 未加载
评论 #22060475 未加载
codingdave超过 5 年前
We pair when we get stuck. It isn&#x27;t our standard way to work, and it is difficult, in particular for remote teams. But still, spend 15-20 minutes screen-sharing with a coworker, and you find one of two things happen:<p>1) They see something you did not, you get past your block, and start being productive again.<p>2) They see nothing else, so you know that you actually have a thorny problem to solve, so you get to it.<p>In those small doses, I like pair programming. But I would not care to do it more.
city41超过 5 年前
I wrote this after almost exclusively pairing for 3 years: <a href="https:&#x2F;&#x2F;www.mattgreer.org&#x2F;articles&#x2F;pair-programming-is-not-a-panacea&#x2F;" rel="nofollow">https:&#x2F;&#x2F;www.mattgreer.org&#x2F;articles&#x2F;pair-programming-is-not-a...</a><p>In general I think this article is pretty good. It seems to bias towards &quot;pair programming is better&quot; where as I biased towards &quot;pair programming can be really bad&quot;. In the end, it&#x27;s a tool like anything else. Sometimes pairing is the perfect way to tackle something, and other times it&#x27;s the last thing you should be doing.
mr_custard超过 5 年前
I read through this quickly, but I couldn&#x27;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.<p>Whilst the article mentions that it &quot;can be hard and stressful&quot; 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 &quot;give it a go&quot;. I don&#x27;t feel that&#x27;s true at all, and certainly I&#x27;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 &quot;fairly normal&quot; from the outside and do pretty well as a mostly solo programmer.
评论 #22060405 未加载
评论 #22060110 未加载
评论 #22063994 未加载
评论 #22061368 未加载
评论 #22060433 未加载
评论 #22060505 未加载
评论 #22064446 未加载
proc0超过 5 年前
I had someone in an interview once &quot;confess&quot; that they did so much pair programming they had forgotten how to quickly do things on their own. It was said as if it was one of the pro&#x27;s of pair prog., but I saw it as a huge downside that this person was so dependent on others to complete their day to day tasks.
评论 #22060090 未加载
geophile超过 5 年前
If forced to choose between pair programming and not programming at all, I think I would choose the latter.
评论 #22060940 未加载
评论 #22059993 未加载
评论 #22059979 未加载
FpUser超过 5 年前
Personally when approach a task I like to be alone and do design. At this point I do not need anyone messing with my thoughts. If I need advice sometime during the process due to let&#x27;s say lack of experience in particular area I&#x27;ll call someone who does and ask for advice. Does not take long. Few minutes usually.<p>When the design is ready I want to present it to people and they have to prove to me that I produced crap. If they do I am back to a drawing board . If not (and that became the most often outcome after few years in the industry) then f.. off leave me alone and I&#x27;will put my design into a code. The last thing I need at this point is someone breathing down my neck.<p>After the code is finished and I am reasonably happy with it I would like me some code review if condition allow. Not very often as I mostly work either on my own products and do not have people around for code review and&#x2F;or making some extra dosh doing the same thing as consultant and consultants do not often get this luxury.<p>All in all I can see no benefits at all in doing pair programming for myself. If someone is happy with it and their boss lets them do it then sure, go full monty. Just please do not force this style on people. Not everyone can tolerate close contact for extended time.
xupybd超过 5 年前
I would take less money to get to work like this. The isolation is what I find hardest about being a developer. I work far better in a team with people relying on me. Direct interaction like that makes the days so much more enjoyable. I really hope to one day find an employer willing to adopt this practice.<p>If anyone is hiring I&#x27;ll apply.
评论 #22061296 未加载
评论 #22060541 未加载
jacques_chester超过 5 年前
My experience of pair programming, which spanned about 4.5-5 years of working for Pivotal Labs and in Pivotal R&amp;D, was pretty much universally positive.<p>But it&#x27;s a complex skillset in its own right, hard to learn from a book. And in turn it requires a degree of corporate sanity and cultural safety that is quite rare. It&#x27;s also a very humbling experience.<p>Lots of people have had bad experiences, or believe that they would have a bad experience. I just like to place on the record that my experience of pair programming has been amazing and I look forward to the day when I can return to it.
_y5hn超过 5 年前
Nothing wrong with &quot;pair programming&quot;. It&#x27;s only natural when people are friendly, engaged and cooperating, in that order.<p>It&#x27;s the environment that actively sabotage such way of working, or attempts to mandate it as a ritualistic practice, that is unnatural.<p>A natural extension of two people in front of a whiteboard, nothing more.
评论 #22060463 未加载
overgard超过 5 年前
Pair programming is a nightmare for introverted people. Part of the appeal of coding is the relative solitude of the work. I think any company that mandates it is just a place I won&#x27;t work.
simonw超过 5 年前
I&#x27;m always slightly surprised when I see an article on martinfowler.com that isn&#x27;t by Martin Fowler. I can&#x27;t think of many other personally-branded domains like this that feature guest author content so often.<p>... which is really me distracting myself, because the guest content is usually of a very high quality. Maybe the personal branding is justified here because Martin Fowler curates and edits the pieces?
评论 #22059916 未加载
siquick超过 5 年前
My experience of PP has been that it&#x27;s often a way for one of the devs to prove that they are the smartest person at the desk, and its far from a collaborative effort.<p>A lot of dev teams suffer from the iamverysmart problem already, and PP just seems like a way to exacerbate it.
confidantlake超过 5 年前
I have somewhere between moderate and severe social anxiety. Was on a team earlier this year that did 100% pair programming. Was the worst 6 months of my career. I had weekly breakdowns, my mental health got much worse ect. Once I was moved to a different team, my mental health quickly recovered.
aspaviento超过 5 年前
I had a coworker with whom I did some pair programming and it was painful. He was very talkative, to the point of forcing me to interrupt him every time to come back to what we were doing. Also most of the time he made really hard to follow the code because he took every opportunity to show off his keyboard-shortcut-skills, jumping from file to file, jumping between lines of code, commenting and uncommenting code... all that very fast.
评论 #22064306 未加载
评论 #22064259 未加载
epicgiga超过 5 年前
The problem is treating this stuff in an &quot;inheritance&quot; rather than &quot;composition&quot; manner. Which is precisely how most managers think, AKA management fads.<p>Instead of absorbing the concepts behind PP into the mamagement, they&#x27;ll declare &quot;our team does PP&quot;. We&#x27;re a PP team now. Or Agile. Or Lean. Or whatever. And they&#x27;ll fit the team to the book, rather than the other way around. It&#x27;s rife and terrible.<p>Sure, I &quot;do&quot; PP... maybe a total of an hour a week, to mentor a junior. Which I do without knowing it&#x27;s &quot;PP&quot;, or calling it that, or caring about that as a practice.<p>When a managerial practice gets a name, it causes more harm than benefit, because every drone manager out there will get all procrustean and damage existing workflows with it.
pnathan超过 5 年前
I have never once been able to look at this and think it was a good idea outside of specific training sessions with specific coworkers for specific purposes.<p>I think programmers should be considered professionals who can do their own work quite well on their own, and held to that standard.
评论 #22061169 未加载
nikofeyn超过 5 年前
the thought of pair programming nearly gives me an anxiety attack. the second it’s mentioned in the interview process, it’s an automatic no from me. what other industry or domain does this? none that i know of.<p>first of all, working in pairs creates a problem when there’s disagreement. you need a group of three to five to find agreement in those cases. working in pairs also requires a very tight alignment of style in programming, thinking, speed, brainstorming, etc. it simply does not allow for moments of thoughtful rumination or experimentation. it’s just like having pairs in school. it never works unless the two people are copies of each other or both people have spent time doing and thinking about the task themselves independently <i>beforehand</i>.<p>i think working in pairs or small groups for design, review (or a post-review discussion), and especially debugging works quite well. it also works well when there’s a new person being ramped up or someone in the pair who is particularly knowledgeable about a portion of the interfacing code or sticky points. but two people sitting at a computer implementing? that only works for a very, very short amount of time, if at all.<p>i refuse to work for any place that forces this upon workers. it creates just another selection bias in interviews. engineers already look for people <i>just</i> like them, and this just adds to that bias.<p>and the articles for the benefits does nothing to say what pair programming does to actually enable the benefits listed. all of the benefits can be accomplished by shared design plus individual design, shared review, shared debugging, and individual implementation.
评论 #22061163 未加载
jordanlev超过 5 年前
As a counterpoint to most of the comments here: I work at a company where almost every developer pairs all the time. I absolutely <i>love</i> it. I thought I would hate it. I&#x27;m an introvert. I previously worked as a solo freelancer and then as a remote teammate. So I was very nervous about this aspect of the job, but figured I&#x27;d give it a shot (other things about the job were appealing enough that I was willing to try it out).<p>Some thoughts based on my own personal experience:<p>* The biggest win for me is I am much more focused and productive throughout the day. Having an actual person to be accountable to on a continual basis keeps me from meandering down unimportant rabbit holes, unnecessary&#x2F;premature refactoring or re-organizing, and general procrastinating (reddit, HN, etc)<p>* Development is definitely at a slower pace on a daily basis than what I&#x27;m used to working on my own, but over time I think it evens out in terms of quality of code and maintainability.<p>* Knowledge sharing is huge -- when I was solo, I could never truly take a vacation because I was the only one responsible for my piece of work. Now I&#x27;m on a team where we all pair with each other and switch around every day... if someone is out, it&#x27;s no big deal. Also makes it much easier to onboard new people (the company I work at is a consultancy so projects are always ending and new ones beginning).<p>* Despite being an introvert, I feel no more &quot;drained&quot; of energy at the end of the day than I ever did at any other job. One-on-one interactions with people I know and build trust with just doesn&#x27;t affect me the way other social interactions do.<p>* Pairing is not a panacea. Some of the comments I&#x27;ve seen here are about how horrible it would be to pair and feel judged all the time or one personality overriding the other... I suppose that&#x27;s possible but it doesn&#x27;t happen at my job because my company values and encourages trust. My team is comprised of mature people who all value team cohesion and working together towards a goal over having to be right all the time or proving to someone that we&#x27;re better or whatever.<p>* I am never &quot;stuck&quot; pairing with just 1 person for a long time... we switch around every day. I probably pair with any given person only once per week (on a team with 6 developers). But each team has autonomy to structure the pair switching however they want.<p>Those are just some thoughts off the top of my head. Happy to answer any questions anyone may have (and if it sounds interesting to you, my company is always hiring... we have physical offices around the world, as well as a &quot;virtual office&quot; for remote employees).
评论 #22061587 未加载
Grimm1超过 5 年前
At my first job I mandatorily pair programmed with someone every day for months and we had very different personalities. Neither he nor I wanted to and the result was we wore on each other, decorum broke down and the code itself was weaker because we would take turns ignoring the situation to get what few moments of peace we could in the day. We both left that company around our 1-year mark even though otherwise it wasn&#x27;t bad got out at 5pm every day, catered lunch sometimes etc. I understand it is useful in certain situations but that largely turned me off from it as a concept and I still doubt the benefits when used &quot;properly&quot;.<p>Pair programming is a very intense experience and had it stopped a few weeks in that situation then maybe my thoughts on it would be different.
itqwertz超过 5 年前
Pair programming is fantastic.<p>There is no better way to educate a newer team member to code standards and procedures as well as business domain. It also helps to reign in over-engineering and bad approaches. For more senior developers, it can expose them to newer approaches and technologies that they might not be aware of.<p>I had a great experience pairing on a complex feature request (convert desktop version of an app to a mobile version) that was planned for 3 months. We finished it in a month with full test coverage and every little change to PM, PO, and UX designer could throw at us. Because we both had knowledge of the systems, we could later work independently on simpler tasks and regroup later to combine our efforts.
uncle_j超过 5 年前
I been working full time now about 15 years and I think Martin Fowler&#x27;s blog and especially articles like this do more harm than good.<p>Typically I find Pair Programming pretty pointless for most tasks. Where it works is when one developer knows the code base and another knows about the new piece they are trying to implement e.g. something external they are interfacing with.<p>Much like other subjects on Martin Fowlers blog, it will get picked up by some which will religiously adhere to it and not consider where it will be best suited.
jtaft超过 5 年前
All around pretty good article. Never thought about using the pomodor technique while pair programming.<p>The part about &quot;informal hierarchies&quot; threw me off, and comes off a bit sexist and racist to me. I read this as &quot;hierarchies that are generally recognized&#x2F;accepted by the public&quot;. I don&#x27;t believe Fowler intended it to read this way. I think it&#x27;s okay however to recognize people may have interpersonal issues, for a wide range of reasons.
评论 #22064189 未加载
Tainnor超过 5 年前
Pair programming is by no means &quot;crucial&quot;.<p>It is an approach that probably works quite well in some contexts and some teams. In other team, different approaches work.<p>In the end what matters is that the team is highly motivated, has a strong sense of ownership and takes appropriate measures to reduce defects. How it achieves that doesn&#x27;t really matter from a business POV and is more a subjective preference. In my team, we mostly achieve this through extremely thorough code reviews that dig into a lot of details and that works well for us.<p>edit: another thing that we do is careful discussion and planning of features (where we will sit together in a small group and discuss approaches) and, for more complex things, architecture decision records (similar to RFCs) that get reviewed before they are implemented.
kstenerud超过 5 年前
I&#x27;m sure pair programming is great for certain personality types, but please do not treat it as a panacea.<p>I&#x27;ve done pair programming enough now in my career to be able to say that it stifles me, interrupts my flow, kills my creativity, decreases my productivity, and leaves me exhausted at the end of the day. I don&#x27;t necessarily think it&#x27;s a bad idea for certain people, but I resent it when it becomes a blanket policy. In fact, I&#x27;ve left jobs that started requiring pair programming.<p>There&#x27;s a reason why it&#x27;s only received tepid acceptance in industry.<p>If it works for you, great. But don&#x27;t force it on me.
cgrealy超过 5 年前
I find PP useful for complex tasks where two devs can bounce ideas off each other (preferably in a breakout room with a whiteboard).<p>For the majority of time, it&#x27;s just not necessary. If the domain is well understood, the code base is familiar and the requirements are well defined, most units of work (stories, PRs, whatever) shouldn&#x27;t need two people.
lunias超过 5 年前
I&#x27;ve worked at places in the past that forced pairing. One monitor and two keyboards style. It was painful; impossible to get into flow state.<p>All of your mental maps need to be communicated repeatedly to the other person - and it&#x27;s slow. It&#x27;s like the difference between L1 cache lookup and sending an email and waiting for a response.
gatestone超过 5 年前
Here is a beautiful example. Using &quot;screen&quot; to switch every 5 minutes or so... <a href="https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=yG-UaBJXZ80" rel="nofollow">https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=yG-UaBJXZ80</a>
forgotmypw38超过 5 年前
I fake it by doing a screen capture of myself working and then playing it back.
评论 #22059976 未加载
0x445442超过 5 年前
So while pair programming what happens with the never ending string of distracting Slack messages and diversions? It just seems completely impractical for the environments I’ve had experienced.
评论 #22060545 未加载
评论 #22061187 未加载
评论 #22064176 未加载
nixpulvis超过 5 年前
Anyone know of a good, open source, cross-platform video conferencing application?
评论 #22060553 未加载
评论 #22061202 未加载