Developers should be flocking to ChatGPT not running from it
Artifical Intelligence (AI) is getting a lot of press these days and one utility, ChatGPT, is probably getting the most hype. What is ChatGPT? Well, let's ask ChatGPT.
That's a word salad for some people so explain it to my mom.
Now that makes more sense, right mom? The key takeaway here is that ChatGPT, which stands for "Chat Generative Pre-trained Transformer", is "like a smart dictionary or encyclopedia". It is really good at finding information that already exists and playing it back to you. The better you are at asking for information the better the results will be.
So if that is all ChatGPT is then why do people think they will lose their development jobs?
There are a couple of reasons. First, most of the people who write articles, blog posts or tweets about how ChatGPT will replace developers have either never actually used ChatGPT to create code or never actually wrote code themselves or both. They are simply another voice in the echo chamber we call social media.
Second, for simple, repetitive programming tasks, there is no need to reinvent the wheel. Just ask ChatGPT for the code or instructions and you can move on. So if your job is performing simple repetitive tasks, maybe you should be worried. But most people in development are doing much more than that.
Here is an example. How many times have we had to standup an Apache server? There is no rocket science to this so just get it from ChatGPT.
Now if I have little to no experience with Apache or IT in general, I would probably think this is all I need. But those with experience know that there is a lot more security hardening to do. So the work is not done but this is a good head start that should save a lot of time. However, you could first teach ChatGPT what your company's security standards are for Apache and then ask it to generate the instructions and you will be even further along.
That's cool but I still don't see why ChatGPT is so hyped.
Well, that's just the start. Here is an example of building a simple web page using ChatGPT. I want to build a simple web page that asks the user for a stock symbol and returns the real time stock price. Let's see how ChatGPT does (for this example I am using version 3.5...wait until you see 4.0!).
First I train ChatGPT on my coding requirements or my style. I want to see comments, test harnesses, good coding practices, error handling, etc.
Here is what it gives me.
Wow, that's cool. But wait! It didn't listen to my preferences. Oh, maybe I need to be more specific. Let's try again.
Well look at that! Fully commented, error checking, test harnesses and good formating. You might say, "Come on Mike, that's really basic stuff. There is so much more to do with this code". You are correct but that is because I gave it very basic training. The better I train the engine the better results it will give me.
Think of hiring a very smart and resourceful intern. Would you tell them to go create a web page and expect to get something extremely close to what you want? Or would you need to give them training on your company's policies, standards, archetypes, patterns, etc.?
You might say, "But geez Mike, that's a ton of work on me to train the engine. I'll just do it faster myself." Well, I have good news for you. The major technology providers are building their solutions on top of ChatGPT so you can establish your standards, policies, archetypes, etc. within these tools and inherit all that information for all the code you get the AI engine to generate for you.
Github released Copilot recently which allows you to write code using ChatGPT under the covers and is fully integrated with the Github suite of features. Microsoft Visual Studio also integrates with ChatGPT via Copilot. Google recently announced Bard, it's answer to ChatGPT.
Long story short, AI chat bots, whether it is ChatGPT based or provided by other solutions, are going to play a major role in development from here on out. But it is way more than a code generator. What else can it do you may ask? Well here is a short list:
If it can do all of that then why do we need developers?
It's the classic garbage in garbage out problem. The AI engine is very resourceful but its results are only as good as the prompts it is given. By now you have probably heard the term prompt engineering. Let's ask ChatGPT what prompt engineering is as if it was explained to a 5 year old by Yogi Bear.
The takeaway here is prompt engineering is a conversation with an AI engine. To generate good code you must have a continuous conversation with the AI engine. Rarely is a single prompt going to get you a result. This is a new skill and people who are really good at solving complex problems are the best suited for this skill. And what type of people are good at solving complex problems? That's right, developers! This is right in our wheel house.
So think of ChatGPT as your own personal smart and resourceful assistant who is always available at your side to help you be more productive. Do you want to learn a new language fast? Ask ChatGPT for code samples.
In the following example I ask ChatGPT for the code for a doubly linked list (yes I am showing my age here) in Python, a language I am very familiar with. Then I ask for the same code in Rust, a language that I have never used.
What is new in ChatGPT 4?
ChatGPT 4 just released last week. I was finally able to get my hands on it today and Wow, just Wow!
Here are some of the crazy examples I saw people do using ChatGPT4
ChatGPT 4 has many improvements beyond just in the training and intelligence of the AI engine. Here are two of the best enhancments that allow the above examples to become reality:
Summary
ChatGPT won't replace developers. The more a developer understands programming, architecture and the domain or problem statement that they are working with, the better they can interact with the AI engine via prompting. We mocked the 10X engineer concept when it was a buzzword a while ago but AI, if used right, is definitely a multiplier.
However, it will also make a decent novice developer out of non technical people for content creation, simple programs like bots, chrome extensions, static web pages, etc. So you might want to be able to do more than just simple development.
What excites me is that with the proper prompting skills coupled with an innovative imagination, we can create exciting new things at speeds never seen before. So don't mock or run from ChatGPT, embrace it. At the end of the day it is another tool in our toolbox, but perhaps one of the best tools we will have.
By the way
I proofread this doc with ChatGPT 4. Also, the image I used for the blog post was created from a ChatGPT prompt and then used in Midjourney to create the image. I first trained ChatGPT on my MidJourney preferences. Then I asked it for 3 prompts of a cool tech image based on my preferences. Here are some others I created from the ChatGPT generated MidJourney prompts.
Technologist, Board Director, Former Global CEO of Deloitte Consulting
1 年Excellent overview of ChatGPT, Mike! I agree that it’s one of the best tools we have in the toolbox!??
KPS, Inc.
1 年Nicely done. Basic overview was paid off with an easy DIY, GBT real life reveal at the end.
Solution Architect
1 年You're always a guide in my IT journey
Chief Technology Officer | Professor at VCU Art
1 年Nice article Mike, thanks!
Integration Engineer @ Roche | Ex - Hashedin by Deloitte | Ex - TCS Digital | MCIA | MCD
1 年Nice article with detailed explanation. I have used Generative AI tools like ChatGPT and Github Copilot for developing a web portal from scratch and I totally agree with Mike that various Generative AI tools can help in increasing productivity in complete SDLC but it will not be able to replace developers completely because these tools need accurate prompts to give accurate solutions otherwise I have seen scenarios where code given by these tools even didn't compile.