My First Experiences with Computers
Before we can start with the main thread of this post I need to take you back to the early 90s. I was a teenager, and had no access to learning materials for software development. Or a home computer for that matter...
But I did have one awesome teacher who went out of his way to help me with my interest in programming, he stayed late after school and gave me private lessons on his own time. And I was so proud of the things that I made computers do.
However, making computers do fun things didn't quite grab me in the way that I would have hoped. Sure, it was fun - but I wasn't solving anything. So it was all a bit... Superficial.
My First Time Making an Impact
Fast forward a couple of years and I was in 6th form taking an IT class and working on my final project. This is really where I got hooked! Whilst a lot of people picked really cool projects (their development skills were amazing, and the end result looked 🤩), I went to a local bakery where I worked at the weekends and asked if they had a project that I could work on.
In my head I had this amazing stock control system that would count when things were used, tell them when they needed to order new things, and, you know, just be amazing. They shot this idea down pretty quickly. It just wasnt something that they needed. Not only would it be hideously complex, they were so well oiled in their processes that they didn't need it.
What they did need was a way of knowing where their stock was... Stock takes took days to complete because they had to find each item in the stores. Could I write a stock location system instead, and print off a list in order of location that they could use to to manage the stock checks?
Not as "wow", but yes, absolutely. I made an application in turbo Pascal, installed it on their computers (via 3.5" disks 😅) and they tried it out. Their 3 day stock take was reduced to 3 hours. Result!
This is when I became hooked on software development! I could see the value in what I was doing, and I was solving a real problem. I was making a difference. And it's something that I keep to this day.
Making Sure That I Am Doing The Right Thing
So... This is a cute story and all, but what's the point? And what does it have to do with AI?
Well... When I say I keep my mind on how my code will affect a user, I mean it. It causes friction because in my mind my code is not for the people paying me. It's for the users, or even the customers of the people paying me. I will not write code that I think will make an end users life, or that of their customers or society in general worse. As software developers we have a responsibility to make sure that what we are doing is for the greater good. I have had, er, "discussions" with managers and colleagues over the years because of this.
OK, maybe not the best choice of words 🤣, but you get the idea, right?
The AI Hype Train
Now we come to today. Since the rise of ChapGTP, and others, a couple of years ago the amount of AI projects out there has skyrocketed. And I don't think it's for the, er, greater good. I think it's for the greater profit at the expense of the people. And I think that's a problem.
I'm not saying that AI is bad, or that it should be stopped. I'm saying that we need to make sure that it's used for the right reasons. We need to make sure that it's used to make the world a better place, not just to make a few people richer.
Discussions centered around "stop thinking of yourself as a user, think of the money we could save the business" are just not the thing that I want to be involved in. I want to make something that does what my first application did. Take a problem, figure out how to solve it, and then make it happen. Not that saving the business is a bad thing, but it shouldn't be at the cost of making peoples lives worse.
Using AI For Good
So how do I think we should do this? Well... First, I think that we should stop probably trying to shoehorn AI into solutions, and we should definitely stop with the "AI because we need AI" projects.
We should be looking at the problems that we have, and then figure out how AI can help us solve them. We should be looking at the people that we are trying to help, and then figure out how AI can make their lives better.
And doing this we should also be focusing in how we use the AI tools that we have available. The example I always use is Copilot. I've been using it for a while, and I find it a great help in my job and my hobbies.
But it does not write my code for me. It answers some questions I have about my code, especially when I am learning a new framework. It can help translate code from one language/framework to another -I am currently working on changing a Cypress E2E test project to Playwright.NET and it has saved me a ton of work, but even then it does not write my code for me, it generates code and I use what looks good after changing it to make sure that it fits what I want.
I used ChatGPT to help me build a stand for my cordless vacuum cleaner (out of site, out of mind, so having it hanging in my living room means I use it more often). I knew what I wanted and use it to figure out if my idea was going to work, and how I big parts of it needed to be so that it balanced. Awesome!
This is how we should be using AI in our projects. Not because AI is cool, or how much it can save a company at the expense of it's users, but because it can help us solve problems and make the world a better place.
Cover Photo by Clark Tibbs on Unsplash