Slashdot Mirror


The Friendship That Made Google Huge (newyorker.com)

Coding together at the same computer, Jeff Dean and Sanjay Ghemawat changed the course of the company -- and the Internet. An anonymous reader writes: The New Yorker has profiled Jeff Dean and Sanjay Ghemawat, two of Google's most storied developers and to date, the company's only Senior Fellows, the highest level Google awards to engineers. The article dives into some of Dean and Ghemawat's successes at Google but focuses on their deep and collaborative friendship -- particularly exploring the power of programming with a partner. "I don't know why more people don't do it," Ghemawat explains. As Dean points out, all you need to do is "find someone that you're gonna pair-program with who's compatible with your way of thinking, so that the two of you together are a complementary force."

57 comments

  1. Wasn't there a movie about this in the ninetees... by Anonymous Coward · · Score: 0

    called 'The astronaut's wife'

    captcha = distort

  2. 90 hour weeks by Anonymous Coward · · Score: 0

    When you're willing to work 90 hour weeks, you had _better_ shine above everyone else. Smart people, long hours, and being left alone to do deep thinking. Working together helps, but it's not the whole story.

    1. Re:90 hour weeks by umghhh · · Score: 2

      Thought so too. Besides this my experience at pair coding (or whatever that is that you do) is that it sucks all energy. It motivates etc. so it is brilliant way to be very productive unless of course the two do not agree with each other, cannot stand each other occasionally, the task requires to be indeed two at two different places doing two (or ore) different things at the same time as there is nobody else in the team etc etc. This way of doing stuff being very exhausting cannot be done 24x7 year after year but for certain phases of the project. One of the pair having kids make it hardly impossible to continue this 100% etc. Plus: there are indeed people that cannot do it, are just not meant to do it because god did not have given them ability to do so. The advice is great but does not apply to everybody and not to all conditions so this - why not more people do that is just a silly question. Besides - this much time spent together will raise questions of different nature which in today's culture are just toxic which leads us to a whole different world of ugly altogether.

  3. Re: The fact that they are Jews made them big. by Anonymous Coward · · Score: 0

    I bet it wasnt rust they used for such a thing. Otherwise a nice article to read some other time maybe. I cannot wait to see what my selp helf elf is bringing me for Christmas

  4. Re:You know why by Anonymous Coward · · Score: 0

    That should be modded up funny, because it is!

    Anyway, if a pair of programmers is good, imagine a Beowulf Cluster of them!

  5. So, the foundation of evil? by Anonymous Coward · · Score: 1

    I knew pair programming was the source of all evil.

  6. "I don't know why more people don't do it" by Anonymous Coward · · Score: 0

    Maybe first, make it possible for a pair of people to interview for a position, and *then* if people don't take advantage of it you could wonder why?

  7. Re: The fact that they are Jews made them big. by Anonymous Coward · · Score: 0

    Self help elf? Is that what you're calling your left hand?

  8. Re: The fact that they are Jews made them big. by Anonymous Coward · · Score: 0

    Your mouth.

  9. Re:Elites writing about elites by Anonymous Coward · · Score: 1

    Wah, everything I don't like is "elites"... Waaaah... https://www.newsweek.com/lot-republicans-think-trump-wont-finish-term-1251056

  10. Umm by Anonymous Coward · · Score: 0

    All you gotta do is meat your soul mate then it all clicks

    1. Re:Umm by Anonymous Coward · · Score: 0

      All you gotta do is meat your soul mate then it all clicks

      "All life is a blur of Republicans and meat."

      - Zippy the Pinhead

  11. Re: Elites writing about elites by Anonymous Coward · · Score: 0

    They gave me the wrong size just like every time

  12. Re:Elites writing about elites by Anonymous Coward · · Score: 0

    So you're taking the rhetorical position that Sarah Palin IS NOT a cunt? Really, how honest are we being about this? You're saying Palin represented the poor? Are you some kind of retarded halfwit or something?

  13. The Friendship That Made Google Eviler by Anonymous Coward · · Score: 0

    'I was just following orders'

  14. Re:Elites writing about elites by Anonymous Coward · · Score: 0

    Nope, that's passe.
    Now I wear a "Trump is a dick" T-shirt, featuring the mushroom character in Mario Kart.

  15. Re:The fact that they are Jews made them big. by Anonymous Coward · · Score: 0

    Right, no much competition when the world is filled with dumbfucks like you.

  16. Re: Elites writing about elites by Anonymous Coward · · Score: 0

    They did not offer the correct size anyway. That size was youth youth

  17. Re: JEWgle glorifies other JEWS? Ha by Anonymous Coward · · Score: 0

    I hope you are aware that you can incite violence against very nice actual Jewish people when you post this nasty drivel

  18. Re: JEWgle glorifies other JEWS? Ha by Anonymous Coward · · Score: 0

    I hope you realize nothing in it says kill/hurt jews. They do themselves in by their beliefs/practices. It's not all jews either. Read it. Deny it if possible. I never see that happen. Tough to deny undeniable fact jews history, members, and very talmudic beliefs state, isn't it?

  19. Re: JEWgle glorifies other JEWS? Ha by Anonymous Coward · · Score: 0

    You can tell that to your likely to be Jewish lawyer when you get charged with manslaughter from ruling up skinheads. He (likely a he) will likely defend you anyway but to each his own

  20. Why more people don't do it by JaredOfEuropa · · Score: 4, Insightful

    As Dean points out, all you need to do is "find someone that you're gonna pair-program with who's compatible with your way of thinking, so that the two of you together are a complementary force."

    Is that all? No. First, you need to find a great match for pair-programming which is already hard enough. But you need to find one who is nearby (this doesn't work all that well remotely), and who happens to work at the same company or startup or whatever, on the same team or on the same or similar assignments. Or you need to already have that coding partner and have the luxury to pick your own employer and assignment together, have the time and energy to work together on some FOSS thing, or be in a position to found your own startup. So no, I am not at all surprised that not many people end up doing this.

    --
    If construction was anything like programming, an incorrectly fitted lock would bring down the entire building...
    1. Re:Why more people don't do it by hjf · · Score: 3, Informative

      First you need a project leader that doesn't think "two people working on the same ticket is a waste of resources because only one is pressing the keys, the other just looks".

    2. Re:Why more people don't do it by Anonymous Coward · · Score: 0

      This is why, despite the huge number of developers Google hires, only two of them get to develop software. They've mandated that everyone else be just like them. Oh, and they aren't restricted to specific objectives and key results, so have the freedom to make their thing work.

    3. Re: Why more people don't do it by Miamicanes · · Score: 2, Interesting

      If you assume that there are approximately 16 general hardware configurations humans tend to cluster around, there are approximately:

      * 16 combinations that are *golden* for pair programming. Say, INTP + INTJ (probably the most ideal, golden pairing of all)

      * 16-48 combinations that are likely to be subpar at best. Say, INFP + INTJ, or ENTJ + INTP

      * at least 128 combinations likely to be flat-out dysfunctional, like INTP + ESTJ

      The point being, you can't pair by HR or management decree or force it to work. When you match up two programmers with complementary personality types, of roughly equal skill, it's magic. Nearly every other combo ends up being a net drawback, handicap, and liability.

    4. Re: Why more people don't do it by Miamicanes · · Score: 1, Redundant

      ^ oops, cut all the numbers in half, since INTP+INTJ is the same as INTJ+INTP (and so on).

      Just to add, pairing two programmers with the SAME personality type is generally a waste... they'll both get stuck on the same problems, fall into the same traps, and often either bicker or tune out while the other is "in charge".

      Pair an INTP with an ENTP, and they'll derail each other in no time flat. They'll probably have a great time, and might come up with a brilliant, creative solution to the wrong problem, but are unlikely to accomplish their goal (or even remember what it WAS).

      Pairing a "N" type with a complementary "S" type might help when it comes down to things like "AI vs UI work", but you'd arguably get more done with a xNxx (AI) and a xSxx (UI) if you had a good project manager just split up the task & had both programmers simultaneously working on the sub-task they enjoy & excel at (N-types tend to be theoreticians who LOVE things like AI, but come up with the ugliest & most dysfunctional UIs on earth... S-types tend to be artisans who get immense satisfaction out of making a beautiful, polished UI, but get frustrated with more abstract things like AI. HOWEVER, N and S types CAN complement each other well in areas like computer vision... just not necessarily touching the same code simultaneously. Put them together to brainstorm, then let them be inspired & go explore on their own for a while.

      The main problem with pairing ENxx types with INxx types is that it tends to get the INxx type mowed over and bulldozed... at best, the INxx gets shoved aside, bored, and tunes out. Both groups add insight to each other (the ENxx types expand the INxx types' horizons & inspire them to "think big"), but they work better as teammates than pairs.

      Getting back to INTP+INTJ... it works so well because both types easily see around each other's roadblocks, effortlessly spot each other's typos + oversights, and generally follow meandering paths towards the same goal. It's important that they regard each other as equivalently-competent, but ideally each will be an expert in a slightly different aspect of the problem.

      INTP+INFJ or INFP+INTJ can work, but the 'F' partner is more likely to be unintentionally insulted by the 'T' partner, or read into motives that don't actually exist. Likewise, a badly-frustrated 'F' can sink a verbal dagger pretty deeply into their 'N' complement and *really* hurt their feelings in a way few other types are capable of (INTx types get accused of having no feelings, but the reality is that they have a Jeckyl-Hyde relationship with their feelings... they're rightfully scared *shitless* of them, and work hard to keep them safely locked away for everyone's safety & well-being lest they explode out like a shaken bottle of Diet Coke).

      The point is, different types all have valuable insight, but not all of them can intimately work *together* as a pair. Some combos are better left as teammates & coworkers for everyone's sake, and others are better off collaborating briefly, in small chunks, before going back to working on their own.

    5. Re: Why more people don't do it by epine · · Score: 1

      Professional psychometricians don't take Myers–Briggs all that seriously these days.

      Most of these systems are beloved of consultants and sages because they're good conversation starters.

      The best supported factorizations are the Big Five personality traits (often seen as OCEAN).

      Ordered from most likely to improve your career, to least likely:
      * conscientiousness
      * openness to experience
      * agreeableness
      * extraversion
      * neuroticism

      (In some career tracks, you'd reverse openness and agreeableness, but not computer science, in my opinion.)

      I've had two experiences with pair programming, and in both cases my partner hated it, because they were extreme introverts, and they liked to burrow into the details. The first guy liked to achieve working code at a breakneck speed, and would usually cut many corners along the way. We had a problem where we had two linguistic input spaces, and we formed a conceptual superset, into which both of these could be mapped one-to-one.

      And I would watch him sail into an edge case, and not really deal with the problem. And I would interject, "uh, if you do that, our conceptual mathematical function isn't one-to-one anymore". But then we would discover that he was trying to work around previous work that hadn't gotten this entirely straight, and I would want to refactor everything in sight simultaneously, and then he would slap my fingers, and perform all the refactoring in prudent single file. Except that he wanted to constantly quit, before the job was done, so I kept slapping his fingers. Probably the longest he ever endured between successful compiles in his entire professional life.

      We moved more dirty rocks that day working together than we had in the previous week. The problem was that my partner couldn't see the big picture. He felt like it had been the slowest most aggravating day of his life. What I saw was a system which finally had all its formal ducks in a row, one that never gave us any trouble again, ever after. But his dopamine loop didn't work on that scale. I seriously cramped his cruddy kLOC style, and he avoided sitting beside me ever again, even though he was far better at properly pacing complex code refactoring than I'll ever be (because I tend to think about the big picture all the time) and those complementary skills made our partnership highly effective.

      The second person hated it because I kept reminding him of how much work remained to be done. Every time he made a change, I would go "oh, this is going to impact that" and I would go running off to check out that on another screen. It's funny, because this time I was the one catching loose stitches, but my my way of doing this was mostly leaving source code comments in related modules about how "on such and such a day, we changed X and Y, and even though we tested U and V, we couldn't figure out how to test Z quickly". It's not that I'm low on conscientiousness, it's that my conscientiousness is always global in nature.

      It's actually pretty hard, as a solitary person, to be working that hard on the central task, and to simultaneously leave so many useful breadcrumbs scattered around.

      The funny thing is, you bump into those comments a few weeks or months later, and you're surprised, because in your present state of mind, it's completely slipped your consciousness that Z is even something that needs to be tested as a result of your local changes. The comment mutates from "sorry, we skipped Z under pressure in the trenches" to "OMG, I had better pay attention to Z, which had almost completely slipped my mind".

      It's always a counterfactual proposition, but I'm sure that a prescient comment of this sort has saved me hours, or even half a day compared to how I might otherwise have proceeded (until the light dawned).

      My experience is that people have different emotional management loops. People who cope with stress by trying not to consider the wh

  21. Re: JEWgle glorifies other JEWS? Ha by Anonymous Coward · · Score: 0

    Ah yes. Threats. The juden way. Coercion by empty threats. You were asked to prove what's in that post wrong. You can't. Fact is like that. Fact jews themselves supply no less.

  22. My experience of pair programming by JustNiz · · Score: 1

    It's a terrible idea and sucks badly unless you're that kind of person, and also find that perfect partner. In nearly all cases that I've seen and experienced, pair programming just degenerates into endless discussions around philosophical differences and battles of egos, and with 2 people, there's also no one to tie-break.

    For me at least, I've repeatedly found there's not any way to get the job done more quickly/effectively than just leaving me alone to get it done on my own.

    1. Re:My experience of pair programming by Anonymous Coward · · Score: 0

      I haven't really done pair programming, but it seems to me that writing unit tests while you write code would be a reasonable facsimile for pair programming.
      Although I feel TFA is talking more about people solving problems together than just coding together.

    2. Re: My experience of pair programming by Anonymous Coward · · Score: 0

      Fuck unit tests - useless bullshit that was glorified by synthetic use cases.

    3. Re:My experience of pair programming by Anonymous Coward · · Score: 0

      , I've repeatedly found there's not any way to get the job done more quickly/effectively than just leaving me alone to get it done on my own

      Why aren't you a Team Player? Why don't you agree with Best Practices? Why do you Hate America?

    4. Re: My experience of pair programming by Miamicanes · · Score: 1, Insightful

      ^ That's usually what happens when you pair people who are TOO similar... like pairing an INTP with an INFP or ENTP (or worse yet, another INTP). They succumb to the same problems, and feel the most strongly about things they're likely to disagree about. Egos clash, and it rarely ends up being a good idea.

      For pairing to really work well, you need two people who are similar enough to agree about striving toward the same goals, but follow meandering mental paths that cross back & forth along the way towards that goal. Ideally, when perfectly matched, you end up with two people who can easily solve each other's problems without making them feel insulted, and both feel like they're getting as much out of it as they're putting in.

      The main reason pairing works at all in the real world is due to demographics. INTP & INTJ (the golden pair) is rare overall, but account for something like 40-60% of career programmers, so the odds aren't quite random. But personality type compatibility is still just ONE requirement... they also need to be comparable in skill & genuinely regard each other as equals. Even an INTP and INTJ can resent each other or have cat fights if their skills/contributions are too lopsided.

    5. Re: My experience of pair programming by Anonymous Coward · · Score: 0

      um, no. Unit tests are replication of a decent compiler. As soon as you start removing strong typing and other enforced limitations you need something else to double check your human frailty.

    6. Re: My experience of pair programming by Anonymous Coward · · Score: 0

      Unit tests for code written by the developer who wrote the code is just a crutch for a developer who can't remember what he tested or doesb't know how changes will affect his system. They will test exactly what he thought about and nothing more.

      Unit tests for code when someone else is maintaining your code is mildly useful, especially if the bugs are getting assigned to the latest millennial through the door who will find something close on stackoverflow and copy/paste his way to completion.

      Unit tests written for your code by an anal bastard with an axe to grind with you personally...now that code will be solid.

      Moral of the story, find a test engineer who is pretty good, get him on your team, and fuck his wife or something.

  23. Re:JEWgle glorifies other JEWS? Ha by Anonymous Coward · · Score: 0

    Jews hiding facts from their history and religious cult beliefs by downmoderation only proving their reprehensible ways but not proving it wrong.

  24. Re:Elites writing about elites by Anonymous Coward · · Score: 0

    1) You are not a very bright person
    or
    2) You are not trying very hard.

    Hooray for "us"! Look, a piece in the New Yorker, a publication entirely uncontaminated by coastal elitism, offering an accepting profile of the other coast's elites! How tolerant! How accepting of The Other! By the way, have you worn your "Sarah Palin is a Cunt" T-shirt recently? There's another class marker! Let's all - journalists and Silicon Valley millionaires - unite against the lower classes for insisting their interests be represented in government. After all "we're" all on the same team, amirite?

  25. Re:The fact that they are Jews made them big. by Anonymous Coward · · Score: 0

    "Jeff Dean" and "Sanjay Ghemawat" sure don't sound like Jewish names to me. Dumbass troll is dumbass.

  26. We need a new friendship to make Google small by Anonymous Coward · · Score: 0

    we'll know Google (or the antitrust breakup pieces of Google) is/are small enough again when they find that "don't do evil" is actually in their interest again.

  27. Re: The fact that they are Jews made them big. by Anonymous Coward · · Score: 0

    They sound like jewgger and shitty sand monkey names.

  28. Re: JEWgle glorifies other JEWS? Ha by Anonymous Coward · · Score: 0

    Jewggers must be exterminated. Period.

  29. Github? by wolfheart111 · · Score: 1

    Was the paper published b4 Git or are they dumbasses.

    --
    [($)]
  30. Right place at the right time by Anonymous Coward · · Score: 0

    That's the story summed up

  31. pair programming is like entropy by Anonymous Coward · · Score: 0

    There are many more incompatible pairings then compatible pairings.

  32. Re: JEWgle glorifies other JEWS? Ha by Anonymous Coward · · Score: 0

    Nah, they're just pointing out what ignorant, cowardly racist you are. It's almost comical how fucking stupid your remarks and propaganda posts are.

    I live around a bunch of people like you here in rural MO. It's not uncommon to find shoddy racist graffiti around here, complete with misspelled slurs and improperly drawn swastikas...

    Just out of curiosity, did you inherit your racist outlook or are you one of those "Born Again Racists" who bought into it while doing time and were too big of a pussy to stand up for yourself, so instead you got a pair S's tattooed to blend in with The Nation?

  33. Spaces vs Tabs by Anonymous Coward · · Score: 0

    is going to bring down your Walhalla.
    Pair programming only works if the combined knowledge of engineers might just be able to handle the problem that needs to be solved.

  34. Re: Elites writing about elites by Anonymous Coward · · Score: 0

    Dear DNS-and-bind

    Your comment has arrived on my screen here in a nation in the southern hemisphere. Looking at your nation from afar, we do see that you have a healthcare system that is quite large and comprehensive. Please use it as it seems you are not well.

  35. Re:Elites writing about elites by LostMyAccount · · Score: 2

    Jeff Dean was a friend in high school and my roommate in college for a year. He's hardly a west coast elite, even now -- I had breakfast with him a year ago and he walked like 3 miles (his choice) to the restaurant.

    He's also hands-down the smartest person I have ever met. He ported a multi-player D&D game written for a Control Data Cyber mainframe -- using an incomplete printout of the Pascal source code -- to a Sage IV p-system and the VAX 11/780 when he was in high school.

  36. Re:Wasn't there a movie about this in the ninetees by Anonymous Coward · · Score: 0

    I thought you were going with brokeback mountain

  37. Re: The fact that they are Jews made them big. by Anonymous Coward · · Score: 0

    That would explain why they're more successful than you.

  38. Re:JEWgle self-glorifies its jews? Ha by Anonymous Coward · · Score: 0

    Dude, you left out Charles Kushner and Milo Yiannopoulos.

  39. confirmation bias by Anonymous Coward · · Score: 0

    This worked for me so therefore it must work for everyone else.

    The worst part is that because these people have been successful they get the platform to say these things, yet it shows their lack of situational intelligence when they put out sound bites like they have without seeing the logical fallacy of their statements. They might be amazing coders and work well as a team but they clearly have an incredibly narrow view of the world, one where anyone can code like they can and their code would never be used for evil.

    It would be like Usain Bolt saying "I dont know why more people dont run the 100m in under 10 seconds, all you have to do is find the right pair of shoes"