Generative AI vs. the software developer

opinion
Feb 19, 20256 mins

AI isnโ€™t going to replace you. But a developer who knows how to leverage AI in the development process just might.

If you arenโ€™t aware of the tectonic shift that is generative artificial intelligence, then I can only assume your phone has been on Airplane mode for the last year. You canโ€™t swing a laptop bag these days without knocking over four startups doing something with AI. And that is great โ€” itโ€™s amazing technology that will apparently either solve all the worldโ€™s problems or wipe out mankind. Few folks seem to land anywhere in the middle.

And of course, we software developers are seeing the costs and benefits of leveraging AI in the software development process. Some believe that AI is going to put us all out of business, and then there are the rest of us who are driving up our productivity by using the new tools that harness AI for writing code. 

I donโ€™t think the issue of using AI coding tools will ever be as complex or as simple as folks seem to believe.

Better, stronger, faster

I can remember when CASE tools were going to come for our developer jobs. Just write a design specification, drag a few boxes around on the screen, press a button, and โ€” poof! โ€” out pops your application! Sound familiar? 

I see much of the same hype surrounding โ€œno-codeโ€ tools.  Once again, these tools purport to have wrapped up all of the functionality of applications that let you build applications with all of that functionality. But again, the limitations of the boxes that you drag around and piece together become limited once you get down into the nitty-gritty of your business rules. No generalized solution can be perfectly pieced together to create the exact special application you need.

CASE tools didnโ€™t eliminate developers then and I feel confident that no-code tools and AI arenโ€™t going to eliminate developers now. I donโ€™t think there is some magical prompt that you can write that will create your app in five minutes. There are just too many variables, even in a fairly simple app, for you to be able to describe in words. You might get a good start on an app, but for any significant project, there will simply be too many nuances that canโ€™t be expressed in English.

There is a way to write out the exact specification for precisely what you want your app to do โ€” itโ€™s called, you know, โ€œactually writing the code.โ€ And it is in the process of human developers โ€œactually writing the codeโ€ that AI can truly shine.

AI is not going to turn your customer support people (Elvis bless them) into senior software developers. A customer support person might be able to think โ€œI need to track the connection between items in inventory, the customerโ€™s shopping cart, and the discount pricing for a given item,โ€ but unless that person also knows how to code, they will have a seriously hard time instructing an AI model to generate the code they need. Most likely, they arenโ€™t going to know if the code the AI produces even runs, let alone works correctly.

But AI can help actual developers in many ways. It can look at existing code you have written and help you produce the next thing that you need to write. It can even write large routines and classes that you ask it to. But it is not going to create the things you need without you having a large say in what that is. You need to know how to craft a prompt to get precisely what is needed. Thus, AI isnโ€™t going to replace you, itโ€™s going to make you like the Six Million Dollar Man โ€” better, stronger, faster

Learn to code โ€“ and to prompt

My experience with tools like GitHub Copilot is just that. AI isnโ€™t going to create complete and finished applications out of whole cloth, but because I am an experienced developer, I know what to ask it for, and I can tell if what it has given me is correct. In other words, I know what I need to know, and that lets me leverage AI to do the work for me.

Hereโ€™s an example. Consider this prompt:

Can you write a TypeScript React component for displaying user profiles, with props for name, email, avatarUrl, and bio? The component should include basic Tailwind styling and gracefully handle missing or null values. Please include a brief test suite using Jest.

Now, that prompt will be pretty effective in getting what is asked for. But the trick here, obviously, is that you have to know what a React component is, what Tailwind is, the fact that you want tests, what TypeScript is, what null is, and that youโ€™d even need to handle missing values. There is a lot of knowledge and experience wrapped up in that prompt, and itโ€™s not something that an inexperienced developer, or certainly a non-developer, would be able to write. 

(For what itโ€™s worth, I submitted that prompt to ChatGPT and it did a decent job of producing what I asked for. It got most of the way there, but the result needed some tweaks and changes that only an experienced developer would know to do.)

Thus there is one thing that AI can do well โ€” drive up your productivity. It can take what you already know and do most of the grunt work of writing code for you, but only because you are skilled enough to ask for the right things and know what is wrong with the output.

In the end, I donโ€™t think AI is coming for our jobs just yet. Maybe someday programmers will be replaced, but by then Iโ€™m guessing that people will have moved on to something more amazing. But Iโ€™m not worried about my job, and you shouldnโ€™t be either. 

AI isnโ€™t going to replace you. But a developer who knows how to leverage AI in the development process just might.

Nick Hodges

Nick has a BA in classical languages from Carleton College and an MS in information technology management from the Naval Postgraduate School. In his career, he has been a busboy, a cook, a caddie, a telemarketer (for which he apologizes), an office manager, a high school teacher, a naval intelligence officer, a software developer, a product manager, and a software development manager. In addition, he is a former Delphi Product Manager and Delphi R&D Team Manager and the author of Coding in Delphi. He is a passionate Minnesota sports fan, especially the Timberwolves, as he grew up and went to college in the Land of 10,000 Lakes. He currently lives in West Chester, PA, and can be found on the Internet at https://nickhodges.com.

More from this author