The AI impact on software industry will be more profound than we anticipate

Ivan (Jonan) Georgiev
8 min readJan 14, 2024

--

Photo by Fiona Murray on Unsplash

TL;DR

The advances in AI will change IT industry much deeper, not just because many tasks will be automated, but because they won’t be needed in the first place.

M y ex-wife was convinced that our son should know how to write software, and that will keep him “safe” for a job.

“Master typewriting and a language, and you’ll always have a job”, her father had told her. Well, knowing English, when this is not your mother tongue, definitely helps, but I’m not sure she has ever made a single penny with typewriting.

Typewriters were around, when I was a kid, and we too, had one — permanently situated under the bed. And, although I was in my early teens at that time, I clearly remember a conversation between my dad and a relative of ours.

He was a professional translator — fluent in English and German (which, again is not our mother tongue), and was typing for a living to say so. Computers were already around — and not the very first ones, but an Intel-based x86 architecture ones, with MS-DOS, Word processing, etc.

However, our relative had just bough a professional typewriter! Ok, a “modern” one — with (somehow) interchangeable fonts, assisted typing, and so on, but I still remember how difficult was for my father (an electrical engineer himself) to understand why such a device is still in use?! I’m pretty sure that it wasn’t in use for long, indeed.

I recall this now, when arguing with colleagues of mine, from IT industry, about the profound change that is about to happen — it seems, often the people deepest in a field are most oblivious for the upcoming changes. Remember — my relative was making his bread, typing.

One of my favorite quotes is from a famous hockey player — Wayne Gretzky:

“A good hockey player plays where the puck is. A great hockey player plays where the puck is going to be.”

And, although the AI threw the puck in quite a distinct direction, I’ll try to break down the driving forces it creates, by elaborating a bit on three main aspects of the software industry:

  • The actual process of development — code writing.
  • Types of problems, requiring software solutions.
  • Interaction with the real world.
Photo by Lenny Kuhne on Unsplash

Code writing

This quickly became quite a boring topic. Amazed by the leap OpenAI made with ChatGPT 3.5, I’ve started some experimental projects of writing code from description, automatic solving issues in GitHub, etc. a year ago. So did many other people, and already there are numerous projects that employ that approach, and even the biggest sceptics, started using CoPilot, and are enjoying it.

Yes, most of these projects are not mature yet, and still require quite a lot of human interaction. Many of them are trying to solve the one-sentence-description problems — like “Make a snake game in Python”, which is cute, and sometimes amazes, but far from practical and, honestly — meaningless.

In order to utilize the new power, a change in the workflow is needed, and new tools as well — fine-tuned custom models, real test-driven development, task descriptions becoming part of the source, etc. — many details in each aspect, making it a good candidate for a dedicated article. Stay tuned!

All in all, coding will be automated — not entirely, perhaps, but largely for sure.

Photo by UX Store on Unsplash

Problems that software usually solves

For me, this is the deepest movement that AI (will) create in the industry, and one of the least discussed and anticipated ones.

The types of problems software usually solves, are exactly the types of problems a generic, pre-trained large language models can solve best.

The very need for many of the software solutions will disappear.

According to different sources — either by looking at software industry revenues by types of software, or by checking the software engineering market share by industry — more than half of the software engineering happens for enterprise and productivity applications, and the easiest way to get a description of types of tasks such software solves, is to check the functionality of a typical Enterprise Resource Planing (ERP) system.

A non-exhaustive list of tasks a ERP system solves, based on the Wikipedia article, include: finances and reporting, human resource management, projection… well, let’s directly address them from AI perspective:

  • Integration and Automation are quite literally what the whole subject is all about — for example, even as of this writing, the OpenAI functions/plugins already provide good means of linking with external tools, big integration (and automation) players, like Zapier, embraced and utilize the new AI tools. I don’t think much persuasion is needed to convince someone that AI tools are going to make integration and automation way easier, in a much broader and user-accessible way.
  • Data analysis and Reporting are another two examples of what AI tools are already being used for. Data analyst is often used as a synonym for someone, who understands how machine learning works. It is important to understand that even now, the majority of real value in these two fields lies within defining what to be analysed and reported, and it depends on domain knowledge, and has nothing to do with software development itself. Actually, the need to communicate this to a developer, in order to get the functionality done, is usually the bottleneck. Using an AI agent will definitely render all this process obsolete.
  • Accounting and Finances, with the former usually being standardized at a government level, and not requiring a lot of new software, and the latter, again, much more focused on the expert-defined meaning, rather than the actual software tools. From technical and mathematical point of view — there is nothing really complex in these areas — in both cases, the work usually goes in integration with other tools, and communication with IT guys, which again can be achieved easier through an AI agent.
  • When it comes to Customer Relationship Management, I’m pretty sure that majority of the entrepreneurs that decided to integrate such a system, would be much happier if they could have stayed with their Excel sheets but, somehow, put them “on steroids” and make them smart, so the tedious tasks can be automated, but all the flexibility remains. Sales people don’t like frames (so does the market), and this is why all CRMs tend to be overcomplicated — meeting the framing needs of current software paradigm, with the flexibility of its users. Sales people would love to communicate with AI agent and sheets, instead.
  • It is not quite the same with HR people, although there are similarities, and it’s actually pretty tight with compliance related tasks. Again, the majority of the added value lies outside of the software development realm, and a proper data-aware, or RAG¹-ed agent can serve these tasks quite well.
  • Project management is pretty vague term, and it either includes all other activities mentioned here, or has a more focused definition of time and expense management. Until quite big size, the companies are doing this with (again!) Excel sheets and calendar app, with the latter being the ultimate personal time management tool. Also, quite commonly interacted in automated manner.
  • Manufacturing and Supply chains management is something that has a much higher interaction with the real world aspects, thus making it less prone to AI replacement, but this is the topic of the next chapter.

With all this, I am not saying that the process of creating software will disappear. The development of more fundamental tools like databases, networking, infrastructure, security and encryption tools, etc. — is here to stay for long, mainly as a backbone of everything that comes next. Just like electrical engineering, and similarly — not as the cherry on the cake.

However, I can clearly imagine how a systems architect sketches and selects those basic, building blocks, and lets the a properly trained AI agent, to glue them together and deliver the final, customized solution. This is what majority of writing software is today making these parts work together. And it’ll become obsolete.

Btw, this type of development is usually done in Java or C#, hence my previous article.

Photo by Specna Arms on Unsplash

Real world software

The third driving force, is how related the piece of software is to the real world — to the non-deterministic, non-formalizable natural world. There was a nice article title few months ago, which was something like this:

Why AI can easily write a poem, but struggles to climb a stairs?

Because — from certain perspective — it is harder to keep the balance, while climbing a stairs. Big parts of our brain, btw, are dedicated to motor skills.

Boston Dynamics, the best robot producing company in the world, funded by the USA military, being under the Massachusetts Institute of Technology for quite some time, managed to develop their robots to be more “robust” to the environment after decades of development. And still the results are far from what an average human being can do. Very far.

In the light of software development, that makes me think that the more one is involved in real-world related type of development, the less probable is AI to take over — embedded developers, in this sense are much safer. Their expertise just stretches way beyond the virtual world of the software, and they (must) have good understanding of technicalities of completely different matter.

Another part of development process that is closer to the real world, and is much, much bigger is actually UX development — making something aesthetic and ergonomic is not a trivial task. It involves a lot of creative decisions. However, majority of these decisions are made by the UX designers, not the developers. Combine with the fact that frameworks and software languages involved in front-end development, are so popular — they are among the best to be consumed by the LLMs.

Conclusion

I don’t see the perspective of AI replacing software developers as a reason for fear, or any kind of threat. Automation has always replaced human labor, and I don’t see anything dramatic this time either.

The biggest concern is not that AI will take a lot of jobs, the problem is that so many jobs are replaceable with automation — clerical and depleted from creativity.

And, as the essence of software development has always been to develop tools, that solve real world, human problems, using this new machine, called computer — similarly will be in the next chapter: solving real world problems, with this new “machine” called AI agent. And, just like with the raise of software, there is an explosion of new concepts, tools to be mastered and new horizons to be reached now.

The sooner we start to look where the puck is going to be, not where it is now, the less we’ll be surprised by the ever changing reality. And yes, I’m not pushing my son to be a programmer, like his father — there are better things to be learnt — even in this area.

But, that’s a topic for the next article.

[1] Retrieval Augmented Generation — when task-specific data is provided to the AI agent, and specifics in the answer are heavily based on this data, while the understanding comes from the model itself

--

--

Ivan (Jonan) Georgiev

Socially concerned, moderately optimistic, indie software developer & researcher.