My Thoughts on the AI developer hype
AI is great at imitation. If it needs to do something, that hasn't been done before, it won't be able to do it, unless you tell it exactly what needs to be done. Even if your solution needs previously achieved things to be reused in a unique way, AI won't be able to come up with it on purpose.
Software development is about efficient problem solving. If a solution already exists for a problem, we tend to use it instead of reinventing the wheel. If you want to develop a new software, it's likely you want to do a few things differently, than others have done before you. AI can help with the generic repetitive stuff, but it won't be able to read your mind and implement the exact thing you want from just a few talking points. You have to tell it exactly, what you want created. I must emphasize: It's not a mind reader!
Even if it were able to read your mind, you're only human. While you might be able to come up with a great idea, it's probably so much in your focus, that you forget about the thousands of minute details leading to the realization of that idea. There will never be a time, where you just tell a machine 2-3 sentences and it creates exactly what you imagined on purpose.
We might be able to approach that. Some ideas can exist of basic building blocks, but we'll never get there totally.
Software development is so much more, than writing code. It's about understanding a problem domain and coming up with solutions inside that domain, to satisfy a need by the customer. There are so many moving pieces, which the outcome depends on. Without satisfactory communication, problems won't be solved. AI can't just jump in and solve your problems without you expressing them.
So you can't replace these parts of the software development process with AI fully. It might be able to help and alleviate some of the repetitive jobs, but it can't make your decisions for you. So the only place, where AI can really help is the thing that people are thinking about when they hear the word โdeveloperโ. Which is really the most straight-forward and probably most enjoyable part of being a developer. Writing code.
You read that right. It's the most straight-forward part. I know you who don't know, what a developer does think, that coding is some kind of magic, but it really is just a handful of rules, symbols and words designed to ease describing logic. Precisely and concisely.
Think about it this way: You want to get from point A to B. You need to decide what transportation method you'll use and which route you're taking. This depends on a few things you have to think about. The time it takes to get there, the cost, the environmental impact, your health, whatever. This is all done, before you depart. Coding is like walking or driving. You don't even think about doing it, when you are experienced enough. You just get from point to point. I'm not writing for-loops and if-s. I'm searching for something in a list. Coding is the easy part that everyone thinks is the main attraction.
Now that's what AI is helping with. That's what it can take over to some degree. But at that point you're just writing code in English. And believe me, English is not a good programming language. It's not precise or concise enough for software. Your probably better off writing in Python or some other coding language.
What developers currently do with AI is the thing, it can really help with. Remove the need to write boilerplate. Implement a well-known pattern or a search algorithm. Nothing to do with solving unique business problems, thus it isn't taking up the majority of our time anyway, but it's nice to have something that helps.
The saying currently goes: AI won't replace you, developers using AI will. This might be true.
My story above tells you, that โAI won't replace you, customers thinking they can code with only AI willโ. This is obviously a joke. They will try for sure and those who need a solution for one tiny problem, may even succeed. Slower and with more bugs, but they will create their apps. However that only means, developers can focus their time on things they're really needed for.
If you have a problem, that already has a solution, use it.
If your problem has no solution develop it.
If your problem has a solution that's almost good for it, the developer may use AI and deliver faster.