I usually like Noahopinion, but this all seems so wrong I feel like I should say something, except I’m not even sure where to start.
I spent pretty much my entire adult life writing software. I suppose like any specialist, what I really do is much different from what people think I do. This article also seems to have a, I dunno, romanticized view of what software is and what it has done for the world.
I would start by saying the real tech miracle is the 50 or so years of advancing semiconductor technology that made all of this happen. But that is a complex design and manufacturing industry that requires lots of capital and lots of highly trained experts, at nearly all levels. It doesn’t make for good stories in the mainstream media. I believe most people would find it all terribly boring.
Software is sort of the icing on the cake. It takes little capital and perhaps even less expertise and training to be successful. Hence the stories of heroic startups and founders. Yes, there was a time software was able to capture lots of value at insanely small incremental cost. Much of this may have been due to various legal and regulatory issues than anything else.
To the nuts and bolts of what happens in a software development environment, in the Real World, it is probably difficult for many outsiders, and maybe even many insiders, to understand. At the root, it is a human labor intensive process. Except the labor, unlike in a factory from earlier eras, isn’t interchangable.
Many managers pretend, or perhaps even believe, that programmers are interchangable and easily replaceable, and the truth is the vast majority are. But these are also more or less disposable workers, too.
It is a much quoted and discussed “fact” that programmer productivity varies by 10x. Anyone who has done real software development will tell you that this is probably an underestimate. So why not just ditch the other programmers and keep the 10xers?
As crazy as this sounds, it is difficult, particularly for non-experts, to recognize real talent. It would be like asking why a record company doesn’t just hire musicians who all sell lots of albums. If only it were that easy. Same with software. Maybe worse because even looking at previous work might not tell you what you want to know about the skills of a particular programmer.
So what to do? The Shotgun Approach is standard, if never admitted, approach. Hire as many programmers as you can and hope one of two pull through for The Team.
If this all sounds far fetched, here is another well known “fact” from the software world. At least 70% of all software projects fail. By fail, I mean abject failure, spending entire budgets (or more) and producing zero. Nothing. Nada. People outside of the software field may wonder how this is possible. It’s ok. Everyone else does too.
When offshoring became big I used to joke that it will save tons of money. All those projects will fail more cheaply now. And it’s probably more true than funny.
So I approach this “AI is gonna replace all the programmers” with the some cynicism. Replace the 70% of failed projects? I bet AI can fail very cheaply. Even cheaper than teams in India. Replace the 90% of programmers doing 10% of the work? Again, you don’t know which ones those are, but maybe AI can figure that out for us. But once you have trimmed away the deadwood you still have 90% of the work left to do. Maybe AI will replace the 10x programmer. Nobody seems to want to touch that one.
I was going to go off on the whole idea that software these days isn’t so much written as cut-and-pasted from other sources (programmers smile and nod). I’m sure AI can help with that. But not much. And then what happens when things don’t work? Or inevitable bugs are found. Who gets to dive into this machine-written code and figure out what went wrong? Finding your own bugs is hard enough. I don’t wish that on anyone.