8 ms·
10X Programmer and Other Software Engineering Myths
- vkjv 12y agoI think like a lot of myths, there is a kernel of truth in the 10x programmer myth. The fact is, some problems are hard. Some problems are beyond the grasp of some developers. Even given unlimited time an individual may not ever accomplish the goal. I can certainly think of problem sets where that is true of myself. In those specific circumstances, that person can be considered a "10x programmer" when compared with another.
- deleted 12y ago[deleted]
- pc86 12y agoTen times zero is still zero. It's a given that some people are more productive than others. They are faster typists, or they can architect a system of similar quality faster, or they can just write good code faster. But remember the idea of 10x came from studies of similarly experienced programmers. And supposedly, the order of magnitude comes from actual data, although I've never been able to see it. For most trivial problems, or for a given domain, I think it's easier to say one programmer is qualitatively better than another. But that may change if the domain or code base changes, and in my experience as the problems you're solving get more and more complex, it becomes impossible (or at best just boils down to who you think can crank out a POC faster, which is itself probably a specific domain of programming). I just have trouble accepting the argument that one person is literally, quantitatively, empirically ten times the programmer as someone else. Maybe that makes me one of the 1x's :)
- Lawtonfogle 12y ago> But remember the idea of 10x came from studies of similarly experienced programmers. And supposedly, the order of magnitude comes from actual data, although I've never been able to see it. How are we determining experience? If we are talking about years in the field, years with a given language, years using a given language in the same way? 'Experience' is fluid enough of a word that it would be crucial to have an agreed upon concrete definition before we could continue.
- cauterized 12y agoThe whole point of the article is that the original claim from the original data is suspect and quite likely extremely outdated even if it was a valid conclusion in the first place.
- pc86 12y agoThat's my point as well (which I probably didn't articulate well enough).
- Lawtonfogle 12y agoIt is more than a kernel of truth if you've worked in certain areas. I believe in x100 and x1000 programmers because I've seen individuals who have introduced negative productivity (and I don't mean juniors who take time to get brought up to speed).
- onion2k 12y agoThat might be true, but those problems are rare. The majority of developers will never encounter one, and if they do they'll use a library or middleware to solve the problem and they'll just move on, maybe without even realising they've faced a problem they could never have solved themselves.
- strommen 12y agoAgree 100%. Joel had a great essay on this back in the day called "Hitting the High Notes" [1] Perhaps a better way to look at this is to assume the average is 3X, and there exist developers at X, 10X, 0X, -X, and everywhere in between. And this productivity depends massively on circumstances like the size and makeup of the team, the established codebase, and the technical difficulty of the work. I've worked with several individuals that are absolutely a 10x for a technically-difficult project where they are leading the architecture, but range from -1X to 0X as a regular contributor to a large project. 1. http://www.joelonsoftware.com/articles/HighNotes.html http://www.joelonsoftware.com/articles/HighNotes.html
- emodendroket 12y agoWell, sure. I suppose the canonical example is Ron Jeffries flailing around for several blog posts trying to write a sudoku solver without coming anywhere near achieving it. I still don't think it's helpful to uncritically repeat the stuff about "10X developers," though.
- mberning 12y agoI love these videos, but the production values are terrible. Invest in a good camera and microphone setup.
- GarethX 12y agoSorry about that, we're trialing some new software which will help improve future videos. For now, hopefully, the transcript will fill any blanks.
- x1024 12y agoOr at the very least move your headphone-mounted microphone near your mouth.
- chrisreed212 12y agoAnd pick audio codec settings carefully - it sounded to me like excess audio compression artefacts. Gave up after 30 seconds as the audio was so bad.
- GarethX 12y agoHe doesn't actually use that as his mic, it's just for headphones - there's a much better one just below the shot.
- WatchDog 12y agoI dont really mind the video, but the audio makes it really difficult to stay engaged.
- adamzerner 12y agoHe doesn't say that the 10x programmer is a myth. Just that there isn't academic research that proves it to be true, which hardly means that it's wrong.
- Lawtonfogle 12y agoThe real question is if we should expect their to be evidence behind it. And considering the funding, the opprotunities for research, the difficulty of doing a study someone won't easily pick apart, and the community push to verify it at a peer reviewed level, I am not surprised we don't have peer reviewed research. For starters, I've yet to see a good way to measure productivity.
- crusso 12y agoRight. In order to "debunk the myth of the 10x programmer", I'd expect to see research that shows that the phenomenon isn't true - not just that research wasn't modern enough or wasn't completely relevant to modern methods of programming. In my experience, there are 10x programmers out there. I've known a couple in my 20 professional years who exceeded that. The fact that there isn't research proving it only tells me that I don't know distribution of that kind of talent, not that it completely doesn't exist. You could say similar things about the notion of "debunking" the exponential cost of defects.
- Dirlewanger 12y agoThis is very much one of those things that after a couple years in the industry you'll just intuitively have a grasp on. And when one has a large sample size of similar intuitions stemming from experience...well, it's hard to completely discredit such notions.
- GFK_of_xmaspast 12y agoNot a lot of academic research that proves bigfoot exists either.
- Lawtonfogle 12y ago
- pestaa 12y agoI believe not only in 10X programmers, but in 1000X programmers. I work with a senior lead developer who has decades of experience, but asks for help with the most trivial issues (like, how an overridden method would behave and how to call the parent class implementation.) I also firmly believe copy-pasting should be disabled on sites like Stack Overflow.
- pistoriusp 12y agoI don't think it's healthy to have an opinion on disabling copy/paste on Stack Overflow. It far too trivial. If these are the kind of problems that you're experiencing then I think you need to find a more challenging environment where you're the worst developer in the team.
- samjordan2 12y agoCopy/Paste functionality is in the browser not on the site.
- robmccoll 12y agoAre there similar myths in other professions? It seems like software as an industry is very prone to myths, poor introspection, and no-true-scotsman methodologies that purport to solve or harness the resulting "insights".
- samjordan2 12y agoHe make a good point about there being no studies proving "10x programmer". I don't think it is something you can prove with a study. You would first have to define the metric you are measuring. Lines of Code per minute? Time it takes to build a basic fizzbuzz, web app, compiler? Standardized test? Once you defined a measurement people could study for it. Someone who has memorized a gzip function is going to make a compressor 100x better than I am going to from scratch.
- arocks 12y agoI am glad that someone took the efforts to dig around and dispel these myths. But then even more important is the question - why we don't have enough evidence based scientific studies in the world of software? My guess is that it is because no two software projects are alike. Differences stemming from differing technology stacks, to domains or people skills, it is practically impossible to generalize anything across them. Unless we all standardize on a one true way of software engineering, such folklores will continue to exists and there will be a dearth in repeatable conclusions. PS: However, I do agree with Laurent that we can work towards aggregating numbers from several real software projects than rely on unsubstantiated folklore.
- Lawtonfogle 12y ago>I am glad that someone took the efforts to dig around and dispel these myths. I'll admit that I only focused on the x10 programmer one, but nothing in the transcript dispelled the notion for me.
- tomgp 12y ago>why we don't have enough evidence based scientific studies in the world of software If you're interested in this stuff you could do worse than checking out Andy Oram and Greg Wilsons 'Making Software: What Really Works, and Why We Believe It' a series of literature reviews on various topics including the 10x programmer thing, different development methodologies and practices. It's not perfect but it's a good start and helped me to think critically about my own practice.
- jasode 12y ago>these papers did not actually bring any original evidence in support of the notion that some programmers are 10X better than others, [...] What I’ve been saying is that the data is not actually there, so we do not have any strong proof of the actual claim. I can agree with the specific observation that there is no consensus on concrete quantifiable data to prove "10x" with mathematical rigor. Ok, let's set aside "10x" because many previous discussions about it have shown it to be a distasteful description to some. For those who do not believe in the "10x programmer", how do you feel about programmers such as John Carmack (Doom, Oculus)[1], Fabrice Bellard (ffmpeg, pi algorithm)[2], Linus Torvalds (Linux, Git), TJ Holowaychuk (node.js projects)? If they are a league above other average programmers, what's an acceptable description that you'd use? To me, the "10x programmer" was always a snappy rhetorical label and I was fine with it that way. I never sought a mathematical proof of the statement. [1]http://en.wikipedia.org/wiki/John_Carmack http://en.wikipedia.org/wiki/John_Carmack [2]http://en.wikipedia.org/wiki/Fabrice_Bellard http://en.wikipedia.org/wiki/Fabrice_Bellard
- BasDirks 12y agoThe ones you mentioned are 100x programmers, both in prowess and impact. People need to stop obsessing over the term. It's awesome that great programmers exist. Stop being so insecure.
- bonif 12y agoAgreed. And the same happens in every field, sports are a good example, you see the 100x people on TV.
- RogerL 12y agoI agree. It is a handy catch phrase that describes a real phenomenon. I tend to think in terms of variance. Programmer A is 3 standard deviations 'better' than programmer B (again, no mathematical rigor implied!!!). Think of it in this way. Most of us are smart people, and learned relativity in high school or college. Those that didn't, could have. It ain't that hard. But how many could have discovered relativity at that time in history? None of us, I suspect. Put it how you want, Einstein is a 10x, he is 6std outside the mean, or whatever. Same sort of things in software in my experience. If you have something really hard to do at work, you know who to give it to, right? You give it to (say) Jessica, who will come back in 3 days not only with it complete, but with all the ambiguities in the spec fixed, with 4 enhancements that you never thought of, documentation, and a framework that lets others in the company extend the functionality into other company products. Or, you could give it to Jacob, who will need to be prodded for status updates week after week, and he'll eventually 'deliver' 10x the number of lines of code (hence just as productive by SLOC estimates!) for a substandard solution that is unreadable and fails on all the edge cases. I call that 10x, without worrying about the math or quantitative part. To anyone that disagrees, why all the hand wringing about hiring? Just hire anyone that crosses your door, they will be fine, right?
- fixxer 12y agoI think we should replace "10X" with "1X" and all the existing "1X" should be re-labeled "1/10X". Nothing motivates the drones like negative reinforcement. Also, I'm hiring. ;)
- kephra 12y agoLets say a great senior coder is twice as good as an average junior coder. The factor ten comes into play, when teams grow up, skills get diluted, and communication overhead kills the project. Lets say the great senior was able to code 20 hours per week, and used the remaining time for email, a weekly blog, walk the dog and other recreations. He now has to lead a team of a few average coders, and as hiring hyped a lot of sub average people (1/4 of his own productivity), who are only working 8 hours effectively because the rest is wasted by powerpointless kickoff meetings, and recreational office coffee talk. imho, the factor 10 comes not from the coder, but from the system. There are some companies where its 10 times more fun to work, likely those attract those who are 10 times more productive. The software crisis for big projects is also a system crisis. Those projects start by big companies betting on a budget, without knowing whats really in the sack, and without knowing whom to choose to solve the problem from their pool of employees. Once one of them gets the projects, the middle management starts to fight each other. Trying to hire good coders from other projects, or trying to get bad people into the new budget. The resulting internal fluctuation will cause a mess on any project.
- larsberg 12y agoOne of my favorite pieces of research in this space is DeMarco & Lister's "Programmer Performance and the Effects of the Workplace." Basically (go read it! it's short!), they show that the difference between private offices and tiny cube/open floor plans is strongly correlated with being in the top 25% vs. the bottom 25% of developers, which is a difference of around 2.6x. Not 10x, but also non-trivial for those of us who don't have Facebook-like dollars to throw at filling desks in an ever-larger open floor plans.
- fsk 12y agoMaybe the better programmers have more leverage to negotiate better work conditions, so it isn't a causal effect.
- larsberg 12y agoYes, this is mentioned in the paper, right next to where they talk about the correlation. The most telling part, though, is where they take some of the lower-25% from cubicle farm/open office spaces and put them in private office spaces. Guess what happens?
- deleted 12y ago[deleted]
- fsk 12y agoI see, they give evidence for both factors. 1. Better programmers are more likely to have negotiating leverage. 2. Taking a poor programmer and moving him to a quieter space improves his productivity. I'd still like to see a proper modern scientific study comparing office environments. It's very hard to do correctly, because there are too many variables. Also, there really are 10x programmers. At my current job, the new programmer took a couple of weeks to do something that I thought would take a couple of days. (and I was already familiar with the codebase, so my estimate of how long it would take me to do it was probably accurate) That's only 5x, but he's be deficient in other ways, such as not noticing severe bugs until other people pointed them out.
- VikingCoder 12y agoI worked at a start-up dot-com. A programmer on my team was given a task, and a research paper with an algorithm that she could implement. We waited. It became critical to the company, and I decided to look at the paper to see how bad it was. In a matter of hours, I had a working solution. I told my boss, and we agreed to use my code in secret, while my co-worker finished her task. It took her a month of uninterrupted work... to give up. OF COURSE there are 10x differences between programmers. I feel like I'm relatively at the top of my game, and I know people who code circles around me. One of them has eidetic memory, and is also a genius to boot. He reads a manual to learn a new programming language. He's literally fluent in a programming language, and uses the correct idioms, in a matter of hours. Meanwhile, I'm copy-paste-modifying, doing everything like I would have in C++, for days or weeks. An 18-year-old won Google Code Jam on his first try. I rest my frickin case. Does there exist a programmer who is 10x as productive as another programmer, at a given task, given they both have the same amount of experience? OF COURSE ones like that EXIST. If you want to talk about how common they are, how wide the spread really is, and underlying reasons, then yes, that warrants research. But you don't need STATISTICS to prove something EXISTS. Anecdotal evidence is perfectly valid to prove something EXISTS.
- deleted 12y ago[deleted]
- msandford 12y agoI think it's hilarious that Fog Creek is devoting effort to debunking a large part of the core of Fog Creek; namely that there is such a thing as a 5x or 10x programmer. http://www.joelonsoftware.com/articles/HighNotes.html http://www.joelonsoftware.com/articles/HighNotes.html His theory is that salaries are distributed fairly normally so the top of the heap might only demand 2x the salary of an average, and only 4x the salary of the bottom. But they might be 10x as skilled or productive. That means that they're actually cheaper. 10x work divided by 4x cost = 2.5x productivity.
- shawn-furyan 12y agoSome points toward why this is not hilarious or even unexpected: * They aren't really devoting effort, not beyond setting up a skype recording and transcribing the result. The effort comes entirely from the author, Laurent Bossavit, they are interviewing. * The claim is against the existence of rigorous evidence that supports the idea that 10x programmers are around in sufficient quantity to be a practical consideration for people involved in the creation of software. Bossavit explicitly states that he's not saying that 10x programmers don't exist at all. He's not even saying that they aren't reasonably common. Just that there's not rigorous evidence that demonstrates the phenomenon, even though he's found many citations that misleadingly imply the existence of such evidence. * Joel's claims in the article are anecdotal, and don't appear to be meant as a rigorous proof, but as a feeling extrapolated from his personal experience. So there's really not a lot of disagreement between what Joel's claims and Bossavit's. * Even if there had been a direct disagreement, why should that preclude a Fog Creek blog from exploring ideas that are incompatible with one of the multitudes of ideas that their very opinionated founder has published? Fog Creek is very concerned with attracting developers as far to the right of the bell curve as they can manage. Forbidding the exploration of thoughts independent of those the founder has expressed is extremely counterproductive to that goal, since highly competent people tend to have their own ideas about how to do things. * Finally, even if we were to treat Fog Creek and Joel Spoelsky as the same entity, we should expect such thought leaders to entertain and grapple with thoughts that seem to be contradictory to their past opinions, especially when they come with a more thorough examination of the available evidence. Being a 'flip flopper' is only a disadvantage in politics. In reality humans have to make determinations under uncertainty, and therefore do not always get things right. It's a sign of intellectual maturity to be able to revise one's previously held/stated beliefs.
- ilitirit 12y agoThis is really one of the stupidest ideas that have arisen in this industry in recent memory. I wonder if other industries consider hard-working, intelligent and talented people to be 10x-ers. 10x chef 10x receptionist 10x writer 10x mechanic SMH...
- andrewtbham 12y agoI don't think people realize how rare 10x programmers are. If you read the book iWoz, you will realize Steve Wozniak was definitely 10x more productive than other programmers. He was doing stuff it would have taken other people years to figure out. I think it's really on the bleeding edge where the 10x productivity shows. In 1997 I think I could have done a web site 10x faster than most people, because I had been obsessed with it. At this point that's no longer true. Right now there are people that can do machine learning stuff 10x faster than other people because they are obsessed. Because they are experts and deeper into the 10,000 hours it takes to become an expert. The phenomena is more like that book outliers.
- thisjepisje 12y agothe 10,000 hours it takes to become an expert Speaking of myths... ;)
- zzzcpan 12y ago> So this is the notion that there is a 10 fold > difference between productivity and quality > of work between different programmers with > the same amount of experience. > Is this fact or fiction? One thing everyone forgets: there's never the same amount of experience. Different people have different experience and therefore perform differently on things, where difference in experience matters. So, obviously there could be even a 100 fold difference.
- rewqfdsa 12y agoBullshit. If there are no 10x programmers in your group, it's because your group is tiny, you can't hire 10x programmers, or because you're stifling your 10x programmers with bureaucracy.
- praptak 12y agoConvincing evidence for claims regarding software engineering should be based on: 1. A large number of programmers. Statistical significance, also real development is done in teams. 2. A long time - conclusions valid for short snippets do not necessarily translate to large projects where people in a team have to cooperate. 3. Controlled environment - passively getting statistics from existing companies won't cut it. So you need to pay a programmer's salary to a large number of people for a longish time which is expensive. Perhaps this could be worked around by having deals with existing companies to let you control some factors in their existing processes. Maybe not perfect but still better than anecdata.
- stillsut 12y agoMaybe there's a certain problem a developer was born to solve. Like the hummingbirds whose beak only fits one type of flower. On this problem, the developer could be 10x, on others he sits with his peers.
- dreamweapon 12y agoInterestingly, one of the key origin vectors[1] for the 10X meme appears to have been a 2005 blog post by Mr. FogCreek himself: http://www.joelonsoftware.com/articles/HighNotes.html http://www.joelonsoftware.com/articles/HighNotes.html [1] In the sense of https://en.wikipedia.org/wiki/Vector_(epidemiology) https://en.wikipedia.org/wiki/Vector_(epidemiology)