[HN Gopher] The Myth of the Myth of the 10x Programmer
       ___________________________________________________________________
        
       The Myth of the Myth of the 10x Programmer
        
       Author : payne92
       Score  : 78 points
       Date   : 2020-02-17 18:37 UTC (4 hours ago)
        
 (HTM) web link (payne.org)
 (TXT) w3m dump (payne.org)
        
       | t0astbread wrote:
       | It doesn't matter whether 10x programmers exist. Programming is
       | not a sport and as such, competition will only lead to narrow
       | thinking, useless optimization and hatred. What we should really
       | strive for is making programming a more creative activity where
       | people learn from and inspire each other, not a competition.
       | 
       | Oh and also, "finding the 10x engineer" feels like a hotspot to
       | inject hidden bias into recruiting.
        
         | closeparen wrote:
         | Communication overhead is expensive. All else being equal, it's
         | much better to build a small elite team that can operate
         | successfully with less structure and process, rather than a
         | large average one.
        
           | t0astbread wrote:
           | Right. But you can't build a functioning team that works
           | together and can rely on each other by fostering a culture of
           | competition and hiring only the "predestined" 10x engineers.
           | 
           | If the team culture is to help each other, forgive mistakes
           | and learn from each other without measuring who's the best
           | the team will automatically build itself without the need to
           | hire only "10x engineers".
           | 
           | Or so I suppose. I'm not an HR person or anyone else with
           | expertise in this field so you should take what I say with a
           | grain of salt. I've just been thinking about this a lot as of
           | late.
        
         | Bnshsysjab wrote:
         | True, but if you culled the bottom 30-50% of programmers, how
         | much productivity have you lost?
        
           | t0astbread wrote:
           | Probably a lot because now a lot of programmers up to maybe
           | the top 10% or 20% are worried they're not good enough which
           | will lead to a lot of stress and in turn, less productivity.
           | 
           | Aside from that, if all of programming is competitive it will
           | keep a lot potentially very capable people from entering the
           | field because not everyone (regardless of ability) is made
           | for competition.
        
       | gandalfgeek wrote:
       | If you look at the original paper (going back to 1968) where the
       | data for a 10x difference was first found, there are a ton of...
       | issues.
       | 
       | I've covered this in detail here:
       | https://www.youtube.com/watch?v=Gho89X72Xas
        
       | chx wrote:
       | I'd argue today a team could be 10x. Yes it requires someone who
       | knows the concepts and can effectively communicate them but also
       | awesome project managers, designers and QA personnel. A great
       | team (I am lucky to be part of one) functions like a well oiled
       | machine churning out acceptably quality features and fixes the
       | problems at a surprising rate.
        
       | e1g wrote:
       | I think we instinctively recognize the outsized levels of certain
       | pros: a 10x leader that is a different creature from a typical
       | manager, or a captivating writer that is 10x better than the
       | average novelist, or a 10x actor vs a standard-issue LA newcomer,
       | or a 10x teacher who inspires far beyond what curriculum
       | mandates. Can we accept 10x lawyers, coaches, artists, or
       | musicians based on their impact? We do, and we seek and celebrate
       | them. Why fashion designers but not app designers, why essay
       | writers but not program writers?
        
       | loopz wrote:
       | What have the company done in the past 15 years to build a
       | progressive learning culture?
        
       | nybblesio wrote:
       | The OP's example is perfect: he didn't go to the leaf-nodes and
       | write _each test by hand_. Instead, it was clear that writing a
       | tool to do the job would be better. Software is all about
       | leverage. This is what defines a 10x programmer.
       | 
       | However, I'm constantly amazed how many programmers fail to see
       | the forest for the trees.
       | 
       | To a large extent, not seeing (or seeing and ignoring) this type
       | of solution is learned behavior. Many environments are hostile to
       | this world view. Writing tools (especially those that generate
       | code...eek!) is seen as "over-engineering" and "unnecessary
       | complexity". If you're in a factory, on a line, your job isn't to
       | climb away from your leaf-node.
       | 
       | Any programmer has the potential to be 10x, they just have to see
       | and act upon it. Few do.
        
         | skybrian wrote:
         | It seems like you're almost debating yourself here, making
         | arguments for opposite sides. If anyone could do it and
         | environmental effects make all the difference, why emphasize
         | individual initiative?
         | 
         | But maybe the best thing to do would be to find a better
         | environment, if you can?
        
       | oarabbus_ wrote:
       | There are 10x salespeople, and 10x basketball players, and 10x
       | scientists; why should there not be 10x programmers?
        
       | petilon wrote:
       | 10x programmers do exist. But here's the thing: its not worth
       | being a 10x programmer. Managers don't necessarily want them.
       | 
       | First of all, if you complete a project 10x faster than the
       | expected time, managers will assume that they had overestimated
       | the project, as opposed to recognizing that you're a 10x
       | programmer. I have seen this time after time after time.
       | 
       | Secondly, if a manager does recognize that you're a 10x
       | programmer then you will be seen as a risk: what happens if you
       | leave the company? If the product was built by a team then that's
       | a legit business. If the product was built by just 1 person then
       | that's not a legit business as the business can suddenly collapse
       | if that 1 person leaves.
       | 
       | Third, you make your co-workers look bad by raising the
       | expectations bar. You will not win any popularity contests. You
       | may make your manager look bad too, if your performance
       | diminishes the value of the manager.
       | 
       | If you're indeed a highly capable programmer here's my advice:
       | don't be a 10x programmer by doing 10x the quantity of work or
       | completing projects in 1/10th the time. Instead be a 1.1x
       | programmer, then expend your remaining energy helping your
       | teammates grow, and broadening your influence. (So scale yourself
       | horizontally instead of vertically.) This advice is often not
       | easy to heed if you're introverted, and if you're extroverted you
       | are already a manager instead of a programmer.
        
         | EduardoBautista wrote:
         | I recommend going into consulting/contracting. A lot of money
         | to be earned if you are really productive.
        
       | gilbetron wrote:
       | The concept of the 10x programmer seems to have been drifted from
       | its original meaning. It isn't that there's a coder that is 10x
       | better than a _good_ coder. It is that a lot of people are really
       | bad at their jobs, and a coder that thinks and learns about
       | problems can be far better than those people. It comes from
       | terrible  "corporate drone" software developers in the 80s and
       | 90s - the ones that would takes weeks to developer simple
       | routines. Bring in someone that loves software dev, and they
       | appear magical.
       | 
       | Today, with Google and Stack Overflow, that gap has diminished,
       | but there is definitely people still way better than "average"
       | developers. However, if you have someone that keeps their skills
       | sharp and their problem solving desire sharper, you won't fine
       | anyone 10x - maybe 2 or 3x, at best.
        
         | starpilot wrote:
         | Yeah, I can understand the "10x programmer" back when fizzbuzz
         | was still being asked of CS graduates. Not anymore.
        
           | WrtCdEvrydy wrote:
           | To be honest, I didn't know that one... I just did basic
           | double division the first time I saw it (into a float and
           | compared it against an int casted back to a float). Someone
           | in the interview room asked my if I remembered modulo and I
           | was like 'oh yea, it gives you the remainder'
        
             | khrbrt wrote:
             | That's honestly more impressive for creativity sake!
             | 
             | FizzBuzz is just an example of the general problem of
             | "given a set of things, do something to a subset of those
             | things" which comes up often in real world settings. If you
             | knew enough to set up a loop and apply some conditional
             | inside of it, then you passed better than some of the
             | programmers I've worked with.
        
             | karatestomp wrote:
             | That operator's one I've used more on puzzles than in real
             | life, where I've used it few enough times in 15ish years
             | that I could count them on one hand. I think it only sticks
             | in my mind because, for whatever reason, it was taught
             | early and with some emphasis in a Perl book I read when I
             | was starting out. If not for that I could well fail to come
             | up with a reasonably "correct" solution to FizzBuzz.
        
         | shepardrtc wrote:
         | > It comes from terrible "corporate drone" software developers
         | in the 80s and 90s - the ones that would takes weeks to
         | developer simple routines
         | 
         | They still very much exist. My previous job was at a bank and
         | these people filled it.
        
           | WJW wrote:
           | Can confirm. Last week a PM was gushing to me it "only" took
           | a week to implement a feature that was not much more than an
           | extra if statement. This is not in a regulated industry
           | either, just run of the mill web stuff.
        
         | headmelted wrote:
         | Agreed.
         | 
         | I've never encountered someone that I think is genuinely a 10x
         | programmer. I've worked with a few people that thought I was
         | one, which I'm most certainly not, and I've explained that to
         | them.
         | 
         | I've encountered a lot of what I would call .2x programmers
         | though. As you've said, there are a lot of people that are
         | really bad at the job. It's not a slight either - there are a
         | lot of people doing this job that really don't care for it at
         | all.
         | 
         | It's hard to be good at a job you don't enjoy. Especially if
         | life forces you to do it 40+ hours per week.
        
           | tekkk wrote:
           | I myself have noticed that some people just have natural
           | cognitive abilities that far surpass any regular person's
           | abilities, and I guess that's generally a prerequisite for
           | making any new ground-breaking discoveries or libraries. But
           | still, one person can only know/do as much as one person can,
           | and while having very great skills in some narrow domain,
           | other people (or here programmers) might be better versed in
           | other skills than this "10x" person. Thus the 10x depends
           | very much on the task.
           | 
           | What I have come to appreciate more over the years is the
           | ability to communicate and make understandable code that
           | other people can build upon. I think it's our greatest
           | strength to lean on the collective ability of the group
           | instead of depending on some person's individual skill.
           | 
           | And in the end the "10x" is merely a subjective measure, that
           | very much depends upon the people you are comparing to. With
           | a team of 10x programmers wouldn't everyone be then only 1x?
        
           | eteos wrote:
           | If youve encountered a lot of 0.2x, then the 2x developer is
           | the 10x developer you are looking for!
        
           | saagarjha wrote:
           | > I've never encountered someone that I think is genuinely a
           | 10x programmer.
           | 
           | I have. (Interestingly, some of these people knew this and
           | had a surprising lack of modesty about it as well...) Usually
           | I think it boils down to being able to have the experience to
           | consistently guess right on things, come up with new ideas,
           | and not get tangled in the weeds: most of them are smart, but
           | not so smart that you're just lost when talking to them.
        
             | m0zg wrote:
             | >> not so smart that you're just lost when talking to them
             | 
             | That, BTW, is a sure sign that someone is trying to appear
             | smarter than they really are. Having worked at 2 research
             | labs over the course of my career I know more than my fair
             | share of genius-level people. Without fail, they are humble
             | about it, and can explain complex concepts in a way the
             | rest of us can understand. This is something that just
             | blows my mind pretty consistently actually, and IMO it is a
             | sign of true, deep understanding of a complex subject. The
             | person didn't just memorize formulas (although many of them
             | excel at that as well), they understand why things are the
             | way they are, the real meaning behind it all.
             | 
             | It could be that this is selection bias though, and I only
             | got to know geniuses who aren't also assholes.
        
         | api wrote:
         | > It comes from terrible "corporate drone" software developers
         | in the 80s and 90s
         | 
         | These definitely still exist.
        
         | logicallee wrote:
         | It's pretty obvious that there are coders who can do the work
         | of - _all of the work_ of, and better than - a team of 50
         | talented programmers.
         | 
         | For example when Linus wrote git he singlehandedly
         | outprogrammed every team of version control vendors. He was a
         | 50x programmer. (If not more.)
         | 
         | This is a real literal example without exaggeration.
        
           | ellius wrote:
           | It really isn't that surprising either. People want to write
           | off the notion that some people are massively better than
           | others at solving problems, but it's completely obvious
           | that's the case. Of course there are insane outliers like
           | Claude Shannon or John von Neumann, but those were real
           | people that existed, and it stands to reason there are people
           | at smaller multipliers who are still much better than
           | average.
        
           | JackFr wrote:
           | I think a good portion of the story there was thorough
           | knowledge of prior art, the ability to identify what was
           | essential and what was incidental and the fact that he built
           | on a singular vision.
        
       | CognitiveLens wrote:
       | It's worth pointing out that the research found a 10x _spread_
       | between the least-productive and most-productive engineers - a
       | '10xer' isn't someone who does ten times more than the average,
       | so it becomes less mythical if you think about someone who does,
       | e.g. 2x more than average in an organization with a few burned
       | out engineers doing 20% of the average.
        
         | odyssey7 wrote:
         | Ah, so the secret to having a bunch of 5x engineers is to not
         | burn them out.
        
       | liamcardenas wrote:
       | Why wouldn't there be such thing as a 10x programmer? Is the
       | average programmer so good? There are outliers in every industry.
       | Professional athletes are a clear example -- they are often many
       | orders of magnitude better than the average player of their
       | respective sport.
       | 
       | There are probably also a few 100x engineers, maybe someone like
       | Elon.
        
         | paublyrne wrote:
         | The equivalent comparison would be professional athletes at the
         | top of their sport to other professional athletes in that sport
         | working or playing in a lower league. Would the the top
         | performers be 10x the other ones? Hard to quantify this, but
         | I'd say no, more like 2x or at most 3x
        
       | WalterBright wrote:
       | I personally know many programmers who are easily 10x average
       | programmers. No question about it.
       | 
       | They crank out code that is easy to read, easy to understand,
       | works right out of the box, and gives years of trouble-free
       | operation.
       | 
       | Sean Parent is one of those programmers. It's pretty obvious when
       | he describes how he replaced a nightmarish tangle of code that
       | re-invented a simple rotate algorithm.
       | 
       | It's a remarkable talk:
       | 
       | https://www.youtube.com/watch?v=W2tWOdzgXHA
        
       | 1e-9 wrote:
       | Harder problem => Increased productivity variance
       | 
       | For extremely hard problems, it's not difficult to measure
       | greater than 20X differences between highly-talented senior
       | developers and the average productivity of those capable of
       | meeting requirements.
        
       | BXLE_1-1-BitIs1 wrote:
       | I remember one programmer that I characterised with "He writes a
       | lot of code". I ended up with one of his not small routines that
       | I replaced with a one page assembler routine in MVS NIP rather
       | than OPEN.
       | 
       | When reworking printing software to support multi color, I
       | researched a commonly used subroutine though several layers of
       | calls and replaced it with, yes, a single character constant.
       | 
       | I lost count of the many legacy applications where I tossed out
       | great gobs of code produced by "productive" programmers.
        
         | RealityVoid wrote:
         | I do not think 10x means "churns out code" but rather "produces
         | results". And by this metric, by golly, there are a couple 10x
         | out there for sure.
        
       | paulus_magnus2 wrote:
       | Can we stop the self hate already? There definitely are 10x
       | musicians, 10x painters, sportsmen and 10x programmers. You know
       | what never exists in 10x form? Burocrats and middle managers who
       | write articles like this one.
       | 
       | I suggest to flag this as fake news and all future articles
       | intended to devalue young talented programmers who yet are to
       | discover their true market value.
        
         | kylec wrote:
         | I'll bet 10x managers do exist, but they quickly become VPs or
         | CEOs
        
           | lordofgibbons wrote:
           | By that reasoning, for all practical purposes, they don't
           | really exist. They were already rare to begin with but then
           | they also move up the ranks quickly.
           | 
           | One could argue VPs and CEOs technically have people
           | reporting to them, but managing people isn't really their
           | job. They are mostly concerned with strategy.
        
         | emmelaich wrote:
         | Please read the article again. Or even just the title!
        
         | michaelbuckbee wrote:
         | Not trying to be a jerk, but I think you might need to re-read
         | the article as the author is clearly a developer themselves and
         | thinks that there are definitely 10x developers (just that they
         | can't be found with a simple coding test).
        
           | Bnshsysjab wrote:
           | I would like to think I'm one of them, I'd flail about in
           | attempt to solve some random programmer test, but I'm also
           | the guy that sits back and says 'hey how about we rethink
           | this i n s a n e architecture?'
        
         | teddyh wrote:
         | I think you missed the double negative in the title.
        
       | bloody-crow wrote:
       | I think team sports is a good analogy here. There's no people who
       | are 10x stronger, or who can run 10x faster than their teammates,
       | but there's certainly people who'd score 10x points in certain
       | circumstances than anybody else, and that is what 10x programmer
       | is about.
        
       | Eridrus wrote:
       | One thing I have observed recently is the existence of "10X
       | projects".
       | 
       | This might be a symptom of working at a big company, but I have
       | been really impressed by the ability of some projects to achieve
       | their ends while others get stuck in quagmires due to the fault
       | of nobody on the project per se, but rather the definition of the
       | project itself.
        
       | remmargorp64 wrote:
       | 10X programmers DO exist. They aren't just a myth, and they
       | aren't just about knowing when to buy vs build, or when to use a
       | particular framework or toolkit, or how to "mentor" other
       | developers.
       | 
       | Chris Sawyer wrote 99% of the code for RollerCoaster Tycoon in
       | x86 assembly language, with the remaining one percent written in
       | C.
       | 
       | RollerCoaster Tycoon was a beautiful game which still stands the
       | test of time to this day. The fact that a single person was able
       | to build a blockbuster-level game almost entirely by themselves
       | _in assembly_ is a truly impressive feat which very few
       | programmers would even dream of undertaking.
       | 
       | Being a "real" 10X programmer is like being a savant. It's about
       | being FUCKING SMART, and it's about being able to deliver a
       | working, polished product in the same time that a normal team of
       | ten people would be able to deliver it (or in a tenth of the time
       | that a single person might).
        
         | Nition wrote:
         | Not to diminish the achievement, but worth noting I think that
         | RollerCoaster Tycoon was based on his earlier Transport Tycoon
         | engine, so at least he did get to split the work up between two
         | projects.
         | 
         | I have a personal theory the that the average 10x programmer is
         | say 2.5x smarter than average, but also 4x more focused on
         | work, netting a 2.5x4=10x total when you remove all the
         | procrastination and general fumbling around of the average
         | developer.
        
           | JackFr wrote:
           | > worth noting I think that RollerCoaster Tycoon was based on
           | his earlier Transport Tycoon engine,
           | 
           | The 10x productivity comes in large part from the code they
           | DON'T write.
        
           | thombat wrote:
           | That 4x more focused means "it ain't me, coz right now I'm
           | commenting on HN" ...
        
             | Nition wrote:
             | Exactly!
        
           | karatestomp wrote:
           | Environment and control (true ownership) can easily turn 1x
           | into 10x, I'd say. Not saying I could churn out Rollercoaster
           | Tycoon but I bet I'd look, by every metric both reasonable
           | and unreasonable, a hell of a lot more productive working on
           | a game solo with 100% control of all decisions and not having
           | to fret about having something to report in standup every day
           | versus... normal work.
        
           | steveeq1 wrote:
           | Or he's using better tools and languages. (ie, smalltalk vs
           | javascript)
        
         | emmelaich wrote:
         | I'd say there are 1000x programmers. Easy. [0]
         | 
         | If we change the question to are there 10x programmers within a
         | team in some "average" company with CVs indicating roughly
         | comparable experience, then ...
         | 
         | The answer is still yes, there are 10x programmers. I've
         | witnessed it myself many times. Not so much because the highs
         | are very high, but the lows are very low.
         | 
         | [0] Fabrice Bellard. John Carmack. Linus Torvalds.
        
         | bluetwo wrote:
         | I agree they exist. The article does too, at the end:
         | 
         | ...highly productive developers (10x or otherwise) are problem-
         | solving at a much higher level. Their productivity won't be
         | apparent from a narrow test, any more than the overall skill of
         | a world-class football player would be apparent from (say) how
         | fast they could run the 100m dash.
         | 
         | The most productive developers are solving big problems, and
         | are bringing judgment and experience to bear on essential
         | design, architecture, and "build vs use existing library"
         | decisions. They're designing key abstractions that will pay
         | dividends through the life of the project...
        
           | mark-r wrote:
           | I think you're missing the point of the comment you're
           | replying to. Yes there are developers who are more productive
           | by working at a meta-level above normal, but there are _also_
           | people who are just 10x more efficient at actual coding.
           | Those are distinct concepts that may or may not overlap.
        
       | [deleted]
        
       | jimbokun wrote:
       | Here is your 10x programmer:
       | 
       | https://norvig.com/sudoku.html
       | 
       | "In this essay I tackle the problem of solving every Sudoku
       | puzzle. It turns out to be quite easy (about one page of code for
       | the main idea and two pages for embellishments) using two ideas:
       | constraint propagation and search."
       | 
       | If you gave this task to an "average" developer, how long would
       | it take for them to implement? How many lines of code would it
       | be? Would the implementation be correct? How long would their
       | code take to execute?                   % python sudo.py
       | All tests pass.         Solved 50 of 50 easy puzzles (avg 0.01
       | secs (86 Hz), max 0.03 secs).         Solved 95 of 95 hard
       | puzzles (avg 0.04 secs (24 Hz), max 0.18 secs).         Solved 11
       | of 11 hardest puzzles (avg 0.01 secs (71 Hz), max 0.02 secs).
       | Solved 99 of 99 random puzzles (avg 0.01 secs (85 Hz), max 0.02
       | secs).
       | 
       | Does the average developer know what "constraint propagation" and
       | "search" mean in the above sense, or remember enough about them
       | from their CS class to recognize them as the right tools and how
       | to implement them?
       | 
       | Also, can the average developer implement a spell checker from
       | scratch on a single transcontinental flight?
       | 
       | https://norvig.com/spell-correct.html
       | 
       | So Norvig is always the paradigmatic example of the 10x
       | developer, for me. Having a broad range of CS techniques at your
       | disposal and knowing how and when to deploy them, is almost a
       | super power.
        
         | mjw1007 wrote:
         | I'm sure Norvig is very good, but I think the sudoku webpage is
         | presenting a finished program in an idealised way, not
         | recording the process he used to write it, false starts and
         | all.
         | 
         | (It seems likely to me that there were some false starts,
         | because eliminate() returns either `values` or False, when both
         | of its callers would be just as happy if it returned True or
         | False.)
        
           | [deleted]
        
         | zzzeek wrote:
         | Norvig's work in those questions are more like the 100x
         | developer category.
        
       | amznthrowaway5 wrote:
       | > highly productive developers (10x or otherwise) are problem-
       | solving at a much higher level
       | 
       | This is a very important point, but calling these highly
       | productive developers "10x" doesn't really make sense. They are
       | more like "infinity times" compared to the average when it comes
       | to getting a difficult task done, since the average developer
       | would just get stuck and never be able to invent good designs and
       | solve the difficult problems. Even worse, some programmers are in
       | the negative on many tasks, adding additional complexity and
       | overhead while making little to no positive contributions,
       | especially when you give them a problem beyond their
       | capabilities.
        
         | wpasc wrote:
         | Joel Spolsky's "Hitting the high notes" always comes to mind
         | for me when this debate arises.
        
           | teddyh wrote:
           | Link: https://www.joelonsoftware.com/2005/07/25/hitting-the-
           | high-n...
        
         | SKILNER wrote:
         | Yes, it's this simple. The important point is that some things
         | are just beyond the ability of average programmers, let alone,
         | bad programmers.
         | 
         | There are some things that only top programmers are able to
         | actually finish before the end of the universe.
        
       | ccheever wrote:
       | I think the way to think about this is that there are some people
       | who figure out ways to do things or invent things that just
       | wouldn't be figured out or discovered by other people.
       | 
       | So, it's not 10x or anything-X even, it's just that, if the stuff
       | that can be uniquely provided by "10x" people is important to
       | you, then you need someone like that. 10 1x developers aren't
       | likely to give you that (except to the extent that you have 10
       | chances to discover that one of them is actually a 10xer on some
       | dimension).
        
       ___________________________________________________________________
       (page generated 2020-02-17 23:00 UTC)