[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)