What can AI tools do today?
Software development has always been at the forefront of having advanced tools to make their lives easier. It’s only natural that the people building software to automate processses for everyone else also make sure to simplify their own work life.
The rate at which new products for software development gets released is so high that it’s impossible for anyone to keep up. Most tools are meant to make it easier to deliver new functionality to an end product faster and more reliable. I use the term tools here in the broadest possible meaning of the word since I consider new versions of programming languages and frameworks as new tools.
Today we’re at a point where it is usually fairly easy to start using a new tool and you don’t really need to understand how it works in order to use it. This is both good and bad:
- The good is of course that it’s really easy to start using new tools.
- The bad is that it’s really easy to use tools that you don’t really know how they work.
So among these new tools the tools, that get the most attention these days are tools that have some sort of AI built into them and they can truly do some amazing stuff:
- Complete an entire function for you just after you’ve typed its signature.
- Write code based on plain text descriptions.
- Automatically generate unit tests for your code.
- Take design documents and make them into working code.
Some of this has been around for a while and some of it is fairly new. The main difference with using AI to do this compared to traditional boilerplate techniques is that it’s actually beginning to be useful for real.
What is AI not able to do (yet)?
It is actually quite tricky to say what AI is not able to do, given the fact that so many new AI tools are released all the time. But in terms of coding there are a few things that AI is still not quite able to achieve:
- AI can not yet be trusted to write complete functions/methods. AI can already write decent code, but you have to know and understand that code in order to catch the mistakes that it makes.
- AI is still not able to write entire solutions or applications without a lot of manual labor.
- AI is limited in it’s ability to come up with new concepts or design patterns that don’t already exist.
This is really not that long of a list and it’s certainly doesn’t seem like very big problems, for the simple fact that they’re not big problems.
It’s also not that problematic, because just the fact that AI can’t do this yet, doesn’t mean it won’t be able to soon and I mean very soon.
There has already been a few announcements of AI powered coding tools that are not yet available to the public that basically promises to be able to do this. So we’re not a few years away, it’s more like a few months away. My guess is that by the end of this year you should be able to use AI for most things in software development.
The biggest obstacle to overcome in order to achieve this is that we need enough people to try it and use it to validate that it’s actually doing what it’s supposed to do, in a fast, scalable, reliable and secure way.
How will this change the role of the software developer?
This will benefit all software developers depending on how they learn how to use these new tools. To better illustrate this I will highlight a few different types (I know there are more types, but this is not the point) of developers and then explain how I think this will affect them.
The passionate master
This is a kind of person that truly is passionate about coding and has coding both as a job and as a hobby. In my experience all the greatest developers fall into this category.
These people will benefit out of using AI as they will be able to get all the basic coding done by AI and can focus on inventing new algorithms and architecture and fine tuning things. Where they before had to mentor less senior members of their team they can now act as a team on their own, with the same output if not more than an entire team could before AI.
It will take these guys a bit longer to accept the code that the AI produces since they usually don’t like to not be in control of the code.
This is the kind of programmer that has become very successful in their role and really know what they’re doing but are not passionate about it as the master and the treat it as their job and only a job.
In many cases they will now be able to elevate themselves to the same productivity level as a passionate master as long as they have the right mindset. The main reason for this is that in most cases there is very little need for innovation or hardcore architecture. Most software development is actually rather repetitive and simple, and a good developer with AI can do a lot more.
The site builder
These are the kind of developers that have kind of focused on building web sites using one or two different platforms. They’re usually not that great developers, but they don’t need to be. They can write a custom plugin to WordPress and they can style a website fairly well.
These guys will benefit a lot from using AI because now they can feel confident making more advanced plugins and also be confident that what they produce doesn’t break anything else or cause security or performance issues.
Unfortunately it is very likely that these developers will lose their ability to code after a few years of using AI, because they just won’t keep up the skill since AI will be writing the code. They will become great at instructing the AI what to do, but they will no longer write any of their own code.
The copy paster
This is a kind of developer that really only knows the basics of programming and doesn’t really understand the code that well. They have no problem at all using Google to search for a solution to their problem and copy pasting it in their solutions without really understanding it and see how it goes.
The world will be so much better when AI takes over all the coding for these guys, because they generally cause a lot of problems in the code since they just don’t understand it. They will also soon realize that all of a sudden they can do way more than they used to be able to and that will make them much more productive.
I also think that there will be an entire new breed of software creators that are more like AI Pilots than anything else. You still need people that understands the basic problem and can somehow instruct the AI, but that doesn’t necessary mean you have to know any coding at all. You just need to have a good understanding of business logic and logic in general. We’re going to need people that identifies problem areas and can come up with ideas for how to solve them, but they won’t need to be programmers.
AI will change the landscape of how software is being made in every part of the process. The change is coming sooner than we might think and we will all have to adapt in how we use this. Some people will become redundant, but since there is such an enourmous shortage of developers today…hopefully AI will help us deliver more value to our businesses