Readit News logoReadit News
jaggederest · 9 months ago
I like this article particularly because I think the trope that there's something unique and different about software engineering is pretty toxic, both to we people in the field and people looking to employ people in the field.

These days it feels a bit like another well known toxic field, finance, in that people conflate an outsized leverage for personal valor.

It's laudable to do your work well and go home to the rest of your life, and working "extreme" hours is both a bad policy and a bad sign that the system you're operating in is brittle. Nothing that we do is so unique that another competent engineer shouldn't be able to fill in for you when you are having an off day.

The effect of consistent, careful, workmanlike effort over time trumps any number of crunch weeks and burnout episodes, to an almost absurd degree.

lovich · 9 months ago
>These days it feels a bit like another well known toxic field, finance, in that people conflate an outsized leverage for personal valor.

Didn't we pass the rubicon on that in the early 2010s? I personally don't feel that its "like" finance but that its the exact same behaviors from the exact same set of people.

Once tech stopped being a bunch of nerds in a basement and started being a source of wealth and power, it attracted a whole slew of intelligent and wealth seeking individuals who would have gone to wall street previously. Its not like the math skills don't have a heavy overlap already.

And well, now that they're here, we see all the same power games being played with the same results

ambicapter · 9 months ago
I don't think it "attracted" a certain kind of people, I think the people who were already in tech just became more wealthy and powerful, and that, predictably, brought out the worst in some. The worst qualities of "tech" people can be conflated but I think have a different flavor than the worst qualities of "finance" people. It's really just the same obnoxious behavior you can spot in young tech people. Some people grow out of it, and some people earn a ton of money and so have no reason to grow out of anything (not that you can't make money AND grow out of it, but there's less outside pressure to do so).
ozim · 9 months ago
Oh stop narrating like nerds in a basement are cuddly lovable bunch.

Amount of toxic behavior in nerdy groups is just as high as finance.

Every single one just thinks how smart he is and how to one up the other.

Technical interviews were always bad even before 2010 as there was loads of gatekeeping anyway.

rsanek · 9 months ago
>Once tech [...] started being a source of wealth and power

this happened "in the early 2010s"? I don't think so. Software engineers have no power, and in comparison to finance, quite limited wealth.

hinkley · 9 months ago
The story is that the reason Boeing got eaten by McDonnell Douglas is because the MD execs were meaner than the Boeing execs and they used their sharp elbows to take over a company that was objectively doing better than they were. And it started showing signs of unravelling on the first airplane they built under the new regime and has only gotten worse since.

The 787 did something Boeing vowed they would never ever do. They let Mitsubishi build the wings of the 787. They’ve never let a supplier do that. The wings are the heart of the airplane. I am completely amazed that Mitsubishi never progressed past commuter jets after that project (and I believe they shut that division down about 5-10 years ago). Just unfathomably dumb.

I don’t know what we in software need to learn from this. I don’t think being meaner makes anything better, but maybe more assertive is the answer.

noosphr · 9 months ago
Software is different.

All other engineering disciplines are ultimately limited to building things in (at most) 3 euclidean dimensions. There is only so much junk you can hide in a finite volume of space.

Code by comparison lives in hyperbolic space [0] and you can hide _anything_ in such a space without it being obvious. This is exemplified by the unpleasant discovery all of us have had of a supposedly peripheral folder holding source code called all over the code base and the near impossibility of moving it in a location that makes sense for it without having to refactor the whole code base.

People, including myself, have a seriously bad intuition just how much volume there is in a space which grows at least exponentially.

The closest discipline to software engineering is mathematics and that has an even worse track record. There's the folklore about half of all math papers giving the wrong proof for the right conclusion. By comparison software engineering only gets catastrophic bugs less than every other time a program is run.

[0] All trees are natively embedded in some hyperbolic space of whatever curvature matches the average number of children per node, and all code can be ultimately represented as a tree.

gerdesj · 9 months ago
"All other engineering disciplines are ultimately limited to building things in (at most) 3 euclidean dimensions."

Trying to diminish engineering disciplines that have existed for millennia by imposing an arbitrary constraint of "3 euclidean" is pretty wank. Let's drop silly constraints.

Do you have any idea how complicated concrete is? It's just sand, aggregate, cement and water. Exothermic reaction. Job done.

Let's look at wood ... the stuff is a bundle of fibres and stuff and yet we build huge structures out of it. Who on earth knows how or why plywood works? Britain had several all wooden aircraft during WWII - the Mosquito was so good that Herman Goering declared that it was worth two kills.

Steel - its just iron with other stuff.

Software engineering is growing up gradually but please don't be a dick towards people who practice disciplines that invented things and concepts you rely on and live within.

For example the concept of a token that allows you to do something exclusively - " exclusive lock" - was popularised by early railways. A single track should have only one train on it and after a few accidents the idea of an exclusive token was "invented" that could be passed across to the next exclusive user.

When you say hyperbolic, you should be aware of how close that is to hyperbole.

knowsuchagency · 9 months ago
Disagree.

What makes software unique to other engineering disciplines is that it isn't a discipline at all. What makes software so great is how quick the iteration cycles are.

Software sits at a higher abstraction level than physical hardware, so much of our time is spent throwing at the wall and seeing what sticks because that's often (although not always) the best use of time.

tkahnoski · 9 months ago
I think maybe this misses the mark. Yes software can lead to unbounded complexity unlikely many physics based engineering disciplines.

However, at the end of the day, there is an input and output and compute and memory needed to run the thing and if we look at that we realize, we never actually left the bounded physical realm and we can still engineer software systems against real world constraints. We can judge its efficiency and breaking points.

What's very different is the cost to change the system to do something new and that's where this unbounded complexity blows up in our face.

sroussey · 9 months ago
The methodology is unconstrained as another way to put it.

Which, indeed, is different from engineering where constraints are non-negotiable, and thus the methodology as well.

I think a lot of people doing functional programming, as an example, enjoy the constraints and the discipline that it imbues on their craft.

asdff · 9 months ago
Both software and physical engineering can hide junk. It just depends on who is looking. There are plenty of products made that are junk. If you start to understand how products actually come to fruition in the business world, you will see that most of what we buy or sell or see marketed is actually junk. This is because engineering both in software and in the physical world is rarely, if ever, incentivized to seek out a perfectly optimal solution. What is able to generate profit sufficiently over costs, today with today's economic context, is what ends up getting shipped in both cases. That might change tomorrow and suddenly the product is not viable due to the costs of the junk associated with it. We talk about legacy code and how it is junk we are beholden to, go ahead and look at the engineering behind car designs and you will see there are legacy engines, legacy car platforms that people are similarly beholden to no different than legacy code people are afraid to touch. And that is just that one sector. Legacy engineering is present in everything you can conceive of due to the fact no one is paid to go off into the woods and optimize optimize optimize, only to ship by a deadline even if it a stinking pile of you know what. That is for sales to figure out.
jhanschoo · 9 months ago
Software is different.

Software is ultimately limited to building things in a space that is only countably infinite. There is only so much junk you can hide in a space that is only countably infinite.

All other engineering disciplines by comparison deal in a space that is uncountably infinite and you can hide _anything_ in such a space without it being obvious. This is exemplified by the unpleasant discovery all of us have had of a supposedly measurable "collection" of intervals having such weird holes all over the real number line and the near impossibility of shifting it up or down that makes sense for it without having to rethink our whole notion of measure and still end up with something like the counting measure that definitely doesn't make sense.

People, including myself, have a seriously bad intuition just how much volume there is in an uncountably infinite space.

boomlinde · 9 months ago
> All other engineering disciplines are ultimately limited to building things in (at most) 3 euclidean dimensions. There is only so much junk you can hide in a finite volume of space.

I think that you have a basic grasp of the word "dimension" but use the word "euclidean" without understanding what it means just because you heard it in conjunction with "dimension".

If you think that e.g. building a bridge is a three dimensional problem in the sense that you are actually talking about (which has nothing to do with euclidean geometry), you lack the basic understanding of what you are talking about from which you could draw any conclusion like that with any sense of intellectual honesty.

p_v_doom · 9 months ago
I do agree that you can hide a lot of shit in code. But I think something often overlooked is that code is simply text, and we have general rules on how to write good text. Code is in the end of the day basically applied philosophy and expression of ideas.

If you do not have the experience and skill to express your ideas in text in a clear and concise, you will struggle to write good code (and vice versa tbf).And coders generally are lacking on the more humanities side of their educations.

DrScientist · 9 months ago
I do agree that software is by far the most complex things humans have created and much of that complexity is hidden.

Case in point - more than one Mars mission has failed due to software errors.

However you could argue that the best way to deal with that complexity is not to have a brilliant mind that can grok more of that complex space, but by simply taking good engineering practices to minimise and manage it - ultimately the complexity is beyond us all if not managed.

deadfoxygrandpa · 9 months ago
actually, if you really think about it, my source code is only laid out in 2 dimensions. thats even fewer than mechanical engineers have to work with!
jonfromsf · 9 months ago
You can hide ANYTHING with financial engineering. Like off-books liabilities, systemic risk ... anything.
magicalist · 9 months ago
> Code by comparison lives in hyperbolic space [0] and you can hide _anything_ in such a space without it being obvious

Eh, you can also create a bijection between all programs and the natural numbers, so I don't think this analogy gives much insight. It's also silly to think that structural engineers or whatever only have to worry about where to place indistinguishable cubes in 3d space at a single moment in time and move on to the next job.

This honestly comes off as the kind of masturbatory rhetoric the GP seemed to be talking about.

vonneumannstan · 9 months ago
You'd probably be shocked by the amount of junk hiding in the design of the F-35 for example. Complex Systems in 3-d are still complex.
never_inline · 9 months ago
Hyperbolic space indeed.
AxEy · 9 months ago
>There's the folklore about half of all math papers giving the wrong proof for the right conclusion.

Sorry, what? This is an extraordinary claim.

Dead Comment

shafyy · 9 months ago
I don't know, man. Your comment is neither here nor there.
strangattractor · 9 months ago
I was once considered a 10X. I would work all night. Rewrite code simply because I found it objectionable - lots of things I'd never do now. Mostly after working those long hours I return after a long rest and spend most of my time fixing all the new and ridiculous problems I created while working tired. Things may have gotten done a little faster. Never once did it even matter - there was no material benefit to the company. Projects still got canceled - team deadlines still missed - products still had bugs - company focus changed blah blah blah.

Focus is a supper power. Not getting diverted with trivial shit. Don't get distracted , avoid creating more work for yourself and others. Todays me would find yesterdays me a -10X annoyance.

jimbokun · 9 months ago
> I would work all night.

This is not a 10X programmer. A 10X programmer delivers the same amount of functionality in 1/10 the time.

For me the first 10x programmer that comes to mind is Peter Norvig. This spell checker he wrote in a single flight remains a work of art:

https://norvig.com/spell-correct.html

Very few programmers would come up with something so concise and elegant yet powerful in such a short amount of time.

logsr · 9 months ago
> Focus is a super power

this is crucial. from my own productivity I know that I can function at 1X or 10X depending on my focus.

being a great engineer requires practice most of all, and the consistency of focus during that practice will impact its value.

in my experience, engineering is all about efficiency, and as i have developed over time the scope of factors i take into account when calculating the efficiency of something has increased. in the beginning i only looked at the technical details of the implementation, and then over time that expanded to considering maintainability, team co-ordination, business objectives, etc.

the potential scope here is unlimited. when you start, just making something compile takes all of your focus, but over time as programming becomes reflexive you are able to expand the factors you take into account far beyond the immediate code, and it seems trivial by comparison.

CrimsonRain · 9 months ago
So you 10x'd in wrong direction. Doesn't mean something else can't 10x in the right direction.
awesome_dude · 9 months ago
> Never once did it even matter - there was no material benefit to the company.

I think that the idea of having people (at startups) working at a frenetic pace is because

1. The VC money is running low 2. Being first to market used to be a major determining factor on whether the product would succeed or fail

xandrius · 9 months ago
If you work twice as long as most, make code which is dubious/broken, take initiative out of sheer personal opinions and have to spend time the next day fixing your mess, that would be the definition of a 0.25X programmer.

It took you 4 times as long to bring value to the company, you had lot of enthusiasm but were not using it right.

Being a kX (k > 1) means that you need to work fewer hours to accomplish the same amount as an average developer. If you then got to spend more time to fix your stuff, that counts against your time budget.

nntwozz · 9 months ago
"Focusing is about saying no." — Steve Jobs

https://www.youtube.com/watch?v=YgL8fpya8BA

not2b · 9 months ago
This sounds like a management failure more than your failure. You should have had someone who would have steered you in the right direction, getting you to focus your energy on things that mattered.
TZubiri · 9 months ago
I like to think of my ideal mythological 10x as someone that does less.

What would a 10x engineer do at any of these companies pushing bloat in their products? How do you keep the software clean even as it becomes successful, millions of dollars and jobs change the ethos of your organization, but you are tasked with preser ving.

A 10x engineer at msft would have avoided notepad being modified.

A 10x engineer knows how to stop the forces that be, from adding an "ai" feature, where it clearly doesn't belong.

hinkley · 9 months ago
I’ve had too many experiences of starting a project at noon on one day and getting fixated on finishing it and failing, then after some sleep and reflection ripped half of it out and finishing the new idea before lunch, which isn’t even my most productive time of day.

If I’d had this perspective the day before I would have been finished before 5. But I got wrapped up in thinking I was close and I should have stopped for air.

dennis_jeeves2 · 9 months ago
>I was once considered a 10X. I would work all night.

You are part of the toxic culture until you realized that was that it is overall counterproductive. Collectively we software developers are to blame and no one else.

grandempire · 9 months ago
Wasting your enthusiasm was your managements fault. It’s their job to set up the tasks that will have impact.
ultra-boss · 9 months ago
Couldn't agree more. I read a book (okay, I half read a book...I couldn't finish it, it was so bad) where the author (a marketer!) argued that software engineers are the most skeptical audience, and I was like, "Um, have you ever met an investigative journalist? Or people in the many many other professions that require skepticism and analytical thinking?"

The sooner the software engineering field can be rid of its beliefs about the inherent brilliance of programmers, the better for everyone involved. Inlcuding software engineers!

aleph_minus_one · 9 months ago
> Couldn't agree more. I read a book (okay, I half read a book...I couldn't finish it, it was so bad) where the author (a marketer!) argued that software engineers are the most skeptical audience, and I was like, "Um, have you ever met an investigative journalist? Or people in the many many other professions that require skepticism and analytical thinking?"

From my life experience, the claimed statement actually does have some truth in it: software engineers experience a lot more bullshit marketing than other professions that require skepticism and analytical thinking, thus they, in my experience, have indeed become more immune to exaggerated marketing claims.

Also it fits my experience that software engineers are much more vocal about calling out bullshit (just consider the "bullshit bingo" game) than other professions that require skepticism and analytical thinking, thus based on the audience reactions alone, any salesman would likely indeed come to the conclusion that software engineers are the most skeptical audience.

WgaqPdNr7PGLGVW · 9 months ago
> I like this article particularly because I think the trope that there's something unique and different about software engineering is pretty toxic

The ratio of software engineers working in novel design spaces compared to plumbing style work is best guess ~1:5.

The ratio in more mature fields like civil engineering is closer to ~1:500.

There are lots of similarities between software engineers and the few folk in civil etc doing actual novel design work.

> Nothing that we do is so unique that another competent engineer shouldn't be able to fill in for you when you are having an off day.

In novel design spaces people are not fungible.

jandrewrogers · 9 months ago
Very few software engineers are working in novel design spaces. Even 1:1000 is probably being generous. FWIW, this is true of conventional engineering too, but even more so.

A software engineer having no idea how to build something doesn’t make it novel, it just indicates inexperience or ignorance in all but a vanishingly small number of cases.

In practical systems, you won’t find much novelty outside the rare frontiers of performance optimization, systems software architecture, the occasional bit of weird silicon with unusual computational properties, and some narrow algorithm domains that have never been adequately developed e.g. compression and AI. Almost no software development can justify even thinking about these types of things and they virtually never do.

Conventional engineering is worse because the laws of physics constrain almost everything to boring well-explored solutions. In some cases, we’ve pretty much done exhaustive exploration of what is possible.

freddie_mercury · 9 months ago
> The ratio of software engineers working in novel design spaces compared to plumbing style work is best guess ~1:5

Google has something 25,000 developers. You think Google has 5,000 people working on novel design spaces? That number sound way, way too high. By at least an order of magnitude.

And Google at least has customer facing technology compared to the thousands of companies whose developers only work is, say, integrating HR systems or deploying SAP or maintaining some legacy billing system.

jackcosgrove · 9 months ago
Novelty is a byproduct of immaturity. To take another field that matured recently, mechanical and in particular aerospace. You can see a lot of crazy airplane designs from the 1920s through the 1940s. There was a lot of novelty back then and it was an exciting field to work in. Now airplane designs look very standard, and for good reason. The field matured and figured out the best and most economical designs. Novelty is a temporary state, and most novel designs are figuring out how not to do things.
ltbarcly3 · 9 months ago
I think one thing that is very different about software engineering is that it's the only form of engineering I'm aware of where a very substantial fraction of the people employed to do it lack basic fundamentals like "being able to do it". Most software engineers can't write a program without google. They can't remember basic facts about the language they use every day. They don't have a sense of what makes sense and what is weird. They can't debug problems they run into without help.

I know whenever someone says anything negative like this people come out of the woodwork to say the opposite, and that's fine, but I can't name a single competent programmer who doesn't say things like this in private, and I know a lot of them.

Test it for yourself. The next time you need one of the mediocre people on your team to do something pay attention to how they do it. I will bet you it's something like this: Get the ticket. Spend a day or two trying anything they can think of, googling, pasting stuff into chatgpt, etc. Then they start messaging people. They tend to try to not always ask the same helper because it would get too annoying, so they rotate around the team asking for help. The helper starts by offering suggestions, but the mediocre dev can't get those suggestions working or apply them correctly. Pretty soon the helper just types a bunch of code into the chat window so they can go back to what they are trying to do. The m dev takes this code, and pastes it into their branch. It's not quite right though, it needs a little tweaking to work but they can't figure out what to do, so they message the next helper. (And sometimes it's hilarious what it is, a lot of times it's a typo and when you run the code it says exactly what line it's on, but they don't know how to run code besides pressing the button in their editor that someone else set up for them) To helper 2 it seems like they are making good progress, they are just stuck on some small thing. Happens to everyone. They tell them exactly what's wrong. And voila, this is how about 30% of the people you work with write code. People don't catch on because when you are helper #2 you assume they wrote that perfectly competent code.

nyarlathotep_ · 9 months ago
I don't think, excluding some scenarios at well-disciplined firms that anything like "engineering" exists in programming.

The processes surrounding development often strike me as haphazard, cargo-cult like behavior, and entirely subjective.

Regarding people not remembering stuff--yeah that's probably true, but there's a lot a typical developer has to jump between--do people really get to "specialize" in JUST like writing Java CRUD or something anymore?

Feel like there's always also troubleshooting some Docker thing, some cloud provider, some build system, some pipeline etc etc.

When there's no stability and moving targets, maybe you're not incentivized to be a "specialist" on a language or whatever (this might also be painting oneself into a corner for their career) given how easy information retrieval is today?

RE: the scenario

Is this real?

I've never been employed at any sort of fancy role but I've never encountered this kind of thing (publicly) involving me, and I generally get on well with others, so I assume I'd have seen it by now

I'm sure plenty of programmers pasta from LLMs constantly now, but I've never had bizarre low-hanging "what do" inquiries.

Most people have some discipline and structure when asking questions:

- I'm attempting to integrate library x into the project - I've done the following and the build fails in CI with $ERROR - I've checked x, y, z - Have you encountered something similar?

This indicates some level of actual understanding of how things work, or prerequisite research prior to asking.

Also, where can I get a job where they hire people this minimally competent? I'm seriously burnt out and this seems like a nice change of pace.

I'm totally serious with that question.

jpeloquin · 9 months ago
I can confirm that some (30%?) mechanical and biomedical engineers follow the described problem "solving" strategy exactly. It's not just software engineers.
dennis_jeeves2 · 9 months ago
>Most software engineers can't write a program without google. They can't remember basic facts about the language they use every day.

How many years of experience do you have? and how many languages have you written code in? Include all languages where you tweaked or wrote even a single line of code.

avs733 · 9 months ago
> I like this article particularly because I think the trope that there's something unique and different about software engineering is pretty toxic, both to we people in the field and people looking to employ people in the field.

My university has an alternative entrepreneurial focused “senior design” course open to engineers and cs students. Because of scale the CS students are now separated in a different section. All I can say is the level of toxicity that I’ve witnessed from cs students to engineering students has made this a much nicer course to work with teams.

Engineering students can be ego driven now it alls sure, but the level of toxicity behavior and assumptions of superiority I’ve seen from CS students makes me glad I don’t have to deal with them anymore.

The primary fault I see, and it’s buried in the abstractions comments from others is the assumption that their knowledge is all encompassing because it is so abstracted. The inability to attach it to contextual realities is taken as virtue rather than a risk factor.

I always go back to the fast company article on the coding team behind the space shuttle and their culture. The difference is telling in terms of qyality and risk tradeoff. Realistically the number of engineers who will design something that could kill someone and software developers who will exist at opposite ends of the percentage scale. That reality manifests in professional culture. We’ve seen it in so many places.

This threat is insightful but not in the way commenters likely think.

hinkley · 9 months ago
I spend at least half of my best days working on making our bad days better.

The thing about being intelligent is that you have the capacity to find wisdom faster. I’ve worked with too many intelligent fools, and nearly all of them quit rather than face the consequences of their own actions.

I tend to stay too long, either cleaning up after my own messes or someone else’s. Maybe I watched too many westerns as a child. Who knows.

But I’d rather work with someone wise who can’t reinvent bloom filters from first principles than someone who could, and thinks doing so is a good idea.

There’s an ethical trap where you think you’re the only one here who can make something work, because now you’re on the hook to support it and if you have a negative opinion of your peers, how is that going to work out, do you think? Did you think? Or were you too busy wondering if you could do it to think about whether you should?

I think the advice, “never be the smartest person in a room” is just about the biggest bullshit in tech. Intelligent people cannot teach you to be like them. They can’t change your brain much more than you already have, just surviving school and university. But a wise person can teach you three new things before lunch, sometimes without even trying.

Don’t be the wisest person in a room, and if you must be, don’t denigrate the wisdom of beginners. Good teachers learn from their pupils.

logsr · 9 months ago
> something unique and different about software engineering

how much does the strength/weight ratio of building materials improve every year? how much does the price/quality ratio of building materials fall every year?

software engineering is working with technology where compute capacity was doubling and price/performance was halving every two years for decades. this rate of change has slowed, but in a world where the price of everything else inflates, software is a rare field that works with a continually deflating capital base.

the uniqueness of software development is real and based on underlying physical/economic factors that exist in very few industries.

software developers are not unique. they are still human. but the profession is unique and the financial incentives are unique.

consistent, careful, workmanlike effort over time wins on average, but because the incentives are large, many people will take the risk to get exceptional rewards.

i approach software development like a professional athlete. i work on optimizing every aspect of my performance (physical, mental, social, technical) to be the very best i can be. anyone who applies this level of dedication in any field will be highly successful, but it requires dedication, sacrifice, and risk, which many people are not willing to accept.

the world is full of exceptional software and algorithms designed by unique individuals who developed things nobody else could or would. there is a reason why mathematical discoveries are named after the people who discovered them.

building software for large corporations necessarily revolves around median-level teams, because mean-reversion always happens at scale, but that is also why a great deal of technical innovation takes place outside of large corporations.

Xmd5a · 9 months ago
This is exactly what the leads in my team not only thought but said to my face gratuitously. I'd be in my 69th hour of work on a Thursday and they would pass by my desk and say stuff like "what's important is not the time you dedicate to a task but that you complete it".

The board decided to promote these people who negotiated a 4-days week; after all the team had never missed a deadline, and gradually I was given more and more tacit responsibilities without explicit status recognition. This creates a double-bind situation for both sides. While I could never be satisfied because of this lack of trust, you have to understand why they approached me with suspicion while being dependent on me.

A 10x engineer (or any Nx engineer with N > 1) has to interface with the rest of the team and this necessarily implies more work. In my case, resentment grew because of the increased workload this led to for them, and my colleagues felt more impacted by this than by deadlines being not met. As for management, since deadlines were already met, they felt more compelled to listen to the negative feedback they gathered about me and develop suspicion. And yet, they had to rely on me for any impromptu problem they had.

What's this article is discussing is not engineers with bouts of outstanding performance but engineers with that symbolical status. It's attacking the myth, and the attribution of that label, not a reality with measurable outcomes. The article doubts that such a measure exists, however the departure of an employee can have destabilizing effects on an organization. The delta won't exactly measure this employee's worth, but an organization can put itself in such a configuration that it will unknowingly rely on a few key individuals for its financial strategy and use the added value these people bring against its competitors, to win investors attracted by this differential in efficiency or proceed to acqui-hires. This leads the company to bind itself to commitments which pushes it near to a dangerous threshold.

Once crossed, when one of the cheap keystone employees leaves, this excess of work can cascade to other keystone employees, and cause more resignations, and the company won't be able to make up for it because its finances are already engaged elsewhere.

throwaway2037 · 9 months ago

    > well known toxic field, finance
I assume here that you mean investment banks, more specifically: M&A and capital markets, where the lion's share of profits are made by few people. Post-2008, the industry has cleaned-up so much. What is toxic about finance today?

eru · 9 months ago
> These days it feels a bit like another well known toxic field, finance, in that people conflate an outsized leverage for personal valor.

I'm not sure what you are talking about. Finance people regularly talk about risk adjusted returns, not raw returns.

unconed · 9 months ago
>Nothing that we do is so unique that another competent engineer shouldn't be able to fill in for you when you are having an off day.

There is a big difference between filling in someone on an off day, and actually taking over their job. It's only felt over weeks and months.

"Consistent, careful, workmanlike": this does not describe the kind of software built by most teams, but it does describe the work of good individuals.

keepamovin · 9 months ago
I always thought anyone can learn to program and gently scolded and encouraged the folks who would predictably say , “oh you do software? I could never do that. So complex.” No, I’d say, you definitely could!

And not even anything to do with AI.

But i take the title to indicate a bias against neurodivergence — “One of us,” repeated in a robotic monotone over and over. Hahaha ;)

Perhaps i should read the article!

musicale · 9 months ago
> The effect of consistent, careful, workmanlike effort over time trumps any number of crunch weeks and burnout episodes, to an almost absurd degree

This is worth remembering for basically anyone who works on anything, or manages any kind of project.

Deleted Comment

nodoll · 9 months ago
There is something toxic about calling arbitrary things toxic.

>The effect of consistent, careful, workmanlike effort over time trumps any number of crunch weeks and burnout episodes, to an almost absurd degree.

If you have an actual life, you know, with unexpected stuff coming up from time to time, this is just not possible. Then the only way to get stuff done is go 10x during the time you have whenever you have it.

musicale · 9 months ago
> Then the only way to get stuff done is go 10x during the time you have whenever you have it.

I believe PP is correct: the cost of "going 10x" is greater than its benefit in the long run, and often in the short run.

Henry Ford lowered the Ford company work week from 48 hours to 40 hours to improve cars manufactured per labor-hour, and to give employees leisure time to drive places (increasing demand for cars). Wages were raised to compensate, further increasing loyalty to the company while enabling employees to buy more cars.

For software, a 40-hour week may not be optimal, I tend to think that it may be too high rather than too low.

majkinetor · 9 months ago
You are so wrong.

Complex multiyear things are so unique that there is next to 0 chance to find another competent engineer as replacement. Some companies do that, and the only result is the extreme lack of quality and consequently reputation degradation. I witnessed this myself many, many times - great products turning into non-efficient and hard to use BS.

Complex things posses such a big number of moving components that simply iterating over them placing them into context is impossible for anyone except the one that was deep into it for years. Its not possible to "fill in" such person, particularly if that person was lacking in some domains like proper documentation (typical case).

As an example, I am leading a project that creates a government bank from 0. Just in last 2 years I wrote 1000+ pages of compressed documentation on it besides programming and management. Please replace me. My company and I are trying to do that for last 5 years.

wiseowise · 9 months ago
If it’s so easy and not unique, how come engineers with supposedly 7-10 years of experience, that I work with, write absolute braindead code that breaks if you sneeze at it?

Dead Comment

Dead Comment

Dead Comment

CrimsonRain · 9 months ago
Yet, it is trivial to find "competent engineer" in other fields and software engineering is filled with mediocre ones at best.

When there's 1000 ways to do a thing, with wildly different pros and cons, and insane amount of unknowns in a field that is evolving so rapidly that it is (near) impossible for someone to keep up, being "competent" is not easy.

0xB31B1B · 9 months ago
I could not disagree more with nearly everything in this article. Individuals ship software not teams, unless you are pair programming. Nearly all complex technical projects are owned by one super smart person (Ex: linux). You don't need to have a scientific measurement of productivity to know that in your median team of 12 there really are 2 people carrying the water for everyone else. A players hire A players, B players hire C players etc. Building a team from the ground up is very much an iterative process of fighting complacency and mediocrity all day every day, and this guys pitch is just "give in, its not so bad".
gilbetron · 9 months ago
In my 40 years of professional software development, rarely have I seen such an uninformed post. And ignorant. Did I mention ignorant? I've been the "10x" developer, multiple times. And there certainly are poor performers and exceptional performers, but great teams makes great software, not great individuals. The analogies are numerous. You can look at a great (american) football team and see the Quarterback as the 10x programmer, but only if you ignore everyone else on the team that allows the QB to shine. Same with software. Software is a team sport, and if you don't get that, you should get that.
Dracophoenix · 9 months ago
> but great teams makes great software, not great individuals.

For a long time, OpenSSL, the standard encryption library used in everything from global banking systems to embedded devices, was built and maintained by two full-time engineers. It took the Heartbleed episode in 2014 to publicly acknowledge that potentially millions of technical projects stood (at least in part) on the backs of two nameless individuals along with the contributions of a small number of itinerant volunteers. While teamwork can be an important if fickle instrument, it tends to be a lightning rod for inviting too many cooks into the kitchen. What is often downplayed or goes unsaid in these commendations of teamwork is the place of an individual mind as the wellspring, the sine qua non, of great ideas and projects, including software. As is often the case, one person can solve an issue that has stumped thousands of others. Such individuals tend to work at a faster pace alone than the de facto committees that teams often become as they lose their agility, foresight, and focus. Unlike a football team, coding doesn't require a minimum number of people to achieve greatness. On the contrary, the opposite appears to be true - that there's a Dunbar's number for doing good work.

Nathanba · 9 months ago
that's a bad analogy because a single football player cannot ever deliver a match entirely on his own. A single developer can absolutely deliver a full product on his own, it's not inherently a team sport whatsoever. You could make this claim about many things, "blacksmithing is a team sport!" Nonsense.
handwarmers · 9 months ago
The big question is, can we find counterexamples to your model of reality in actual reality. And if we can easily do that, what does your apparent over-confidence about your statement say about you?

E.g. https://bellard.org/

To add to the insult, I'd challenge you to think of how many "great teams" of "normal" engineers, whatever any of these terms means, could pull off most of these projects in any amount of time.

Great professionals exist. They produce great work that is tough to reproduce. Your "helping" them does not mean they couldn't have done it without you.

0xB31B1B · 9 months ago
Great teams are made of great individuals. All of the policies and trust and rituals and expectations are based on the performance of the bottom quintile of the team. If the bottom quintile of the team is still the top quintile of "engineers applicable to this problem" you will have a radically different and improved culture and performance than if the bottom quintile of the team is a median engineer, and especially a bottom quintile of "engineers applicable to solving this problem".

Deleted Comment

jjk166 · 9 months ago
A great quarterback with an otherwise average team is still going to beat an average quarterback with an otherwise average team every time. That a team is more than the sum of its parts just means that adding great team members can lead to more overall gain than their skill alone would imply as they boost those around them.
__loam · 9 months ago
Even in the examples he gives, I'm sure Linus would be the first to admit that Linux has a lot of maintainers that have been essential for the project.
c_e · 9 months ago
> Nearly all complex technical projects are owned by one super smart person (Ex: linux).

strange example, considering that the super-smart owner is purely a delegator at this point, and there are thousands of contributors.

throwaway2037 · 9 months ago
Yeah, the OP is utterly delusional. Linus himself has said that he spends most of his day merging patches. Each subsystem, example: file system or USB, has multiple highly skilled owners/gate-keepers. I am sure that the file system gurus know far more about it than Linus does, and I say that with no disrespect to Linus.
swatcoder · 9 months ago
There's truth to what you're saying, but just as in sports teams, you ultimately need a certain number of players to play the game and exceptional people characteristically have an ego that only allows so many of them in the locker room. If you have too many, they get starved for the individual recognition and validation they're used to receiving, leading to crises and clashes and quittings.

Unless your project's scale is reasonably small and focused -- representing the equivalent of a true solo or duo sport like tennis -- you need committed, professional "normal" team members to flesh out the team or you'll just never have enough resources to get done everything that needs to get done.

0xB31B1B · 9 months ago
Comforting yet false assertions. Great engineers tire of working with “normal” engineers, they want to work with others who they respect. A team of only great engineers can have a completely different culture than a team of “normal engineers”. Teams of great engineers are magnets that attract others. Building a great team weirdly does not become harder over time, as your project is derisked you get access to larger and larger pools of talent. Talent concentration pays an enormous dividend and is a worthy investment. Maybe things change when you hit like Facebook/google scale, but at that point… we’ve won anyway, wouldn’t be arguing online anymore.
TrackerFF · 9 months ago
Have you ever worked on large projects? I'm talking about projects which involve hundreds of people, thousands even, and those that stretch over many years.

In the grand scheme of things, the 10x-100x engineers work gets attenuated - think of it as some kind of averaging filter.

Do you think some 10x engineer carried the moon landing? or the Large Hadron Collider?

Sure, if you work on some dinky team single-digit number of workers, the contribution from the 10x engineer will be more apparent - but as the number of people involved increases, the more important the average is.

silvestrov · 9 months ago
10x is not about the number of lines produced.

It is about programming languages and tools, about database design/schemas.

Choose the wrong language/tool for the job and the amount of work needed to solve the job easily expands 10x.

Guido van Rossum and James Gosling and Anders Hejlsberg likely have reduced the amount of work by 10x for a lot of projects compared to implementing them in a lower level programming language.

al_borland · 9 months ago
In a lot of cases, some of those who carry all the water are doing it to themselves, and it hurts the team (and themselves).

In the organization I work in we have an operations team to take care of day to day failure. Write a run book, set up ticketing, hand it off, good to go. I treat this work and hand off as a high priority, as it frees up my time to work on other things. The ones who are chronically busy and appear to be “carrying the water” don’t do it. Their time is dominated my support, they are constantly busy, and it looks like they are doing a lot… but they’re doing work that can and should be handed off.

I’ve been the water carrier as well, but always tried to skill up people any time I had the opportunity. Or I’d build tools to make it easier for people to help, or find a niche where they could be useful doing something that would really improve things that I either didn’t have the time or interest for.

0xB31B1B · 9 months ago
you are not describing someone who is "carrying water for the team". Someone who is carrying water for the team is, for instance, working on reliability improvements so that the errors or things requiring support occur with less frequency. Its not about being busy, its about having impact.
aisisbdidns · 9 months ago
You’re over optimizing for engineering skill. The majority of projects don’t need a team full of A players, and trying to get that is going to limit you.

Get rid of team members that make your life harder. Keep the ones that make it easier.

> Individuals ship software not teams

I can’t see how this is remotely true outside of contorting some definitions of “ship”.

andoando · 9 months ago
It really depends on the project no.

For a lot of stuff, one guy who knows what he is doing is worth infinitely more than any number of engineers, because this job is mostly about knowledge, not labor hours.

Even in a regular enterprise web application, one guy whose just more skilled in architecting solutions is insanely valuable. You dont need a bunch of engineers writing a bunch of inconsistent/unthought out apis and architecture, you need one guy to lead it

grandempire · 9 months ago
In every project I have worked in big and small - a key person took charge. Others contributed, but that individual made it happen.
therealdrag0 · 9 months ago
Not needing something is different than not benefiting from something.
0xB31B1B · 9 months ago
No, I’m optimizing for making customers happy. I dgaf about your ability to leetcode. I strongly care about the rate and quality of the things you ship to prod. This is what a 10x engineer does 10x of.
alphazard · 9 months ago
This comment is spot on. I would add that it's not only 1 super smart person, or only 2 people per team, it's a power law. 1 person does the most, a few people do almost as much, then you start getting out into the tail of "normal" people. You can try to hard partition the tail and create an 80/20 rule, but it's fundamentally continuous, and the shape parameter will be different for each organization.

Understanding this distribution of productivity is a great litmus test for a manager. If they say the distribution of productivity is shaped much differently than this, that is a red flag. They probably can't tell who is contributing, and you can't trust them to do the basic functions of hire, retain, fire.

The article reads like it was written by a manager with tunnel vision. A manager's value-add comes from making a bunch of "normal" people productive, while staying out of the way of the few engineers who will deliver >50% of the value anyways. If you only focus on making the normal people productive, you are only doing the additive part of your job, and neglecting the negative part, which is to recognize and not interfere with the high performers. I would imagine this guy goes around creating lots of least-common-denominator systems/processes, which drive away talent and make the high performers less productive.

0xB31B1B · 9 months ago
Spot on. The productivity gradient is extremely steep, and calling this out has become impolite.
flavio81 · 9 months ago
100% based.

Indeed this is one of the hard problems for a manager.

on_the_train · 9 months ago
Thank you. Every software is essentially being built by a few greats fighting against a dozen morons. 10x doesn't even get close to reality.

We're currently in deep shit because a long term dev was under the assumption that you can only instantiate objects once. He built an insanely complex system around the belief, which shipped. Our users used that system to write configuration files that now drive a machine that cost about half a billion dollars. So we can barely change anything because the data must be supported for 25 years.

The cost of such fools is orders of magnitude higher than their salary. I'm convinced that the world would be a better place without bad devs. Everything would be faster with less people, too.

0xB31B1B · 9 months ago
The skill gradient is steep. Broadly speaking a top quintile dev will have 5-10x the productivity of the median dev, but only 110-150% of their salary. A bottom quintile dev will have zero impact, negative impact, or .1x impact relative to a median. The goal is to have the top quintile for your project, whether that is product engineers working on b2b saas, or graphics devs working on improvements to game rendering.
wesselbindt · 9 months ago
About 15000 engineers have contributed to the Linux kernel. You should be more mindful of how facts line up with your feelings.
weitendorf · 9 months ago
I think this varies a lot with the type of software you’re building and composition of the team. If you are making a very typical CRUD web app in a structured environment (eg a shop that cranks these out one after another, or with strong project/product managers and designers who do a good job speccing things out) you do not need some rockstar 10xer to get it shipped. In fact, that kind of environment might bore or not be rewarding enough for someone like that to stick around even if they do show up.

But you still need people to actually care about their work and get it done even when it’s not “hard”. Someone who could be a solid engineer on one team could be a “10xer” on another team just from caring about the project and consistently putting in the hours on it, if their team is mostly coasting by doing the bare minimum or highly underskilled. In fact I think many so-called 10xers may just be solid engineers who found themselves in workplaces with a culture of “not my problem” or “I can probably stretch this ticket out a few weeks”.

Conversely if you take someone who might be a wizard on one team and drop them into some super complex “engineering catnip” project they might just be seen as a solid engineer there. I think cases like that demonstrate the author’s point pretty well: if you design the project’s processes and tooling around the wizard’s wizards who eg dont use debuggers because they have some insane skill with tracing running binaries you are missing out on the productivity you might gain from the less skilled engineers.

gorgoiler · 9 months ago
A lot of people will agree with you and a lot of people will disagree with you because the subject might as well be food and for some people that’s coleslaw and for others that’s master chef.

Both have their place. On the topic of greatness (your example, Linux, as opposed to say a build script for vending machine firmware) I couldn’t agree more with both you and the people disagreeing with you.

chamomeal · 9 months ago
I don’t think I agree with your level of cynicism, but I definitely think my biggest enemy at work is complacency. I joined a company in the last few months, and it seems like this codebase lost the war against complacency years ago, and it’s such a hard hole to climb out of
tester756 · 9 months ago
>Nearly all complex technical projects are owned by one super smart person (Ex: linux).

LoL?

By that logic CEOs are super humans too, cuz they own the companies? :D

>A players hire A players, B players hire C players etc

Where did you hear it?

klysm · 9 months ago
Look at it from the perspective of a scared business owner who wants replaceable cogs
whatnow37373 · 9 months ago
I claim that being able to work alone or in a small high-performance team is a _luxery_. It's comparatively easy to be performant in those circumstances. The realities of business are what we are usually fighting.

The "complacency" and "mediocrity" you mention have deep roots in politics and human psychology and I'd wager less than 1% have anything to do with tech. One of the many things you do in a business is wrestling with such monsters as capitalism and its various types of dysfunction and a plethora of other nice human factors such as hunger for prestige, power and social status.

To give a concrete example: at the moment I am quite ineffectual at work and the core reason is that I just don't give a flying F. I wasn't always like this. I distinctly remember not being like this. I was made into this and I'm sick and tired to pretend it's actually my own fault.

It's sad to see us engineering types being herded by power hungry psychopaths into arenas where we fight eachother to the death like roosters to see who is the "10x".

Juliate · 9 months ago
> Individuals ship software not teams

This is true at time T. But over time (can be as short as a matter of weeks), it is not anymore. Team work, interactions, support, resiliency takes over, in a good way.

And that's a good thing, because that's how you build relevance for your work.

If your take on managing your team is fighting complacency and mediocrity, maybe it's the hiring/training/managing process that ought to be reviewed _first_.

Deleted Comment

stopyellingatme · 9 months ago
While you may need an individual or two to carry things, you will also need other little things to get done that would slow down the "super stars". It's a team effort, always (when you get outside of personal projects).
interludead · 9 months ago
The "two people carrying the team" dynamic does happen, but that's often a sign of bad management, not some immutable law of engineering
mdgrech23 · 9 months ago
when people talk about a players I feel like a lot of times it's really just the person who knows the project best or maybe they wrote a lot of the original code so they have the best idea of how it works. My point being who's an A player in my opinion is not reflective of actual skill per se but rather other factors.
therealdrag0 · 9 months ago
Knowledge of the domain helps a lot! But software engineering and dev tools are also domains that are transferable. I have outperformed coworkers with much more code domain familiarity because I had more engineering/debugging/tooling domain performance, or better ability to design and communicate etc etc.
0xB31B1B · 9 months ago
Yes, exactly! And that is good!
khazhoux · 9 months ago
Your post is super offsensive. And true.

The number of times I've reviewed someone's code that's been "in progress" for 3 weeks, to see it's 200 lines of simple python code... ugh

"oh, but it was really actually complex and you just don't get it" --> Incorrect

nextts · 9 months ago
Or maybe they aren't pushing flaky shit into prod and actually thinking about their work. Maybe they did 1k lines (counting lines LOL!) of code reviews, fixed some bugs, helped on an outage etc. Fuck. This one dimensional view of things. Look how any company makes money. Let's say Google. It is not by the number of lines of code.
flavio81 · 9 months ago
So, you think productivity or even quality can be measured in "amount of lines of code produced".

Which is completely wrong.

solatic · 9 months ago
As a 10x engineer, hard disagree. The modern stack is just too large. Sure, building out an MVP can be done by one 10x engineer, because basically any prototype can be built by a single engineer. But making the UX aesthetically beautiful, adding a test suite (at least for automatic dependency updating), adding observability and alerting, performance optimization, persistence optimization, cost/deployment optimization, day-to-day maintenance automations, architecture and network diagrams, tutorial/how-to/explanation/reference documentation.... you are delusional if you think that can all be delivered, at consistently high quality, by a single engineer.

You can have a single genuinely senior 10x engineer oversee all those efforts, executed by "normal" engineers. But no, not execute them all by the 10x engineer's self.

mvdtnz · 9 months ago
This is bullshit. I'm sorry you've never had the pleasure of working in a high performing team.

Dead Comment

nextts · 9 months ago
It is teams in a functional organisation. Once everyone is performing then how you organise work: how you communicate complex ideas, how you order work, how you set up each other for success matters a whole deal.

If you measure something meaningful it's teams. If it's LOC or some macho measure of productivity (rewrites in Rust using the hardest frameworks) then yeah it's those "tenexxers".

0xbadcafebee · 9 months ago
When did IEEE become host to clickbait nonsense? This whole take feels like an editorial by a junior engineer going off vibes. It's all off-base, from the misunderstanding of how to measure productivity, to what output matters, to the idea that there is such a thing as a "normal" software engineer. It's kind of embarrassing.
llmthrow103 · 9 months ago
Yeah, it's really a poor quality post, but these terrible arguments and affirmed my bias toward believing 10x engineers exist and there are many great reasons to want to continue hiring them.
0xbadcafebee · 9 months ago
Reasons why it's not a good idea to look for a "10x engineer":

- There is no "10x race horse", as there's different kinds of horses who win different kinds of races (and those horses don't win consistently). Similarly, "10x engineer" would imply there's only one kind of engineer, one kind of engineering, or only one way they can be productive. You can certainly find a "person who is very productive under certain circumstances". "10x engineer" is an extreme oversimplification of a generic person doing a generic job; but people aren't generic, and this job isn't generic. There just is no "10x engineer". It would be the coder equivalent of the Übermensch.

- It's not a good idea to bet the farm on one lone genius. They could get hit by a bus, be hired away somewhere else, or just not be "inspired" by your company or team and end up not producing. Instead build a team of competent and diverse individuals led by a decent leadership/management team who can create consistent results without having to find a magic wizard coder. (Personally, if I found out someone in my org was risking the business on a single person that was impossible to replace, I would be upset)

- There's just not that many super-talented people out there. The few that are, pick where they want to work; you don't hire them, they hire you, so to speak. And even when you think you've met one, it may actually just be bluster or a false reputation.

flavio81 · 9 months ago
>When did IEEE become host to clickbait nonsense? This whole take feels like an editorial by a junior engineer going off vibes.

Exactly.

I think i'll never click on an IEEE Spectrum article again.

IEEE has jumped the shark.

mpalmer · 9 months ago
Republished from a Substack...
rqmedes · 9 months ago
Best take so far
mook · 9 months ago
It's IEEE Spectrum; it's certainly been subpar for a few years.

It seemed more interesting a decade ago, but I can't be sure if it's because the quality was higher or if was because I didn't know better…

breadwinner · 9 months ago
The flaw in this article is the assumption that 10x engineers are just more productive, and several "normal engineers" can do the work of a 10x engineer. This may be true if you're building "normal software".

But for certain kinds of software development, a team of "normal engineers" can't do what a single 10x engineer can do. For example, how many "normal engineers" would you need to replace an Ilya Sutskever? The answer is you can't. Because intelligence is not stackable.

paxys · 9 months ago
How many companies out there genuinely need an Ilya Sutskever to achieve their goals? Everything in this article is accurate for the 99.9% of companies and teams that aren't working at the bleeding edge of the industry. The mythical "10x engineer" is always a net negative on teams building a boring CRUD app. You always want a handful of "normal" engineers instead.
breadwinner · 9 months ago
> The mythical "10x engineer" is always a net negative on teams building a boring CRUD app.

No disagreement there at all. "Normal engineers" are all you need for "normal software" such as CRUD apps.

dilyevsky · 9 months ago
Author spent a lot of time mulling over “world class” this or that. World class engineers working on crud sounds like an oxymoron
chatmasta · 9 months ago
Intelligence is the easy part. That’s not what makes a 10x engineer. The 10x comes from consistency, persistence, creativity, resourcefulness, patience, focus, communication, drive, empathy, and a bunch of other traits that are rarely found all together in a single individual.
breadwinner · 9 months ago
No, intelligence is not the easy part. We are talking about uncommon intelligence and it is the hard part. And they ones that have it are often lacking in other areas, such as social skills. And the ones that have social skills, and other traits often aren't 10x.
greazy · 9 months ago
> For example, how many "normal engineers" would you need to replace an Ilya Sutskever?

I wonder what Sutskever would think if you asked him that question. I bet he'd point out several of his contemporaries that are more deserving of praise.

I'd argue there are plenty of Sutskever's out there who are normal engineers.

ausbah · 9 months ago
i think your flaw is conflating scientific research with software engineering
breadwinner · 9 months ago
There are plenty of hard problems that are unrelated to scientific research where you need more than just "normal" engineers. Look at the number of failed projects at big companies such as Amazon and Microsoft, they failed because "normal" engineers couldn't pull it off.
dilyevsky · 9 months ago
The key sentence in article imo:

> We place too much emphasis on individual agency and characteristics, and not enough on the systems that shape us and inform our behaviors.

This is just author trying to impose their personal politics on their org. Popular sentiment among pmc unfortunately especially in the last 10 years of zirp

lolinder · 9 months ago
Systems thinking isn't a political belief, it's a model for the world that is incredibly useful in a lot of contexts. Some political factions may be more likely to engage in systems thinking than others, but that doesn't make it a political topic.
jes5199 · 9 months ago
my rule of thumb is that the average startup has no more than one novel piece of code, and it is usually one of the first things written. Then after that there’s enough plumbing and UI work to keep a few hundred regular engineers busy
nullpoint420 · 9 months ago
Most 10x engineers I've met are usually very creative and care deeply about the user experience and keeping code maintainable over time.

Most 1x developers just care about getting the job done regardless of care or code quality, which in my experience has led to conflict.

n_ary · 9 months ago
I believe, you have got the multipliers switched.

Most 1x engineers/developers care deeply about users and the end product, and also likes to keep the code well maintained and performant, so they can do their peaceful work and go home, while not making the life of the user any more miserable.

Most 10x engineers are too brilliant and remain busy rocking the boat and doing so many mind blowing things at any given time that the destruction trail is only materialising slowly once their presence has faded for a while and the remnants are being pieced together.

I think, we equate the frenzy with 10x(productivity & excellence) while the less creative and cautious ones tend to be the most valuable over long term with most boring stuff.

Of course to each their own, but the too many destructions of the 10x stars had made me very weary these days.

Nevermark · 9 months ago
Someone imagining they are brilliant doesn’t make them brilliant.

More so if in the light of day their work sucks.

Discussions about 10x engineers are not about “wannabe 10x engineers”.

I have yet to come across an intellectual area where there isn’t a long tail of higher talent.

As the “x” goes up they just get more rare in reality, and even rarer to see. Because they are not always being optimally challenged. Most problems are mundane. And optimally challenging workers isn’t really a business plan for anything.

I think there is such thing as a 10x problem, which you have to find before your 10x engineer really shines. Identifying hard but exceptionally valuable problems to solve takes 10x vision. And time and luck.

whstl · 9 months ago
Wait... "Most" 1x engineers? "Most" in any profession will be average. Which is completely normal and fine.

This kind of reply is just flipping the stereotype and going in another insane extreme without any evidence at all, just conflating productivity with recklessness...

gmm1990 · 9 months ago
Are there any open source repositories where this is an example? I keep hearing the 10x people ruin everything but I wouldn’t call that person 10x. I don’t understand how it’s objectionable that some people are more productive than others.
YetAnotherNick · 9 months ago
Hard disagree. If they don't consistently write maintainable and reliable code, they are not 10x engineer no matter how smart they are.

e.g. Linus is a classic 10x or 100x engineer and his code(Linux, Git etc) has been maintained by a completely uncoordinated team for decades.

CrimsonRain · 9 months ago
Most "1x" engineers are a drag on the business. Complacent. Don't care about business goals.

And the 10x you mentioned are not 10x. They are 1x with frenzy.

If one is not multiplying the team output, they are simply 1x or lower (maybe a few exceptions)

jillesvangurp · 9 months ago
And lets not talk about the 0.1x developers who are probably also a thing. If you get enough of those together, team productivity completely collapses. I've seen that happen.

1x is normal. Some people are less, some people are more. Normal is good and predictable. There's nothing wrong with normal. Normal people that put in a decent effort will produce results. That's a good thing. For a lot of long lived software, normal is what you want. You can't reasonably ask normal people to be more than normal. That would be abnormal. Putting in 120% of your best is not a thing. It doesn't work that way. You are doing pretty OK if you are getting 70-80% of your theoretical best. That's what normal is.

There are of course people who are a bit more capable than their average peers. This is often confused with working long hours. The ability to work longer is mostly something young, relatively healthy people are good at. But there's a difference between working longer and working smarter. You can't work 10x more than a normal person. There's only 24 hours in a day. The only logical way to get 10x more done is to work smarter. There is no other way. And some people really just are that good that they get more work done in the same amount of time. Part of that is experience, brains, and just being really efficient with their time.

An exhausted 10x developer is not a 10x developer. Because they'll be perpetually too tired to work smart. So they might be producing a lot of code but it will be the type of code that will need a lot of maintenance. A true 10x developer consistently writes less code with high impact without wearing themselves out too much. Doing that requires skill and experience. The best code is code you don't have to write. Use the right libraries, avoid reinventing wheels, make your code testable (so you don't get bogged down debugging it), don't repeat yourself, etc. If you find yourself doing the same thing over and over again, automate it. That's your job. Don't keep on doing the same thing. That would be stupid and somebody else will do something smarter eventually.

Izkata · 9 months ago
> And lets not talk about the 0.1x developers who are probably also a thing. If you get enough of those together, team productivity completely collapses. I've seen that happen.

> 1x is normal.

IIRC the post that came up with the 10x and 1x terminology used 1x as the worst performer. Normal/average was somewhere in between 10x and 1x.

The change to 1x being average in the common understanding seems to have happened because even the people criticizing it have an intuitive understanding that it's correct, they just want the boundaries somewhere else.

TZubiri · 9 months ago
I think multiple 10x engineers will fight amongst themselves, and that is good.

You don't have a 10x without there being a 0.1x engineer. And we can't all be right.

jajko · 9 months ago
I've rarely seen those 10x engineers to bring massive long term added value. Most are/were well aware of their skills and detested working on anything but newest and shiniest, desperately trying to make work a fun park for them regardless whether its actually a good idea for the company giving them paychecks.

Which works for some time, or when extensively coached, but eventually they move since their time is oh so precious and now you have the rest of the team to work with their work. Not that great.

Then people wonder or complain when business doesn't appreciate devs. How would you look at folks who are critical to your success yet often don't have your company's best interest at the center of their efforts.

To use your terms, those 1x devs always end up maintaining and evolving that code of 10x guys. Their velocity with changes is massively lower and error rate is significantly higher compared to code created by 1x devs. This is what business sees and there is not much love for that.

lysace · 9 months ago
> I've rarely seen those 10x engineers to bring massive long term added value.

I've seen it first-hand. We ended up building a support team around the 10x:er to keep things working, but it was easily worth it. It worked very well for the life span of the product - about a decade.

Many eventually graduated to pretty fancy places. They learned a lot. This particular 10x:er loved sharing knowledge via pair-programming.

Well, he was always in command of the keyboard (typing insanely fast), but you'd sit next to him and he'd delight in explaining. Eventually you would challenge him on something and then the collaboration/adventure began.

I have had the most intellectually exhilarating times of my life working with this guy.

So yeah, 10x:ers can bring massive value if they are wired to be really nice.

Muromec · 9 months ago
>Then people wonder or complain when business doesn't appreciate devs. How would you look at folks who are critical to your success yet often don't have your company's best interest at the center of their efforts.

Does the company have my best interests at the center of their efforts or I can be shown the door at any given moment to please shareholders? No hard feeling pls, it's just business and I have only one life to enjoy.

iwontberude · 9 months ago
I like 5x developers that get the job done and don’t spend the additional 5x over engineering the work — causing the 1x engineers to disengage.

Some engineers have an obsessive, sometimes compulsive, nature which is actually at odds with the business. These types usually spent a large amount of time in institutionalized learning settings and will be far more opinionated about how their labor is allocated.

nullpoint420 · 9 months ago
Agreed. I prefer collaboration between engineers, regardless of Nx they are.
ljm · 9 months ago
Fuck this constant dehumanisation and categorisation of the working class.

The key to a great team is great leadership.

Most people are terrible leaders, and they think that what they are worth is what makes them leadership material, even though they didn’t earn that worth themselves and didn’t put in a hard graft.

The key to a great team is a fucking team. Only then can there be a leader.

Let’s talk about ‘normal’ CEOs, 10x CEOs, and for that matter, ‘retarded’ CEOs, considering a particular one of them favours that insult. That’s the implication of ‘normal’ in scare quotes no?

gtsop · 9 months ago
I agree with your intent to introduce the angle of leadership and in particular the CEOs since it is well established that people can't properly evolve and thrive under a leadership that is rotten.

Having said that, there is also something to be said about engineers who consistently cave into management pressure not because of brute force management tactics, but because the engineers themselves haven't spent the effort to build confidence into good engineering practices that will allow them to both fend off pressure and deliver better work. I see people complaining: "oh the company we work for does this, that, the other, irrational things". Yes this is true, but what are you doing about it.

Do you expect higher ups, detached from reality and practice, to drive your working processes in a rational manner? This can only be the exception and we all know it. There are exceptions that proove the rule

ljm · 9 months ago
Yes, I do, I expect leadership and management to be better.

It doesn't happen very often, but when it does...

It's never an execution problem, it's a management.

Deleted Comment

interludead · 9 months ago
Yep, you're absolutely right that leadership is often the real bottleneck in building great teams
gatinsama · 9 months ago
There are no "normal" engineers. There are many terrible developers who can't fizzbuzz, a bunch of decent programmers, and a few software engineers who understand what they are doing. And then... the 100xers like Linus. It's pyramid-shaped. If the author is referring to people who understand what they are doing as "normal" engineers, granted, you can make a great team out of these... but how do you find many of them in the first place without bumping into the others?
Juliate · 9 months ago
Not of that opinion.

I met great engineers or developers who won't even care to answer a fizzbuzz-type question.

I met terrible ones who had top technical and math capabilities but little agency at pointing what is relevant or not in their work.

Even considering it's pyramid-shaped is excluding all the externalities that make one person thrive in some contexts, and just flat or negative in others.

Take a top performer, if he's not in the right position at the right time, nothing will happen. Conversely, someone not so good, but being in the right place at the right moment may nudge things in the right direction.

That's exactly around what I understand the OP develops in her article: engineering, building is a work of teams, not individuals. In a team, people come and go, roles are different, shift with time and progress. "Terrible" people become "excellent" and the other way around, that's life.

Perfect performance all the time isn't even what we require of machines, because then they (or systems they relate to) break faster. Why would one have the same expectations with people?

rachofsunshine · 9 months ago
"There exist exceptions to a trend" does not mean the trend is not a valid proxy (see [1]), and "refuses to do fizzbuzz" is different from "can't do fizzbuzz".

I run a technical recruiting company, and we ask candidates a question like [2] on our interview (EDIT: we ask other stuff too, this is only part of it). It's not exactly fizzbuzz, but it's really not far beyond it. A candidate we interviewed just a couple days ago took that problem and couldn't even complete the first step. This is the equivalent of asking someone applying for a job as a statistician what the distribution of the sum of two normals is, or asking someone applying for a job as a con-law lawyer what the fifth amendment is, and having them go totally blank.

Is it conceivable that they were just having a rough day and their brain hiccuped really badly? Sure, I suppose. If we did ten thousand interviews, we'd probably have at least one person who is objectively great perform that way.

But would you bet on that? Bet your team, your product, your company, your mission, whatever is important to you, on their ability to get things done? I don't think you would. And hiring (and everything else in business) is about making good bets, not about batting 1.000.

-----

[1] https://news.ycombinator.com/item?id=43006330 [2] https://www.otherbranch.com/shared/practice-coding-problem

arkh · 9 months ago
You also have force multipliers. Which can be some managers: people whose presence on a project will make decent software engineers produce like a 2x one.
atoav · 9 months ago
To start with, there are engineers who deserve the title engineer. You are probably better of to hire a former civil/electrical engineer that can fizz-buzz than someone that can just fizz-buzz.

Coding and productivity are one thing, but engineering in the end is a lot about having a certain awareness of the impact your technological choices have on a project both in the short and long term. I'd rather take someone who has this awareness, than someone who hasn't, even if the person in the latter category would be slightly better at coding.

alecco · 9 months ago
Agree. The required abilities multiply rather than add so the right tail extends much further than a normal distribution. The gap between median and top performers is extremely large.
alecco · 9 months ago
Please read that the right way. Deliberate practice compounds exponentially. Those extra hours refactoring, contributing to OSS, or mastering systems design create 10x impact through learned architectural intuition that median devs never develop. Your new skills will go a long way.
datadrivenangel · 9 months ago
The 10x programmer is based on research cited in the Mythical Man Month, and there the most productive programmer was 10 times more productive than the least productive, as far as time taken to complete a coding task. The most productive were ~3x faster than the mean/median programmer.
interludead · 9 months ago
There's a huge middle ground between "can't FizzBuzz" and "100x Linus-level genius," and that middle is where most functioning engineering teams live
gatinsama · 9 months ago
Yes, but it's way more on the can't fizzbuzz side. Our view is skewed because of the people we work with. If you have an extreme Pareto distribution, talking about "normal" is not helpful.
TZubiri · 9 months ago
Engineering work, like many other branches of intellectual work, does not have many of the properties of other jobs. So I don't share the ideal of a normal engineer doing normal work in their office hours.

I also don't buy into the 10x pushback, there's not only 10x engineers, there's 100x engs. Easy to prove, can you think of an engineer that adds negative value? That deletes tests, or breaks stuff? That adds left-pad to package.json? Or log4j? The bigger the org the bigger the damage. Boom, you have a -1x engineer, and conversely a +1x engineer. If they do a lot of damage that's a -10x engineer. If they do some damage and contribute a little bit maybe they can get into positive numbers, and you have a 0.1x engineer, therefore there exist 10x engineers (and 100x and 1000x and inf and -10x engineers.)

I do agree that performance is not quantifiable (or very hard to quantify) and that it is not a property of an engineer ( although the article suggests performance is a variable of teams or the org, but I would say it's a property of the engineer-product pair)

mbernstein · 9 months ago
These are terrible examples that don't prove a single thing. Babel, Webpack, and React all used leftpad as dependencies. Blaming someone for using an Apache project is absurd.

Here's my pointless randomly made up on the spot anecdote - you're more likely to write a vulnerability in your own logging system than being impactedby using a widely adopted opensource one.

Dead Comment

flavio81 · 9 months ago
>Easy to prove, can you think of an engineer that adds negative value?

Yes, i have many examples. Two of them I personally fired. One of them, I should have fired much early. I let this engineer basically add negative value by trying to make his peers (other engineers) finish the work it was delegated to him, thus creating negative value by preventing the other, highly productive engineers, to do their tasks.

I warned him not to do this, but he didn't heed. Sadly due to Human Resources the firing process took way too long. I should've acted earlier.

djeastm · 9 months ago
>Easy to prove, can you think of an engineer that adds negative value? That deletes tests, or breaks stuff?

No. Have you really worked with someone that did this and they weren't fired?

soulofmischief · 9 months ago
Yes. He was the CEO of the company and I have stories that would keep you up at night.
TZubiri · 9 months ago
I'll change the perspective so that we can look further.

Have you ever seen a product that got worse over time instead of better?

I find that it's the majority. Even if they get sales and more users. I'll list the exceptions: whatsapp, and even they succumb to bloat features like ai slop or stories or "communities".

If you take a wider period, all software gets worse with time(they die, nothing is forever).

buryat · 9 months ago
it's like cancer, it keeps replicating

Dead Comment