Looming demise of the 10x developer – an era of enthusiast programmers is ending
blog.testdouble.com
blog.testdouble.com
I think it’s more like “I’m working on a bunch of stuff I already know, I have all the designs and business logic clearly identified, and my colleagues and I are all on the same page about how to work together so I’m really productive” vs “this codebase I just adopted is completely unreadable, the designs change every 3 days and the other teams I’m interacting with are adversarial”.
People aren’t 10x engineers, situations are.
It's not that they were worse engineers or less intelligent or anything like that, it's just that they would opt for the unnecessarily complex decision at every step of the way, and seemingly in other aspects of their life as well. The kind of folks where you find yourself saying "Why don't you just ..." constantly.
I imagine a 10x engineer as someone who can consistently identify the fastest, cleanest and least complex way to get from A to B, reliably, in different situations professionally and personally. That includes making quick decisions and tradeoffs. These people do exist, they get stuff done, and some folks don't want to acknowledge it because they don't want to be seen as the 1x in comparison.
Yes but... in today's software culture, the fastest cleanest and least complex solution is very rarely appreciated or even tolerated.
If you can solve all the requirements with a couple $5/mo VMs, you'll still be run over by the buzzword-compliant solution that requires 30 instances in a kubernetes cluster.
Funny how this sentiment is as old as "kids these days".
There are reasons why complex solutions are needed. These reasons are so much valid, that certain areas legally mandate the complexity. While majority of those reasons are safety related, one of the aspects behind safety is reliability and maintainability.
Usually (!), there is a balance. What is the least amount of training you have to supply the person doing maintenance that they could grasp all the assumptions, constraints and links with other components to successfully work on a component? The more complex the system, the less complex an individual component, in a way it interacts with the rest of the system.
For example electrical power supply units. Some fields require PSUs to have galvanic isolation, which makes them much more complex than $2 aliexpress part. However, galvanic isolation means that there are e.g. no weird, parasitic interactions over grounding - it just provides power like a battery would. Swapping a battery with a medical grade PSU would not introduce hidden interactions with the rest of the world.
Likewise, in a software system, a single component becomes (or at least can become. Complexity does not necessarily yield that, but complexity is required to provide this) more isolated, easier to work on alone without introducing breaking changes in different subsystems.
Do you need complexity? Not necessarily. Maybe the project is small and relatively short lived. Maybe you are thrown into a decade old project with requirements and teams having been changed several times in that timeframe. Component isolation backed by complexity would probably be highly appreciated.
That's often the rewards of lobbying by entrenched interest taking advantage of a captured congress.
Officially triggered. Cuz lord knows that's how all my meetings go.
Why use a simple VM setup and some Ansible to keep it up, when we can put 4 more layers of abstraction in there and pay AWS / Azure / GCP extra money?
Who is gonna get that money? Depends on which provider "wined-and-dined" (cough cough) recently.
Your 10x engineer in one situation will grind to a halt if they work with a few of these 0.1x engineers, if they have to interface with each other.
The person that increases the compile times of the project to near infinity to save a runtime instruction with the C++ type system has an effect on the whole system.
10x IME is only possible if you have very fast feedback loops, that means fast unit tests, fast incremental compilation times. You can only be fast if you can iterate fast. And if you're working with enough people that slow down your feedback you'll get slower.
I've seen it happen plenty of times. The situation aspect still holds.
I think it's a combination of both. There are potential 10xers, but the environment needs to be right for them to flourish.
But this does not invalidate the previous point about the environment. If the environment is loose and with low accountability, those unnecessarily complex decisions receive a big pass; if the environment has strict principles about simplicity and made that as an incentive, those practices faces much hard time to spread in that particular environment.
I think this is a case of “Show me the incentives and I will show you the outcome.”
It’s a bell curve and eventually you’ll meet someone on the farther ends of both sides.
Chances are there’s always someone much better or much worse than you.
I very, very strongly doubt that. That's just not how human performance works. There is a lot of variation for sure, but not by arbitrarily high amounts.
Instead, there is a maximum humanly achievable performance, and the performance of individuals varies between zero and that value.
As a trivial example, the world champion in weightlifting doesn't lift 10x as much as the average person – and they certainly don't lift 10x as much as other professional weightlifters. In most fields, the world's top performers are a few percentage points better than the average professional.
I consider any software engineer who performs just twice as well as the average engineer to be part of the elite. And I consider claims of "10x" performance to be complete and utter bullshit concocted by people who have no idea what they are talking about.
I know plenty of software developers who can solve bugs or design systems that the average developer would never be able to do. Those people are infinitely better at those tasks than the average.
10x performance is easy as long as you do not constrain it to something inane. Impact and the ability to solve problems that others can not are functional and practical examples of that.
And he isn't even 10X faster!
I am not physically active at all, and the world record for weightlifters in my weight class is around 3 times what I am able to lift with zero training.
Of course it does. The “10x developer” claim is that some people have 150+ kg equivalent brains when it comes to programming. In the right environment they’re lifting 10x more code. Just like with weightlifting, it might not be healthy or useful to compare your productivity to theirs because it hurts and it doesn’t really matter anyway. But just like with weightlifting, the comparison can still be made.
Most of us work with other people in our “intellectual weight class” - so you might not meet many developers that much smarter than you. But they’re out there. The Jeff Deans of this world aren’t spending their time closing jira tickets for simple web apps.
Software development on a team is more than bashing code; a 10× developer is probably most often a 3× coder who helps makes seven 1× teammates into 2× coders.
It's going to be abused and stretched and misread and taken overly literally until it breaks.
Even a 0.1x engineer can do that, though it may take a little longer.
10x just refers to those top performers for sake of discussion. The point is not the semantics.
When you get the top, differences are more perception and other factors over skill/knowledge/intelligence. See: The Olympics, do you often see an Olympic competitor 10x a competitor?
Yes, the Olympics mostly consists of 10X athletes. It’s pretty much a competition made for them.
The world record for 100 meters sprint is 9.58 seconds. High school athletes routinely break 11 seconds. There are one-legged people, 90-year-olds, and other highly handicapped individuals who have come within a factor of 2 of the world record set by elite professional athletes. 10x my ass.
The truth is that the gap between average and peak human performance is actually rather modest, and this is reflected by hard numbers wherever they are available. There is no need to invoke 10x ubermensch nonsense.
To show how ridiculous that idea is, that would make "average" 100 meters sprint times more than 1.5 minutes, and "average" long jump distances less than 1 meter.
Where absolute performance is concerned (that is, performance measured against an external, objective standard), no elite athlete in any sport is anywhere close to 10x'ing their hobbyist peers. Even beating them by a factor of 2 is unthinkable in most sports.
Some people (almost no one) can stand up a new app from scratch and some people (almost everyone) can't.
No idea why there is such pushback against this. It really is true.
Not everyone is a superstar.
I think something similar applies for most development tasks... some people just do everything better, and it's often not even a trade-off - they produce cleaner code that is also faster and do it in less time...
> I stumble on a problem like this one and I stay up late every night until I find the solution. I wake up early each morning with new ideas of things to try. I don’t take enough breaks, but when I do, they’re tactically-designed to exploit my brain’s asynchronous processor to generate solutions for whatever I’m currently stuck on. I irresponsibly defer responsibilities from other areas of my life. Eventually, I realize I’m only at the 20% mark and that a pattern is repeating where a month or more of my life is about to disappear from the calendar. Towards the end, I find myself rushing to find the maze’s exit because my desire to unlock the puzzle’s final secret starts to be overtaken by the shame of all the other balls I’m dropping. It’s excruciating as I approach that inflection point—as intense as an overbearing manager’s “do or die” deadlines ever were, except in this case the pressure I feel is entirely self-imposed.
> I ruminate endlessly under stress, so I wrest back some control by manufacturing stress responses over things I’m building to trick my brain into ruminating on work that’s useful to me.
> I’m a terrible listener and struggle with auditory processing,
> Parsing others’ sentences often feels like I’m filling in the blanks to make sense of them,
> I’m a really bad learner—disinterested, distractible, and disagreeable. I’ve never enjoyed learning and generally avoid it, especially learning for its own sake. At the slightest discomfort when struggling to understand something, I’ll grasp for any distraction that might offer me a momentary escape.
I don't see any mention of ADHD in the post, so I think I should say: if the author happens to read this, please consider speaking to your doctor and seeking an assessment.
Treatment can be massively beneficial to your quality of life.
On the other hand proper night rest decreases severity of the symptoms.
So yes, I agree that getting proper sleep is beneficial, consider that one might not be able to get it without managing ADHD first.
https://www.sleepfoundation.org/mental-health/adhd-and-sleep
The internet is making everyone productivity addicts, can't just live anymore and be different.
If the author does not bring ADHD in the conversation, I think it's rude to find him a condition on the back of his post, which is far more interesting than isolating a paragraph and pulling a diagnosis on him.
It's a great blog post.
On this part in particular while it can be great to deeply follow your passion with extreme focus; pursuing things regardless of their importance in your overall life and at the cost of other interests, relationships, or responsibilities can be an empty and unfulfilling existence in the end. Furthermore life can be markedly better with the correct interventions and treatment.
People seemingly get offended by even a suggestion because many people have extreme stigma against conditions like ADHD as well as a lot of misinformation from people have very little understanding of the actual traits, diagnostic criteria, treatment and prevalence of it.
adult adhd symptoms are vastly different than childhood adhd and many people suspecting they might have adhd, might actually have it.
I had even stereotypical symptoms as a child but just wasn't tested.
Mention you've been struggling with these symptoms for years and there has been a lot of discussion online about, you're not sure if you have a real case or something else, but you'd like to do some evaluations.
They'll usually tell you if they'll do that, or not, and could often refer you to someone who would.
Speaking as an almost-40 whose ADHD was untreated until recently: Contrary to your suggestion, being almost 40 did not make the process of navigating the medical labyrinth (Canada) to get assessed/treated any easier. Almost like I had an attention disorder or something.
if it was easy, id have sought help decades ago. love how people think "oh man its such an easy solution" when it is, in fact, a lot of work. My fiance had periods that lasted months, and not a single doctor would even consider looking at root causes "have you considered that maybe its all in your head?" getting the right treatment is in no way easy, especially when its a mental disorder that you can "cope with".
The first time I went to the psychiatrist to ask to be tested for this was three years ago. They told me I can't have it, because if I did I wouldn't be able to maintain a job, and being able to do good at work, especially as a dev, should be impossible. They said I'm depressive and put me on SSRIs that fucked me up for 6 months.
I was depressive, been like this ever since I was able to reason for myself and figured out that neither me nor others know what the f* this whole thing I'm waking up is, but my depression is my always-there companion, that keeps me humble and thoughtful of life. What the SSRIs did to me was very different, and much, much worse.
Adult testing is a thing, and I'm not mad at all for not getting a diagnosis earlier, I'm just grateful that it happened at all.
Likewise, it seems that the author isn't suffering from his condition, so I don't think medication is necessary.
Most with ADHD are born with it. They don’t know any other world, like many colorblind don’t know they can’t see some colors. They feel just as normal as everybody, because what would they, there is no way to compare, so why diagnose and treat it anyway?
ADHD isn’t only a “now” problem. By small cuts it pushes into aggressive behaviors, megalomanias, depressions and even suicides (2x more incidence). Having ADHD means higher chance to abuse drugs, cheat on partners or die in a car crash due to reckless driving.
Managing ADHD isn’t only the drugs (and the trend is to avoid them unless necessary) but first and foremost a great deal of self acceptance. Small changes in behaviors can help alleviate ADHD symptoms and increase quality of life by removing those small cuts.
One of the symptoms or ADHD is ODD (not expanding acronym on purpose), and I believe ODD is exactly what prevents many ADHD folk from getting help they really could use.
Stimulants work for a large number of people diagnosed with ADHD with very little negative effects and are safe modulo a few exceptions for long term use.
Some individuals have negative experiences with Stimulant medications but I know from personal experience and from many friends in the ADHD community stimulants have literally been life saving for them.
They don't just reach for them because they are out to get you but they are effective for many people.
Furthermore many people who choose to forgo medication develop lifestyle and substance use issues which negative effects far out weigh low dose stimulants.
As other commenters said they are just a tool you still have to work on interventions, behavior modification, and so on.
At the end of the day in many ways ADHD is a disability (even if sometimes a super power) and you can't just delete it with a prescription.
Even if you forgo meds there are so many ways to boost your attention and quality of life and lots of research on what is effective, treatment can be much more than just medication.
There was a point in my life where I was unable to function in society, and the stimulants did save me. I decided to slowly ween myself off of them since, and don't have any regrets about having taken them in the first place.
If I lost 5-10 years from my lifespan from taking stimulants, I still think it was worth it. Staying realistic about them was key for me.
Anyway, I suggest that anyone concerned seeks the advice of a doctor, not random internet posters.
It's usually the first thing a doctor will go for. Not strattera, bupropion, modafinil, therapy ... but adderall.
As for therapy, it's not really a great solution for ADHD. It can certainly help, but it's not going to give you the internal drive to do boring things that you were born without. In my experience, therapists also don't know how to treat ADHD, it's not really in their wheelhouse.
Suggesting these substances have the "same effect" makes me think you haven't tried them to know the difference. Saying low dose adderall is effectively the same as them is absurd. They aren't controlled and prone to abuse, which what you are dancing around.
Just that generation is moving on. There have been ardent programmers with each new generation that learns computers, I remember well people who could produce massive amounts of code quickly back in the 1980s. It was a different software environment then, but the enthusiasm was the same.
It used to be that amateur programmers created a lot of new products and services that way, before corporations started stifling everything on the Internet. There wasn't always a way to monetize writing projects like that, but that was okay back then, when it wasn't just the size or ubiquity of something you made that caused it to be seen as a great thing.
This article is just another case of someone not being able to see beyond their own world, who believes they are singular and unique. The truth is that there is nothing new under the sun.
My response is, being self driven is not enough to be a "10x" developer and the idea that all your hires would be self driven passionate programmers has never been true..
Today the author might feel lucky they apparently get to program 40 hours a week; can we make it so that tomorrow everyone who wants to program 40 hours a week can actually do so?
Useful as a data point of the state of mind of an technical person of some experience, a certain life journey etc. But what else to conclude?
Software clearly has changed quite a bit in the past decades, but arguably quite a bit less than hardware and probably not measurably enough to require a different mental wiring from developers.
What has changed massively is the economics of the tech industry. But that is a different story.
maybe he realizes people around him are creating an actual work/life balance and this is the end of the "10x engineer" whatever that is.
Which has been the case since ye olde dotcom boom.
The best example of a 10x programmer I know went to art school. He’s a UX architect and can produce functional prototypes faster than you can describe what you want. He has all the attributes mentioned by the author, but I’m pretty sure he spent at least sometime being an enthusiast in things other than computers. Today though? He soaks up information about everything related to html, css, and JavaScript and turns it into beautiful interfaces.
The author is right that cultural influences in the late 70s, 80s and 90s resulted fairly specific archetype being in prevalent in the industry. To be too interested in computers had social consequences. Being a “nerd” was a real label and sub group that ended up being both excluded and exclusive. It was hard to be casually into computers like you can be casually in to sports, except perhaps video gaming.
There are plenty of people who have entered the profession now that’s been normalized that see everything as just a job, but there are also many that come in and get bit by the same bug that seized the kids who got into computers in the 80s and 90s- the magic of the machine, the beauty of code, the thrill of getting something to work.
I’ve had the privilege of working with and even mentoring people like this- people who discovered programming relatively late from non-traditional backgrounds but none the less have become extremely competent coders. They look different, they approach some problems different, but they are just as tenacious, tireless, through, and curious as I am. And just as productive, too.
I started interacting with other like-minded nerds via local BBSes, and first experienced the internet through a dial-up UNIX shell account from a local ISP.
Computers today are great - but you can do quite a bit of programming without understanding how anything really works. Will programmers who grew up with 64-bit machines, GUIs, always-on internet connections and very high-level programming languages be as good as the 80s kids?
Who knows? Do they even need to be? Most technology companies don't seem to think so based on their hiring practices.
Did the "computer kids" of the 80s understand the quantum field effects that make transistors work, and how they are physically arranged to emulate logic gates, complete with all the subtle tricks needed to manage signal noise?
If not, that comment is just ignorance dressed up in elitism. All of computing is based on abstraction, and understanding how it "really works" has been beyond the capability of any single individual for many decades.
That’s not enthusiasm. That’s workaholism.
No, this does not require people to develop on side-projects, outside of work (something that is nigh impossible to request from people with other demands on their time, such as academic degrees or newborn children). Neither is such emotional engagement necessarily evidence of a "10x" engineer.
The simple fact of the matter is that Product does not work with code, does not understand code, and will not appreciate the complexities of working with code unless •Engineering stands up for its own interests. You can* inspire Juniors to understand more about their interests, care more about their craft, and lead them on a path to being happier with their career choice more generally. That only happens if you decide to engage with them, mentor them, and give them time to self-develop.
Seems down from when I was in college, but my memory of the 90s is getting hazy. :)
I sometimes deride "webcrap" on here. The point I'm making is that much of web-related programming today is bolting together off the shelf parts with a bit of custom glue. Programming has become wider but more shallow as a result. It's necessary to know about, or be able to look up, a huge array of parts. It's usually not necessary to understand how they work inside. Between Stack Overflow and Google, you can usually look it up.
Who has a well-thumbed copy of Knuth immediately at hand any more? I once did, but those books are in the garage now.
Back in the day in 2005-2014 I got inspired by several folks around the world and looking back there are some characteristics of all those folks (i) they had a great sense of craftsmanship, (ii) they had a certain level of autonomy to build and they were "listened" in some of the engineering decisions, and (iii) most of those folks are shielded against meta-work (e.g. corporate bloat meetings, bureaucracy, low-value processes/corporate rituals, etc) because they were doing something special that talks with the customers/clients to understand them to build something meaningful.
In my experience, unfortunately, the (ii) and (iii) are the norm and the end product is the vanishing of the (i).
The software development profession changed with more tools accessible to more people, lots of people have access to the SOTA in code generation/assistance, and we had things unthinkable for our predecessors like version control systems, CI/CD, infrastructure as a code, containers and so on, but most of the corporate developers like me are constrained by the environment where not only we have that corporate iron ball on the foot, but we're every day more distant from the clients/customers.
I used to be frustrated due to that, and I ended up fired twice because I naively fought against it, but at the end of the day I channel my craft into my hobby/pet projects or when I do something for my family (for instance, I was using a small script to automatic schedule Hemodialysis for a cousin that has a kidney problem).
He doesn't answer the question. Instead, we have some nonsense about his past impulsive habits, quibbles about lack of diversity, gender imbalance, "Inter-generational conflict is brewing", 'privileged white man', and other drivel. What a waste of time as an article.
It seems like the actual value is measured wrong in corporate environment and it does not enable focused long term plans and solutions.
I have a friend who negated 8 full Java classes with 50 lines of SQL. But, he did it without telling the management cause if did, then he would have to answer to them everyday. And he was learning his way and experimenting and changing all over the place. I don't thinking deeply about problems for creating better solutions is appreciated or even recognized. And it takes time to learn solving problems that way.
Not attributing this to the corporate environment completely, but if you only care about features and its delivery ASAP, well... you will get them ASAP inspite of what horrors lurks under the hood.
I wouldn't brag about that. It's trading one headache for another.
But, generally, I agree, it all depends on context.
Some teenagers get that early exposure, and some find it's a nice place for them. I give some of my time as The Grey Beard to help the local community robotics club at the local fablab : Arduino, BBC micro:bit, laser cutter, electronic components. The magic happened. One boy started to tinker to motorize his skateboard using scavenged parts and duct tape. An other boy got his own BBC micro:bit and went mad with Scratch, spending sleepless nights over it. Now he want to code with actual code and not Scratch blocks.
There are lots of ways a developer can push the needle
maybe producing 10x more code, maybe they develop new features 10x faster and if they are full stack with better UI/UX out of the box. Maybe they can build an entire MVP from scratch on their own. Maybe they can handle DevOps too Maybe they can contribute to product Maybe they implement security best practices and catch security issues of others etc
It could be one item or a combination, but there are definitely developers that just provide 10x+ more value than a typical developer.
Just having one on a team or at a startup especially early on can make a huge difference.
Why is the software never finished? Why does stuff stop working after a while?
Sounds like a lame thing to ask and I know enough of the answers to make it rhetorical.... but this isn't the only sector building things. We build a ton of stuff! The last few decades others are rushing out products too and they are as cheap as they are crappy but it wasn't always like that. Most things are actually good for a good while.
If you boot up the museum quality computer from back in the days, insert the floppy... woah everything just works!?
programming is just variables, if statements, for loops and function calls. Nothing new happened. The web browser was the last good idea.
Hardware is insanely fast, but everything runs slow? What productivity did we gain if we have to endlessly rewrite everything? (think: Newspeak 11th edition)
Project tool chain, project programming language and project package manager should have been finished by now?
Imagine it to be a race against mr fusion[0] and the flying cars[1].
I think this generational change will be healthy.
*Edit - to clarify I meant what it represented, of course some people nX times more effective/efficient/higher output than others.
In my experience, the “10x” developers are just doing their job.
Maybe we should focus on the dev/10 people, they just make people who are gitting stuff done look amazing.
The reality is a subset of engineers are just better, quicker and faster. They known things and can do things faster.
I have worked a verity of teams. However gross it is to you the person pulling in 30k of line of code in a complex system in 3 weeks is definitely something more than the average developer.
I know I know. Everybody is going now pile on with some crazy assumptions about code quality shit. Let me stop you. You were not there, the code was amazing and the code ran rock solid.
Also this was not a one off. Every project I worked with this person simply was the same way. 15 min sync, 3 days later amazing features, 90%+ unit test coverage, all while doing 9-5 and cooking dinner for her family after destroying that PR button.
So whatever you want to call them, they exist, and they are likely better than you in every metric you can measure.
Get over it do better.
The fact is, that for many young people, programming has been “realtor boom” for many years. I’ve been actively involved with my faith’s various youth group offerings over the years, and I have watched a lot of young people I have known grow up and head down various paths, only to pivot from all kinds of career aspirations to software development. They connect with me because I’m an old timer in the same industry as them now. But very few of them “get into it” the way I have for my career. It’s a well paying job that has relatively low entry cost (either degreed or boot camped) and allows them to support their youthful adventures or aspirations to start families.
I had an intern last cycle that just consumed this stuff. It was like I was talking to a younger me. She knew things about the company I worked at I did not know.
Anytime I was explaining anything about how to solve problems or how something should work, she would just listen and ask good questions. Next thing you knew she was using whatever we just talked about.
The majority don't prefer mediocrity. That's all they really can do. We just don't know which of the majority actually has the mythical 10x ability that easily.
If we're just talking about the simple root premise some people are 10x more effective / efficient or simply deliver 10x the output at the same or better quality - sure yes I absolutely know those people and while I wouldn't consider myself one of them I certainly tend to get a lot more done than the average engineer I work with.
However - I don't agree with you that _anyone_ can be 10x "better" than the average person as I regularly encounter people that do not have innate logic and troubleshooting skills nor the curiosity required. I do agree that plenty of folks are content with mediocrity - most of them have ended up in "enterprise" companies.
Don’t be sad. It’s okay that other people do something better than you. Be happy you play disc golf, but the 10x engineer makes more PRs than you. Which do you want more.
What I hear is you envy somebody else choices, and want to vilify them because you can’t compete with them because you made different life choices.
It’s like you are mad that Serena Williams did so much better than you did, but you only played tennis on the weekends with your friend.
Personally that sounds like a new circle of hell but I've had people ask me to bring back Jira for a project I was managing so there are truly all kinds.
A lot of people choose to be mediocre developers, but likewise a lot of people try very hard to be good but simply don't have the cognitive capacity or organization to excel.
(Cognitive Ability) * (Engineering Ability) * (Problem Solving Ability) * (Attention to Correct Details) * (Eagerness to Labor and Work)
There are real 10x engineers. And there are also 0.1x engineers. And plenty in between.
And lots of things impact job performance. Burnout, life satisfaction, interesting problems, ...
The "argument" in that link is a complete strawman. If they are a "10x engineer" but actually make people less productive because their code sucks they aren't actually a "10x engineer".
Not sure what the take away here is other than the author has a high opinion of himself.