Slashdot is powered by your submissions, so send in your scoop

 



Forgot your password?
typodupeerror
×
Businesses

Netflix CEO on Paying Sky-High Salaries: 'The Best Are Easily 10 Times Better Than Average' (cnbc.com) 199

Netflix CEO Reed Hastings, writing at CNBC: In the first few years of Netflix, we were growing fast and needed to hire more software engineers. With my new understanding that high talent density would be the engine of our success, we focused on finding the top performers in the market. In Silicon Valley, many of them worked for Google, Apple, and Facebook -- and they were being paid a lot. We didn't have the cash to lure them away in any numbers. But, as an engineer, I was familiar with a concept that has been understood in software since 1968, referred to as the "rock-star principle." The rock-star principle is rooted in a famous study that took place in a basement in Santa Monica, California. At 6:30 a.m., nine trainee programmers were led into a room with dozens of computers. Each was handed a manila envelope, explaining a series of coding and debugging tasks they would need to complete to their best ability in the next 120 minutes. The researchers expected that the best programmer would outperform his average counterpart by a factor of two or three. But it turned out that the most skilled programmer far outperformed the worst. He was 20 times faster at coding, 25 times faster at debugging, and 10 times faster at program execution than the programmer with the lowest marks.

This study has caused ripples across the software industry since it was published, as managers grapple with how some programmers can be worth so much more than their perfectly adequate colleagues. With a fixed amount of money for salaries and a project I needed to complete, I had a choice: Hire 10 to 25 average engineers, or hire one "rock-star" and pay significantly more than what I'd pay the others, if necessary. Over the years, I've come to see that the best programmer doesn't add 10 times the value. He or she adds more like a 100 times. Bill Gates, whom I worked with while on the Microsoft board, purportedly went further. He is often quoted as saying, "A great lathe operator commands several times the wages of an average lathe operator, but a great writer of software code is worth 10,000 times the price of an average software writer." In the software industry, this is a known principle (although still much debated). I started thinking about where this model applied outside the software industry. The reason the rock-star engineer is so much more valuable than his counterparts isn't unique to programming. The great software engineer is incredibly creative and can see conceptual patterns that others can't.

This discussion has been archived. No new comments can be posted.

Netflix CEO on Paying Sky-High Salaries: 'The Best Are Easily 10 Times Better Than Average'

Comments Filter:
  • 10x principle (Score:5, Insightful)

    by ILongForDarkness ( 1134931 ) on Monday September 28, 2020 @02:59PM (#60551288)

    I'd say in my experience more like 3-4x. Study is flawed they took 10 trainees and compared them. You really need to compare imo developers that are worth having. Lots of people can hang a shingle and call themselves a developer but in my experience at least 25% shouldn't be. It's not just they are slow, given infinite time they won't growk it. They can do the simplest tasks and will a lot of hand holding can help out. But the ability to actually develop something of any size by themselves is completely beyond them. They aren't developers they are typists that happen to write code for a living ;)

    • by AmiMoJo ( 196126 )

      It sounds like they had two outliers, and then tested for very specific skills.

      The take away is that you should practice the daft tests that Amazon etc concoct because acing them will land you a mega salary. Do that for a while and leave before you are fired, give your career a nice boost.

      • Re:10x principle (Score:4, Interesting)

        by gweihir ( 88907 ) on Monday September 28, 2020 @09:18PM (#60552362)

        Actually, Brooks ("The Mythical Man Month") found the same. Or rather what he found (if I remember correctly) was that the measurable productivity of software engineers described as "good at their job" varied by a factor of 10.

        That variation does not include average or bad people, just ones that are good at what they do. With bad and average coders, you get the effects of cleanup after them as well, often years and sometimes decades later. Many of them have actual negative productivity once you measure realistically. But management has no understanding of that ("Cheap now! Worry about problems next quarter!" Then do the same stupid thing next quarter....) and "evidence based management" is still a discipline in its infancy.

        • by AmiMoJo ( 196126 )

          Key phrase "measurable productivity", i.e. helping your colleagues out counts for nothing and in fact makes you look unproductive. In fact you will benefit from actively sabotaging them to make yourself look better by comparison.

          Metrics are usually a terrible idea because they encourage people to concentrate on changing the numbers rather than doing an actually good job.

    • There are primarily three different kinds of development and each kind has its own rock stars.

      The application developer is the one you speak of.
      The library developer is another, and is an entirely different animal.
      The bodge developer is the 3rd kind.

      I dont think that these sets intersect all that much at the high proficiency end of things. The rock star library developers are building temples and spend the most amount of time per line of code. There are domain experts within this world, such as Abrash
      • Re:10x principle (Score:5, Interesting)

        by hjf ( 703092 ) on Monday September 28, 2020 @04:06PM (#60551558) Homepage

        I'm currently looking for a job as the same thing I've always done: "app development". In all the job postings I applied for, everything was going well until I had the interview with the "architect" or some other sort of "chief". He then proceeds to slap you with an extremely algorithmical question such as: "given this matrix of letters, how would you write an algorithm that would be the most efficient in finding the second largest palyndromic word". And you have to answer right there, cold. He wants you to say the answer he has in his mind.

        I just don't get it. In 20 years of programming business apps I've never, ever had the need to find one single palyndromic word. I have OTHER "problem solving" skills, like, for example, having supported applications that I developed and are in production in real life. IMO, being able to solve a random algorithm, just proves you're just a kid fresh out of college and have Knuth's books still fresh in your head. Nothing more.

        • Re:10x principle (Score:5, Interesting)

          by Synonymous Cowered ( 6159202 ) on Monday September 28, 2020 @04:30PM (#60551658)

          Yep, most of us have been through this. I had an interview many years ago at Nvidia and got asked to write an algorithm to reverse the order of words in a sentence ("jack ran fast" becomes "fast ran jack") without using an additional memory buffer. I couldn't seem to come up with an answer on the spot (seemed very messy). He asked if I could reverse the order of each word. Piece of cake. I just couldn't figure out reversing the words in a sentence. Driving back to the hotel after the day of interviews was over and it suddenly dawned on me....reverse each word ("kcaj nar tsaf") then reverse the entire string. It's just a sudden aha moment required. I wanted to email him right away to say "I've got the answer" but I cynically felt like he'd think I just searched or asked someone else, so why bother.

          A few decades of programming later, and I've never had to reverse the words in a sentence. I have had many a "aha" programming moment, but usually my boss isn't standing over my shoulder to be impressed by how quickly I came up with it on the spot.

          • The nice thing about these trick questions is that they are often reused and lists of them are available online.

            So just memorize the solutions so you know the tricks.

            You should also memorize answers to common questions like "What is your biggest weakness?", "Why are manhole covers round?", "How many ping-pong balls fit in a 747?", etc.

            These are stupid questions, but if companies are going to ask them, you can game the system to your advantage with a bit of preparation.

            • by aralin ( 107264 ) on Tuesday September 29, 2020 @12:39AM (#60552750)

              The answer to: "Why are manhole covers round?" is "Seriously! Don't show me your manhole! Keep it covered."
              The answer to: "How many ping-pong balls fit in a 747?" is "They only let me bring one carry on and one personal item, so all I know it is more than that many."
              The answer to: "What is your biggest weakness?" is always "You." (You would know if you were married.)

              Stupid questions always deserve stupid, but funny answers.

          • The concept of multiple reversals to move things around shows up in other contexts. (The first place I encountered it was in the text editor described in "Software Tools in Pascal", and if I remember correctly, it was credited to Ken Thompson.) So the idea is more general and valuable than the interview question might suggest.

        • by raymorris ( 2726007 ) on Monday September 28, 2020 @06:03PM (#60551878) Journal

          Those questions sure can be annoying. There is a solution or two, and some things to understand about what's going on in the other person's head when they ask.

          I had an interview not long ago in which the first in-person interview was conducted by a couple of people who were either comp sci majors and/or totally untrained in interviewing, so it was NOTHING BUT those kinds of questions. That sure was annoying! Even though I should have remembered some tricks I know from being one of the interviewers.

          During that, the CISO poked his head in to say hi - literally kept his feet in the hall and poked his head in and waved. I immediately engaged him in conversation, conversation about cost-benefit analysis of software projects, why sometimes you should NOT do it the best way, etc. It caught his attention that I was talking about the things he has to worry about, things his comp sci programmers never think about. The company called once a month for the next 4-6 months to double-check that I was still happy with the job I took instead, and didn't want to come work for them.

          That experience reminded me of something I've used before. I try to come to an interview with my own opening line of conversation prepared. Facebook groups, industry groups, or events where the hiring manager spoke tell me something about the hiring manager. They tell me something about what the person is interested in and dealing with. So often *I* will start the interview by saying something like this "it's sure nice to meet you. Your talk at Defcon got me thinking and ...". Then we have an nice conversation that he enjoys for 45 minutes, talking about stuff we're interested in. I ask what kinds of problems the team is dealing with right now. He may or may not get around to asking any of his prepared interview questions, but he finds out that a) he likes me and b) I know some stuff, even something about the issues the team is dealing with right now. So that's an effective way to totally avoid those questions and instead talk about job-related things you came prepared to talk about. Because you got the conversation started off before they went into their pre-written questions.

          Suppose you DO still get some of those. I have a strategy for that too, and some good news.
          > And you have to answer right there, cold. He wants you to say the answer he has in his mind.

          I've worked with at least a dozen people who ask those types of questions and none "want you to say the answer they have in their mind". In fact, the first things a candidate gets points for are a) listening carefully to the requirements and b) asking questions where the requirements are unclear.

          We can't ask a candidate about interfacing our Foo transitive Doohickey with the PHJ system, because they won't know what the heck we're talking about. Of course you aren't familiar with our real systems. So we have to use a synthetic programming problem in order to see if you think like a decent programmer, and if you have any idea how to use any programming language.

          So just imagine that you have a couple of systems you need to integrate and you have to do some string operations to adjust the data format. It's not about palindromes, it's about can you think about how to do some string operations. The one wrong answer is "I have no idea". A better answer is to simply restate the question while taking careful notes. That's points, just jotting down exactly what the input is and exactly what the output should be.

          Then if you do some short pseudocode like:
          Read input
          Check-palindrome
          Check-length
          Write-Output

          That's better even if you can't figure out how to implement check-palindrome. I'm interested, we're interested, in how you approach the problem.

          Some candidates give great answers to a completely unrelated question.

          Some candidates give great answers to a completely unrelated question AND refuse to listen when we try to tell them twice "that's great, but it's solving the wrong proble

          • When I interview, my go to starting point is to ask the interviewee to describe some significant thing they've worked on.

            It gets them to talk about something they know about. It tends to reveal a lot. It sometimes provides a good place to turn it around and talk about what we're doing and see what they think of it.

            If someone has been a proper contributor, it means they know stuff, they can code, they can think. If someone was just a paperweight, that shows through too. I don't care if it's a personal github

            • by hjf ( 703092 )

              One of the interviewers asked me about my experience. I tried to condense 20 years of experience in several areas, having touched everything from Windows Forms to the hottes Node.JS + Framework du jour.

              I got an email next day that they were looking for a person "more experienced in giving straight and to the point answers".

              You just can't please everyone.

          • by hjf ( 703092 )

            Oh I forgot. The questions I've gotten are all super aggressive, as if they have dozens of applicants and they really believe they will hit gold.

            The job posting is remote. I live abroad. The salary is $40K a year (and I have to pay all taxes).

            They apparently believe they're going to get a PhD or Master's from a third world country and pay them peanuts. No buddy. I'm no PhD or Master. That's why I accept $40K. There are no PhDs here: they are all living abroad where you have to pay them what they're worth.

        • by sjames ( 1099 )

          This! Most such questions are highly contrived, contain givens that will never be given in the real world and are remarkably free of corner cases and so nothing like the problems you will actually need to solve. Not to mention that in the real world, if it's a solved problem, you'd just look it up. It's the novel problems that are interesting, not how well you've memorized the official answers to the solved problems.

          If you really want to find out about a prospective hire, you need a discussion not a trivia

      • What do you call the developers that solve incredibly difficult problems like finding a polynomial approximation to an exponential algorithm that drops the runtime of your systems from hours to fractions of a second with an error level below your measurement level? How about one that takes a process from 2-12 months to 2 days and suddenly making something possible to do that just could not be reasonably done before?

        I have built things that are used to solve real problems and some of those things take years

        • >I have built things that are used to solve real problems and some of those things take years to develop and we didn't even know if the problem could be solved ahead of time.

          I have worked on things where we didn't know if they were possible, to find out that they are not possible, yet other companies were selling solutions which we had established must all be snake oil. Security things. Things that matter.

          Then what you say in public becomes an issue of how much you want to land in court.

    • Study is flawed they took 10 trainees and compared them.

      I don't think that's really a flaw for much of what they were doing though - especially the debugging aspect. After a long time it sure seems like being good at debugging is not a skill that is learned at all easily, even after a long period of time.

      As the summary indicated, some people just inherently grok a symbolic level of understanding as to how programs work, that other people never have and as a result are just lots slower at all sorts of thing

      • by Shotgun ( 30919 )

        It was flawed, because half of those trainees would have moved on to "program manager" or "product owner" very soon after getting a real job. To remove this flaw, they could have brought in a group that had been developing professionally for five years.

        The 10-20x figure might work for new college grads, but not for someone that you'd be interviewing as an experienced hire. I'd give at most a 2X factor, on average, if production is measured by changes that a customer would see.

    • Re:10x principle (Score:4, Insightful)

      by swilver ( 617741 ) on Monday September 28, 2020 @04:50PM (#60551714)

      Perhaps the difference in how fast something is delivered is 3-4x. Then factor in the overall quality (scales better, has less bugs and is easier to maintain and extend) and in the long run it will pay back far more than 10x.

      There are plenty of examples. Just look at all those projects that were setup wrong at the start because it was done by a bunch of newbies or it was outsourced, and then think of how much more time is wasted on testing, maintenance and bug fixing because of those stupid decisions.

      • by aberglas ( 991072 ) on Monday September 28, 2020 @08:04PM (#60552168)

        on how much code they can write in a day.

        I pride myself on how little code I can write in a day.

        Indeed, on the best days, I end up with less code that I started with.

        What is odd is not that someone would do some stupid study with trainee programmers, but that Netflix CEO Reed Hastings would admit to believing it.

        It is true that a few good developers trump a large team of idiots. But because of the way that they go about things. Not what they can achieve in 120 minutes.

    • Re:10x principle (Score:4, Informative)

      by quantaman ( 517394 ) on Monday September 28, 2020 @05:37PM (#60551820)

      I'd say in my experience more like 3-4x. Study is flawed they took 10 trainees and compared them. You really need to compare imo developers that are worth having. Lots of people can hang a shingle and call themselves a developer but in my experience at least 25% shouldn't be. It's not just they are slow, given infinite time they won't growk it. They can do the simplest tasks and will a lot of hand holding can help out. But the ability to actually develop something of any size by themselves is completely beyond them. They aren't developers they are typists that happen to write code for a living ;)

      I mostly agree. The big differentiator with the "rock star" programmer is some tasks that are extremely difficult or impossible for other developers are relatively routine for them (not to mention bugs). So to that extent they can be 3x, 10x, or 100x more productive depending on the task at hand.

      At the same time a substantially weaker dev can be a net drain since it takes so much expert supervision to get work out of them and fix their mistakes afterwards.

      For most orgs the most efficient way to hire is a handful of "rock stars" for the really difficult and critical tasks and a bunch of good competent devs for everything else. The problem is a lot of those "good dev" hires turn out to be bad devs, and you either need to fire them or suffer the consequences.

      If you're big tech with oodles of money and an extremely profitable product then you may want to try for 100% rock star. You end up wasting a bunch of money on awesome devs where good devs would do, and most of your "rock stars" will turn out to just be good. But when you've got tons of cash it's better to have overpriced programmers than ones who break the code.

    • The difference between the sort of programmers who work in the industry and the sort of people who work in thousands of unrelated back offices all across the country is so vast and the sort of managers who jerk off to these studies are already looking at the top talent and whining when they can't find these mystical 100x devs and the killer is that even at these companies they're usually hiring people to do very run of the mill coding tasks.

  • Comment removed (Score:5, Interesting)

    by account_deleted ( 4530225 ) on Monday September 28, 2020 @03:08PM (#60551310)
    Comment removed based on user account deletion
    • by Kokuyo ( 549451 )

      Hey, so I'm not even a bad programmer! Who'd have thunk?

    • by psperl ( 1704658 ) on Monday September 28, 2020 @03:32PM (#60551408) Homepage
      I don't think error handling is the core differentiator of "10x" developers. I think it's more about the "conceptual patterns" that Reed points out. The best developers truly understand what they are trying to build, and so they design systems and interfaces that capture the core of the business and allow for growth in terms of both capacity and features over time. And they will do it effortlessly. Another engineer may build a system that meets the immediate requirements, but that system will likely struggle to grow as the group needs it, forcing hacks and tech debt in order to keep up with the changing business. I guess, I don't think the 10x value is in the code itself at all, but in the system and interface design. Most "10x" developers happen to develop/debug very quickly as well, but that's just a bonus of true understanding, and not the root cause.
    • by bartle ( 447377 ) on Monday September 28, 2020 @03:36PM (#60551434) Homepage

      This is a point that frequently gets ignored, in my opinion, when discussing "rock star" programmers. It may be the case that one coder can write code 10x faster than their peers, justifying a higher salary, but it's even more important to consider how much technical debt their code has. Buggy or inefficient code can waste countless hours of developer time for years to come and rewriting bad code that's already in production takes far, far more time than simply doing it right the first time.

      Some years ago, I was tasked with fixing some buggy and inefficient code, only to find that its approach was fundamentally a bad one and that it would have to rewritten. The new design was much simpler but it took weeks of data processing to unwind the consequences of the original design. The original coder was long gone from the company and will never know (or likely care) how much difficulty their design caused.

      • As far as I'm concerned, what you're describing is a 'senior programmer'. Someone that's careful and writes good code that's relatively readable. Sometimes they also build good frameworks and logging and so if there are ever any bugs, they're easy to find.

        A 'rock star' programmer will write you your game engine (or what have you) over the course of a week. Whether or not it's readable is not guaranteed. Very often, these so-called rock stars can be programming savants but the level to which they outstrip ordinary programmers means that failures are hard for everyone else to understand, hard to debug, and well-nigh impossible to fix without the original programmer's help. It's not because they're bad, it's because they're working at a different level than everyone else.

        But for this reason, I disagree that they bring 10000x or 100x or even 10x the value of an ordinary programmer unless they're a permanent fixture. Especially if they're not interested in teaching or being on a team where they understand their role. I've worked in those engines, and they're brilliantly crafted, but they're not extensible. They rely on very advanced tricks but they're a nightmare for 50 person teams to work with. People end up working around the cleverness, and then you end up with a fragile facade around an otherwise exceptional core.

        The truth is that they really are astounding programmers, but you really need to be careful in a team environment when one comes in. I suspect that they really become indispensible once they're a little older and have learned that they need to work with other people and make systems that everyone can play in, but I wouldn't know for sure—I've never seen one stick around that long.

        • by Shotgun ( 30919 )

          I've worked in those engines, and they're brilliantly crafted, but they're not extensible. They rely on very advanced tricks but they're a nightmare for 50 person teams to work with. People end up working around the cleverness, and then you end up with a fragile facade around an otherwise exceptional core.

          If an engine is not extensible, and can't be worked with, how do you consider it to be "brilliantly crafted". From your description, I'd call it an obfuscated POS. Seriously, I've worked with these types of guys, too. The perl programmers who thought writing an entire program in three lines using strange side-effects of special characters made them elite. It did nothing but make everyone else's life difficult.

          A rock star is the one that can write a method so clear that anyone can read and understand it

          • I agree that there's a problem with definitions here, more than in most things. I would say that these engines are brilliant because they work, and they work really well. Very often they're pretty robust, and they meet the spec as it was written. They are Ferraris—they're extremely well crafted and work amazingly well out of the box.

            But much like a Ferrari, you need to maintain it, and not with ordinary parts. As time goes on and the conditions change, the purpose-built Ferrari might be out of place. Maybe you let a mediocre mechanic get their hands on it for a while, and because they weren't up to the task, they end up bolting on a lot of extra crap to the outside, and now it doesn't work as well.

            The fact that the Ferrari was well made at the outset by putting together a lot of very finely machined parts with a great degree of technical skill only gets you so far. Something written by a programmer at this level is similar, and unless they're around and willing to bring up the level of the people around them, eventually you're left with a disaster.

            I'm the kind of programmer that would be happy with 10 Toyotas. They'll get you where you were going, you can count on them, you can bring them to basically any mechanic and it'll be fine. Plenty of aftermarket stuff if you want to do that.

            I think I've thoroughly worn out this metaphor, but hopefully you get the gist. Just because something is complicated and hard to work on doesn't necessarily mean that it isn't good. Being complicated doesn't guarantee that it IS good either. But if what you're looking for is productivity (as this article seems to be focusing on), there are a lot of ways to get there as a programmer.

            (Actually, it's worth noting that he seems to be talking about doing this across all disciplines, not just programming. Programming is just the one place where I have experience with people that have been referred to or looked upon as so-called rock stars, and they've been a nightmare to work with to date.)

            • by AmiMoJo ( 196126 )

              You can't offer them enough to stay. Once they get bored if they are in demand they will leave.

              Brian Kernighan said "debugging is twice as hard as writing the code in the first place." Good luck maintaining what they left behind.

          • If an engine is not extensible, and can't be worked with, how do you "consider it to be "brilliantly crafted"."

            "...By mere mortals".

            Soccer football: you are looking at a top level team playing. On the center of the field, the midfielder kicks the ball, apparently to where nobody is and nobody is aiming for. By the time the the ball lands again, there the center forward appears, takes it with no opposition and scores a goal.

            Now imagine that team in starting leagues, playing on a dirt field, not even a gras

        • by sjames ( 1099 )

          That's a problem of ranking and evaluation. The guy who hacks out the game engine in a week may get "rock star" cred with management, but the real rock star is the guy who thinks it over for 2 weeks before writing anything worth committing to the repo, then over the course of another few weeks produces a well designed, maintainable, and expandable system that actually works and serves well for years.

          The first guy is better called "The One Hit Wonder".

          • "That's a problem of ranking and evaluation. The guy who hacks out the game engine in a week may get "rock star" cred with management, but the real rock star is the guy who thinks it over for 2 weeks before writing anything worth committing to the repo, then over the course of another few weeks produces a well designed, maintainable, and expandable system that actually works and serves well for years."

            Yeah, well, but it is the company with the first programmer which ends up with a product first, takes the l

    • by nagora ( 177841 )

      Bad programmers slap together a bunch of functions or methods to perform whatever the ticket system says they need to perform. Once they acheive a correct result with perfect input, they send the build. And then I, along with my team spend the next 5 years and untold amounts of money opening bug reports, servicing alerts at 3am, and dealing with corrupt data and frustrated users.

      Well, which manager told them to get the product shipped six weeks earlier than it's possible to do properly?

      Software end-users have been treated as paying testers for decades.

      • "Well, which manager told them to get the product shipped six weeks earlier than it's possible to do properly?"

        Does it really matter that much? Those bad programmers are bad programmers because, among many other things, they don't know how to say "no" when "no" is due.

    • I've been in the industry for 35 years. And that's why I get one more dot in the title.

      I think some of you are missing the point. A rock-star programmer doesn't exist in a vacuum. A person with decent gifts to be a good programmer, with extensive experience in an application area, surrounded by a supportive environment and people, given the correct amount of power, is a super-star. Their perceived value is high, but I'd assign more credit to the person (s)he reports to - they created the environment making such realizations possible, and selected someone who didn't screw it up royally.

      I've met plenty of super-brilliant-rock-star-walk-on-water people who failed to rock any stars because they were caustic, devious, or narcissistic. If you want to launch a rocket, it takes a lot more than one engineer.

    • by AmiMoJo ( 196126 )

      Can't see how they measured that in a couple of hours.

      I'm any case most businesses don't care about quality. They have a requirement and once it's been met they want you working on the next thing. It's short sighted but it's common.

  • by JeffOwl ( 2858633 ) on Monday September 28, 2020 @03:15PM (#60551336)
    The study was not of a sufficient population to draw broad conclusions. More useful data would include a much larger sample, in a more recent study, and include data across different types of software. From personal experience, there are outliers who are rock stars and there are some out there who are actually a detriment to complex software development. In theory the rock star is infinitely more valuable than someone who provides zero or even negative value. So the ratio of first place to last place might not be the best figure. (Ideally, those who are not contributing, or who are slowing you down, would be moved into a position where they can contribute, or to another company or an entirely different line of work, but I think most of us know, that in a big company, that doesn't always happen.)
  • by prisoner-of-enigma ( 535770 ) on Monday September 28, 2020 @03:23PM (#60551366) Homepage

    While I generally agree with the "rock star" concept, there is one huge factor it leaves out: the ability to work well with others. Having been in IT for 30 years, I've seen the impact of many rock stars. Some of the best are ones that are not only talented coders and troubleshooters but also good at interacting with their peers, passing on their knowledge, helping others, and working on issues to assist other coders. These people are worth their weight in gold, being difficult to find and retain due to their value and uniqueness.

    At the other end of the social spectrum are the rock stars with outsized egos, who know they are exceptional and act like it every chance they get. They typically look down on everyone around them, demand special treatment, love to silo, constantly try to hog the limelight, and refuse to work with anyone they deign beneath their lofty level. These "rock stars" are actually a net detriment to any project involving anyone but themselves despite any and all other benefits they bring to the table. They are depressingly far more common than those described in my first paragraph. I'd rather have a team of moderately-skilled coders than one rock star like this.

    • The inherent assumption is that programming is a solitary endeavor, and for many this is true. But, in highly collaborative teams the tendency to neglect so-called soft skills eventually hurts badly. It leads to the widespread sexism that has been called out in various quarters of tech, as well as to the racial disparities that are likewise reflected in most tech teams. The study is valid if all you need are the best code monkeys money can buy. I've only worked on one team that was like that, and it was eth
    • Yes, and some are not quite "rock stars" of either type, and yet are still much more effective than their peers while also multiplying the effectivity of those peers by 2 or 3 times. The net gain for the group being greater than any single independent "rock star".

    • At the other end of the social spectrum are the rock stars with outsized egos, who know they are exceptional and act like it every chance they get.

      I hate to dismiss the possibility that this type of person actually exists. I'm sure they're out there somewhere.

      However, In my 21 years of professional experience I've never actually met this person. Don't get me wrong, I have certainly come across people with massive egos, but in every single case they were not NEARLY the rock-stars that they think they are. In every single case they are awful at the technical parts too. That's probably because their ego got in the way and blocked any hope of ever develop

    • by swillden ( 191260 ) <shawn-ds@willden.org> on Monday September 28, 2020 @06:24PM (#60551940) Journal

      At the other end of the social spectrum are the rock stars with outsized egos, who know they are exceptional and act like it every chance they get. They typically look down on everyone around them, demand special treatment, love to silo, constantly try to hog the limelight, and refuse to work with anyone they deign beneath their lofty level. These "rock stars" are actually a net detriment to any project involving anyone but themselves despite any and all other benefits they bring to the table. They are depressingly far more common than those described in my first paragraph. I'd rather have a team of moderately-skilled coders than one rock star like this.

      Smart companies explicitly filter out prima donnas and also explicitly rate performance not only on what people do but also on how they do it, so the talented jerks quickly find that their pay and promotion prospects are limited... or even find themselves quietly shuffled out the door.

      Software engineers who write great code, fast, may potentially reach 10X, but not higher because there's a limit to what one person can do. Engineers who write great code, fast and package it into well-documented libraries with powerful and elegant APIs can easily reach 100X, but as long as they're working alone they can't go much beyond that. Engineers who write great code, make it super easy for others to use and work effectively with everyone around them, making coders, business analysts, operations, etc., all happier and more productive can actually be worth 10,000X. Or more, because those stellar people accomplish things that vast hordes of average engineers would never achieve at all.

  • After reading this summary, I am feeling vaguely underpaid. Is that just hubris you think ? :-)

  • by Laxator2 ( 973549 ) on Monday September 28, 2020 @03:24PM (#60551372)

    Typically "The Best Ones" are nominated by the CEO and one trait they have is that they buy 100% into the company values/culture.
    The fact that they are the best is a self-fulfilling prophecy: They have to be paid 10x because they are the best. And the clear evidence that they are the best is that they are paid 10x.
    The ones that are doing the actual work are paid peanuts and they are promised better projects/pay/etc until they get fed up and leave. But by the time they leave they have done a chunk of very useful work for little pay.
    I remember this being done in Academia. A student was asked to work in a project where he had to classify pictures of galaxies by hand. It was menial, mindless work, and his advisor kept on promising him that he will get to work in a much more interesting project "very soon". At some point the student got fed up and left, and the advisor revealed that he never intended to give him any other project. When told that he just lost a very hard-working student, the advisor replied: "Yes, but in the meantime he classified 50K pictures, and this is what I really needed. He can go now."

  • I don't know if the multiplier is 10x, but it's definitely somewhere between 3x and 10x, in my experience. I ran a software company for 19 years and the difference in productivity between top and average developers was incredible.

    • by swilver ( 617741 )

      ...and that's just the measurable difference. If you take also into account the quality of the work, how it performs under load, how easy it is to extend and how much maintenance it would require in the future, it could easily exceed 10 times.

  • From what I heard about Netflix, if your job is no longer necessary. You can be fired the next day. Other companies who offer less, would normally move people around to different jobs as possible, because it is a much less retraining cost, if they already know the company and just need to do a different job.

    Just like 1099 Contracted Employees, they will get paid a lot more than a W2 employee, However you are not going to get an HR warning, because you had a bad day at work, and your displeasure to the bos

  • 9 programmers (Score:5, Insightful)

    by Altus ( 1034 ) on Monday September 28, 2020 @03:32PM (#60551410) Homepage

    Nothing like using a study with a sample size of 9 as the basis of an entire industry's hiring and compensation strategy

    • by AdaStarks ( 2634757 ) on Monday September 28, 2020 @04:09PM (#60551572)

      They say that the best samples are worth 10x more than your average sample

      • by mu22le ( 766735 )

        They say that the best samples are worth 10x more than your average sample

        They say that the best outperforms the worst by a factor 10. Which says nothing about the best programmers, it could just be that the worst ones were really really bad.

    • Nothing like using a study with a sample size of 9 as the basis of an entire industry's hiring and compensation strategy

      Whelp, there's goes my plans to study the Supreme Court. :-)

    • by Nite_Hawk ( 1304 )

      This. Not to mention that it's a one time study. If you took those same 10 people and had them perform another project on another day would you get the same result? Far too often managers think of people like widgets. If you just pay more you can slot a new one in and improve your performance and efficiency by 500%! People eb and flow. Sometimes they are inspired and take off like a rocket, other times their cat just died or they are sick or getting a divorce and they slow way down.

  • I work in consulting and have to deal with legacy code. I don't give a crap how "fast" the developer was, if the code is impossible to maintain. I also contribute to open source projects. Many OSS projects that are popular were written very quickly and had a lot of hype. But then the next few years were spent cleaning up garbage and basically were completely rewritten. Some people might consider the original authors 10x, but what people forget is the mountain of work fixing stuff. Once you filter out newbie
    • I don't give a crap how "fast" the developer was, if the code is impossible to maintain.

      ... then as a consultant, I have a solid chunk of tenure with that client.

    • by hjf ( 703092 )

      Fast coding is the most ridiculous metric really.
      Most of the time you spend debugging.

      I recently had an argument with some "rockstar" on IRC who believed himself being better because he wrote fast, didn't rely on autocomplete, and knew the details of every C function by heart so he no longer needed a reference handbook. He said "he didn't write buggy code in the first place".

      That's how ridiculous these types are.

      I said "I code slow, I rely on the IDE for autocompletion and order of function arguments, and

  • by rsilvergun ( 571051 ) on Monday September 28, 2020 @03:36PM (#60551440)
    for these kind of high pay jobs. It's not necessarily that they're "the best" rather they're worked like dogs. You do 3 times as much work for twice as much pay.

    You don't last of course. You burn out. But from Netflix's standpoint it's a win since they pay twice as much for 3 times the work. Meanwhile the employee is young and can push through it for a few years. It's fun, because they're ready for a challenge, get off on positive reinforcement (if you've ever read Fast Food Nation McDonald's does this) and get to live in fancy big cities.

    The employees usually don't save all that much money since they're usually facing a high cost of living though. At least not the ones I've known. You can't live out in the suburbs where food & housing's cheap when you're putting in 80 hr work weeks 50 weeks a year.
    • by Tugrik ( 158279 ) <tugrik@gmail.cGIRAFFEom minus herbivore> on Monday September 28, 2020 @04:00PM (#60551540)

      I worked there during the lead up to the infamous Qwikster debacle, designing and building a new datacenter and office space for Netflix to get ready for that split-that-wasn't. The pay was astoundingly good, but I worked harder than I've ever worked in my career, with barely time to breathe between work sessions. When the board decided that Qwikster wasn't a good idea after all, they shut it all down literally 8 hours before the new datacenter's go-live. A day later they laid most of us off, but even then the severance pay was legendary.

      Then, three months later, they tried to hire us all back again. NGL, I almost jumped back in. But then I realized that for the three months of not working there I had done nothing but try to piece my personal and social life back together after the time in the Netflix trenches, like someone returning from a foreign war. As much as I loved the compensation I really didn't want to go that deep into work again... so I stayed with the low-stress (only 60-80 hours of work a week instead of 80-100) job I took after the layoffs. The career has gone pretty solidly since.

      On the downside, that's when Netflix's stock had dipped down to its lowest point and then rapidly recovered to insane heights. If I'd given in and gone back, oh the money that could have been made... but that's the Silicon Valley Slot Machine for ya. You pull the handle and take your chances.

      Don't get me wrong: other than the insane hours, I loved working at Netflix. Top notch folks all around me, minimal-and-effective management, and the work itself was challenging and fun. Had there been a way to still balance some personal life with it, it would have been the perfect career-job IMHO. So if you're a younger person and are willing to commit yourself to the company for a while in exchange for exceptional pay and opportunity, by all means, go for it. Just keep an eye on your health and long-term goals, and punch back out when you gotta.

  • by RyoShin ( 610051 ) <tukaro.gmail@com> on Monday September 28, 2020 @03:41PM (#60551452) Homepage Journal

    Ignoring, for the moment, the eye-rolling "rock-star developer" legend: What is their contingency? At this point they likely have many such developers, so unless they're dumb enough to pack them all on a bus that gets driven into the Grand Canyon when the bus driver has a heart attack on a sight-seeing tour it's unlikely they'll all disappear at once. But when you start that way, especially in an "entrepreneur" environment, there's no time or budget for documentation, training, etc. and a lot of knowledge tends to stay inside that "rock stars" head; if they're gone the knowledge is, as well.

    Of course, if these are "true" rock stars they have all of their ducks in a row and miles of documentation so that any other "rock star", or even just above-average software engineer, could immediately pick up where the last star left off. But I doubt this CEO can actually quantify any "rock star"-ness, so I would not be surprised if a sudden brain drain leaves them in a lurch due to their reliance on "rock stars". In the long run I expect it would be better to hire five competent engineers that can take over for each other rather than one "rock star" at five times the price. Maybe you'll get less "Aha!" moments within the company, but I don't think it's worth-while trade-off.

    (This is forefront in my mind as I have experience with the potential issue: I am not "rock star" level by any means (perhaps above average at absolute best and with a pinch of salt), but I am the sole multi-stack developer at the small company I work for. If I go, so goes maintenance for the hundreds of small processes that keep the company upright. Many would likely continue without issue, but a few wouldn't and none of the other employees (mainly accountants) could even begin to work on them. It's something that causes me a lot of anxiety; I'm trying to improve documentation, train employees how to research data issues on their own, I've been hounding the owners for at least one other co-worker to not only ease my normal burden but also be able to take over if I fail to come in.)

    • Apply some vacation time to the issue. They might suddenly discover the value in redundancy for critical personnel.

      • by RyoShin ( 610051 )

        I would, but personal guilt won't let me walk away completely while I'm off. Plus, even if I could, there's nothing for me to do with my vacation time (not even a COVID thing, I just have severe depression so there's never anything I want to go to or do in my free time.)

    • While it is a nice idea to hire people who are much smarter than average, I have noticed that can be an excuse for sticking with poor habits well past the expiry date. The fate of most successful project that do something interesting is that they will maintained and improved by a team with a growing proportion of non-geniuses. Worse still, the proportion of people lacking 3+ years experience grokking the quirks of the system will tend to plummet as well. If transitioning responsibilities to fresh faces p

  • by mugurel ( 1424497 ) on Monday September 28, 2020 @03:52PM (#60551512)

    The researchers expected that the best programmer would outperform his average counterpart by a factor of two or three. But it turned out that the most skilled programmer far outperformed the worst. He was 20 times faster at coding, 25 times faster at debugging, and 10 times faster at program execution than the programmer with the lowest marks.

    The quote in the title is a glaring non-sequitur. They report a comparison between best and worst, not best and average. In a sample of 10 subjects, mind you. But hey, if you want to make a point, who needs the data?

    • Clearly they don't hire 10x analysts.

    • And once you have the data, all you need to do is count beans and apply a brillance metric [thedailywtf.com] to them. You'll start seeing pretty quickly what a "worst" programmer can look like.

    • by PPH ( 736903 )

      They report a comparison between best and worst, not best and average. In a sample of 10 subjects, mind you.

      To be fair to the researchers, this is Reed Hastings summarizing their findings. So 10x, 20x are probably getting twisted around by PHB-speak.

      As to the comparison of the best to the average or worst, it all depends on how low a performance level you will tolerate for your worst before you take them aside and tell them that programming might not be their thing and show them the door.

      Anecdote: I worked for an aviation company of some note years ago in an engineering/programming position. A nearby group had

  • by istartedi ( 132515 ) on Monday September 28, 2020 @04:08PM (#60551562) Journal

    I've heard that the old HP was known for respecting engineering talent as... engineering talent. Instead of tracking them in to management, they actually let them continue to do their jobs and paid them more.

    The "rock star" analogy is very useful for pointing out the insanity of doing anything else. Picture a scenario where a record executive said something like, "Elton, you're a fantastic showman and those first 3 albums were great. We'd like to put you change of a pressing crew".

  • Anti-Capitalists condemn "supply and demand" and suggest ignoring then infinite supply of willing CEOs and lock the doors to the Old Boy's Network and only select from an artificially tiny pool of people. Ford III is completely incompetent and wouldn't have been a manager in a McDonald's if he wasn't born into a CEO family. Same with all the (insert the many families where the children are idiots and the great grandparents were CEOs first).
  • While I agree some are much quicker at "raw" programming, usually people are a trade-off of skills and traits.

    IF given a clear specification, some programmers are indeed much quicker than others coding to that spec. But in reality specs usually leave a lot of grey areas, and often it takes domain knowledge, experience with users in general, and communication skills to fill in those gaps well.

    Those good at raw coding are rarely also good at the second "soft" part in my experience, and vice versa. The few th

  • There's a lot of truth to that, but not as much.

    It's fairly simple, in the end. When the task is to dig a hole for the swimming pool, you can have 20 people digging for a day with shovels, or one guy who remembers to bring the excavator.

    Software is much like that. You can spend a lot of time re-inventing the wheel, with all the problems and issues that others already spent years dealing with, or you can find a perfectly good wheel and know how to use it.

    It's a different approach. Mediocre coders try to solv

  • "ninety percent of everything is crap."

  • Was this an actual study, it sounds rather informal. Has it been replicated?

"Gravitation cannot be held responsible for people falling in love." -- Albert Einstein

Working...