The software industry has been abuzz lately with the new wave of AI. For the first time ever, LLMs are available to the public market, such as OpenAI's ChatGPT and Google's Gemini. Simultaneously, exciting people about the array of new opportunities and worring workers about the thought of becoming obsolete. Personally, if I read one more aticle about how AI will replace all knowledge workers, I'll rip the cord from my WiFi router. This is not one of those blogs. I called this blog "The End of Artisanal Software" because I believe the way we will produce software will fundementally change forever with the use of AI code generation. Hot take I know. With the use of AI, software quality will no longer be a direct indication of experience or skill. AI will give programmers and non-technical folk alike the ability to produce "good enough" code to get the job done in most situations. So to compensate, software will be an industry more focused on process than individual skill.To be clear, I don't believe less jobs in software will exist and I don't believe all knowledge work will cease to exist. In fact, AI will produce more jobs and greater opportunities for most people.
As a preface, I'm a professional who works in the software industry therefore I have a vested interested in how it develops. Further, I'm not in the prediction business, so this is really just conjecture. I wouldn't place any bets on these predictions coming true, I really just wanted to spend some time reflecting on how building software will change.
All that said, let's get to it.
AI, at the current moment, is the best pair programmer in the world. It can generate boilerplate in seconds, give you comments on how your code can improved and point out potential vulnerabilities with the code. The code it produces is flawed and the suggestions it makes are not always correct, but both these things can be said of most juniors programmers as well as the least skilled programmer at your office. Once you test the results and see it is unsatisfactory, you'll just go back to the AI to generate more code or tweak it yourself. In this scenario, the AI has solved the most expensive and time-consuming part of the problem, getting started. Editing code, even though tediuos, is often faster than trying to map out the entire system in your head. Also, this will really help folks who get stuck in the planning process of coding, now building the first draft takes seconds not days.
There is some worry that AI will make everyone's code worse, but I think the worse code is code that is never written. There are so many features that don't get built simply due to the fact that developers currently don't have the time to buid them. With AI, increasing the productive capacity of the average developer, there will be a lot more value delivered for users. That in my opinion, is worth the decrease in code quality we might be seeing in the near term. That doesn't even take into account the fact that LLMs can get better over time. So it won't always be the case the code quality produced by AI will be low.
AI could also generate unit tests much more quickly and consistently than a developer. Unit tests are often don't help you understand all the difficult parts of a system so if the AI could generate those tests, the developer can spend more time on higher value tasks like integration testing and automation.
Upon working with AI, I don't think it's direct competition is with developers but with StackOverflow. Any developer will tell you "the stack" has been immensely helpful in their career, both in gaining an understanding of tech, answering specific implementation questions or providing code that can be copied straight into production. I mean, let he who hasn't copied something they haven't fully understood from stackoverflow cast the first stone. AI can provide more targeted examples to developers about solving there problems without the stigma you find on the stack
The average stack overflow experience.
Finally I think AI, will make finding application vulnerabilities much faster. Thinking of complicated edge cases is half the battle, which AI can help with. Plus once the vulnerability is identified, AI can help code the solution.
A lot of resistance to AI is from programmers who have a lot to lose if AI becomes commonplace. That's not to say there aren't good arguments against AI in its current state, but all of them are solvable. I think a lot of the resistance comes down to people not liking the idea of change and being scared that their place in the world is threated. After all, AI will be a change equal in magnitude to any previous work revolution.
I think to get a better understanding of how if AI is transformational and what will become of programmers in society not just the workplace, we have to look at huge work transformations in the past. Analysizing those past tech revolutions will give insight into the current AI revolution. For an example of a similar situation, look at late eighteenth and early nineteenth century United States, and the rest of the world for that matter. In these societies, skilled works were known as artisans. There labor was expensive and difficult to reproduce making them highly sought after and well-compensated in comparision to less skilled workers, much like programmers and software engineers are today. Then during the Industrial Revolution, the advent of new technology meant that the average skilled worker could produce quality similar to that of an artisan and at a higher rate.
This lead to what was considering deskilling in labor circles and by labor economists. Where the barrier to entry fell leading to a higher supply of labor, suppressing wages for these skilled artisans. In laymans termns, no longer could an artisan charge high prices because newer less skilled workers could complete the same work while demanding a lower wage. The Industrial Revolution did eliminate some niche jobs, but also created a huge score of professions. Not to mention there are now more weavers, bricklayers and manufactoring workers world-wide then before the Industrial Revolution.
The collorallary to modern AI developed code should be clear. AI will might eliminate some hyper-niche positions but on the whole it will create more jobs and value than it will destroy. Once AIs becomes "good enough" producing code will become the job of anyone with language skills. The code produced might be low quality but the cost of replacing such code also goes down. Since this is trival, a lot of people who would have shied away from the industry will now be successful engineers and programmers. This is already happening with writers who create ad-copy. Instead of having a human write the whole thing, an AI model generates the first draft and a human edits the result. So in the future, AI will develop the code and the programmer will test the results, tweaking as needed. If this sounds foreign or impossible to you, it might be due to the fact your work on highly novel software. But if we're honest 90% of development jobs are CRUD web applications. AI surely, can produce something passable in this space given enough time.
The main impact on programmers is they will have to learn more skills in order to continue to justify their high wages. If you are only a Tailwind CSS dev or a Java 8 dev, then AI might seem threating because of it's ability to pick up specific tasks quickly. So theoricitally, those devs could be replaced. However, the solution here is simple. These developers can use AI to learn new skills quickly in order to continue to be employed. There doesn't need to be a reason why they are left out from the AI revolution.
In short, AI will drastically improve the output of a developer and make the job of becoming a developer easier. More features will get built and as a result more value will be generated. There is some abstract worry around AI safety, code quality and sustainability but those things are solvable probems that will not stop AI from being dominant in the future work place. I think if you're a programmer and worried about AI taking your job, then don't be but it will change the nature of the work you do. It might even lead in a decrease in wages, but full out replacement is not an option. If you wish to keep the high wages that are in the industry now, then you have learn to use AI to your benefit or it will be to your detriment.