DevQuestions with Tim Corey
I am Tim Corey. I teach coding online and my inbox is full of questions from current and future developers. I wish I could sit down with each of you and share the answers I know will help you go further, faster in the world of development. This podcast is the next best thing. On this podcast, I will answer the biggest questions people are asking! Send us to your suggestion for a future Dev Questions at https://suggestions.iamtimcorey.com/ To keep the podcast coming, like, subscribe, rate, and share it with your friends and colleagues. See why thousands of students have chosen to learn to think and code like a professional developer at www.DevForge.com.
DevQuestions with Tim Corey
301. Does Quality Matter When AI Code Creation Is So Fast?
Use Left/Right to seek, Home/End to jump to start or end. Hold shift to jump forward or backward.
Does code quality matter anymore? AI can create so much code so quickly, so does it matter if it isn't perfect? It can just fix the mistakes and keep going. Is code quality a thing of the past? These are the questions we will answer in today's episode of DevQuestions.
Website: https://www.DevForge.com/
Ask Your Question: https://suggestions.iamtimcorey.com/
Sign Up to Get More Great Developer Content in Your Inbox: https://signup.iamtimcorey.com/
Does code quality matter anymore? AI can generate a lot of code, and it's making developers so much faster. So does it matter if there's a few more mistakes? Can't AI just fix the mistakes it makes and keep going? Hopefully you've spotted some bad assumptions in those questions, but let's talk about code quality in light of AI code creation in today's episode of DevQutions.
SPEAKER_01Welcome to the Dev Questions Podcast with Tim Corey.
SPEAKER_00Software development is more than just writing code. So let's talk about the rest of it. Specifically, let's talk about why software quality still matters. Now, I'm gonna give you a conclusion of this episode right up front. Then we're gonna talk about why this is my conclusion. Code quality is incredibly important. A lot of people are ignoring this fact, but that's gonna cause them major problems in the near future. Too often we look at software development and think this is about just writing code, but that's not our job. That's the job, that's the tool that we use to accomplish most of our job, but it's not really the core job. The core job of a software developer is to use their expertise to create a solution to a business problem. And that's the key. Our role is to support the business in some way. Now, sometimes what we create is the business. Amazon, Microsoft, Meta, and more would not exist without the software built by their employees. But other times it's in a less prominent way. For instance, I worked at a college where the software I worked on supported the business side of the college, admissions, enrollment, payments, and more. The actual job of the college was teaching students. But the key thing to remember is the college would not have survived without the software that supported it. I worked at an insurance agency, same thing. The insurance agency sold insurance, but they needed the software to make it happen. I worked at a manufacturing plant. The software is what powered the machines and allowed them to do their jobs and how it and when to do their jobs and how those things interacted. I worked at a warehouse. The boxes would not get on shelves or be able to be sent out the door without the software that I wrote. So software is incredibly important, and almost every business relies on it. Think of a business and then try to think about how they do that business without a computer, without software. Even in your personal life, you probably heavily rely on software. Need a recipe? You probably look it up online. Want to navigate to a new town? You probably use a maps app. I traveled recently for a conference and I booked my tickets online. I booked my hotel room online. When I landed at the airport, I figured out where to go to get an Uber, I took an Uber, which is a software product. And then whenever I want to go somewhere outside of walking distance, which I walk most of the time, I use an Uber. And I use Google Maps to find out where restaurants were. I went to the conference and had a mobile app that told me what sessions or where, so I knew how to go to the right place at the right time. So very much even my personal life is tied to software working well. Now, we've properly placed the importance of software lives, but let's think about software quality. What happens if software goes down? What happens if software quality gets reduced? Now you may think, well, it's annoying, right? But let's go a little bit further than that. We discussed in past weeks about GitHub and how horrible their uptime is recently. They're currently at 91% uptime. And we may think, well, that's frustrating. Whenever I want to look at an open source repo, it's it's slow or it's it's down or has problems. And that is an inconvenience, but there's actually more to it than that. You see, a lot of businesses rely on GitHub for their software hosting, where they put their software, their private software. They have private repos. I have private repos on GitHub where all of my code lives. Now imagine if you wanted to push an update to your site and GitHub is down. What do you do? You don't push that update. Well, some of those updates are hey, we're starting a sale now, or we're turning the sale off now. And that can cause real dollars for those companies. That can cause real problems. Imagine if you got a bug that's crashing your website, maybe your own co-coil is a problem, but you need to get a fix out there, and you've got the fix, but the the uh GitHub Actions server is down. Well, what do you do? Because you need to get that fix out to your customers, and you've built everything around GitHub Actions just working. And we've assumed that all these things will just work and just be there, but when they're not, they can cost real money to our employers, they can cause real disruptions in our workflows. Uh thing of Google, number two, um you rely on Google search probably. And maybe now you're going to Chat GPT or somewhere else to do your lookups, but a lot of the world still relies on Google search. What happens when those search results aren't right? For example, what if Google decides that through a glitch or through something else, that your local business doesn't exist? Well, if people looking for florists in my area and you're a florist, but you're not on Google, it's somehow skipped over you, you're not going to get most of that business. In fact, you don't get any of that business from Google, which means a lot of people won't discover you online. Now, yes, they can discover you by driving past your place of business, but unless you're on their route, they might not never ever know you even exist. That would be a big deal. And a small little glitch like dropping just one business off of Google's list of thousands of businesses in your area could cost a small business their entire business or a significant portion of their business. There was an article recently about how Google has AI search results now, where when you search for something, the first thing that comes up is actually an AI-generated statement, and then there's the results, which is frustrating. But there are people that were testing it for medical needs. And one of the things they were asking was, hey, I've got this particular medical condition. What foods should I eat? Which is a great thing to Google, right? You want to look those things up and verify, hey, what can I eat? What are some ideas for what I can do for meals that would work with my current medical condition? Well, they found that a significant portion of a time, not only did Google AI's AI get it wrong, it gave the opposite results. Results that they should absolutely not do. Instead of saying don't eat these foods, it said eat these foods. That glitch could cost someone their lives. So yeah, that's kind of important that we have reliable software. Now, yes, it can cause your business their business life, it can cause you your life. Like these are not small things at Google. You might say, okay, well, that's Google. I don't work at Google. Cool, no problem. What if your bank starts having reliability problems? Is that a good thing? Like, is code quality matter at your bank? Because if you say, hey, I want to transfer $100 from my savings account over my checking account, and your bank says, Cool, no problem, gotcha. And it takes $100 out of your saving account and then glitches and doesn't put anything into your checking account. Is that a problem? Like, yeah, that'd be a big deal, right? And there are things like that that have happened. There was an article recently about how people were looking up online bank statements and finding somebody else's banking information. Would you love it if your banking information was revealed to someone else, some stranger? That wouldn't be that great. And that happened over, I believe, in England. And their response was refresh your browser. Like, we're working on it. Like that quality matters. You want to know that your money is safe, that every dollar that you put in that you've earned stays in your account and doesn't just go away, doesn't get rounded in a weird way. E-commerce sites. Let's say that you are working for a company that you say, well, there's not really an impact here. It's a small e-commerce site, it's no big deal. Okay, so what happens if the site goes down? Because that's been happening a lot recently with e-commerce systems, because they've been built upon code quality that's not really quality. If we're at the quality, then code quality. It's just code. And so if it goes down, well, then your company isn't making any sales. And if your company's not making any sales, guess what it's not making? Any money. And those sales don't necessarily magically come back because the site comes back up. If you have, let's say, I don't know, 13 hours of downtime, those sales might never come back. By the way, that 13 hours isn't random. That's what happened to Amazon recently because of code quality. You think how many millions of dollars they lost because of that? Now, Amazon is a little different because probably people will come back, but you never know. If people are, you know, they're tuned to have results now. And so if they couldn't get it from Amazon, maybe they went to Best Buy, maybe they went to somewhere else and Walmart and bought that thing. So now not only are you losing your customer, that particular sale from that customer, you may lose that customer and they go, ooh, that's kind of easy. Go to Walmart. May I do it again? And all of a sudden, Walmart gets more sales and you get less sales. All of a sudden, you've not only lost $100, you've lost potentially thousands in the future. But even worse than this, what if your code quality for your e-commerce site isn't that great? And you kind of missed a few areas when it comes to security? And all of a sudden, hackers have, I don't know, your entire database or access to your entire customer list. This has happened over and over and over and over again recently. AI-generated code has a significant number of flaws when it comes to security, especially. And people aren't catching it. Well, that little bit lower quality allowed your entire customer base to be leaked. That's a problem. Now, let's think about payment processors. You know, we talk about Stripe or Braintree or in my case, FastSpring. Um, payment processors that take uh the customer's money and then pay, in this case, me for whatever I'm selling. Well, what if they had a glitch or a problem? And I'll tell you a real story about what happened to me with FastSpring. We had a quote where we quoted a customer, we said, hey, this is gonna be $14,000 for this purchase. And they said, Cool, that'd be not a problem. Um, but can you put that quote in our currency instead of in US dollars? Not a problem. FastSpring does this. We change their currency, send that quote back over, they pay the quote, no problem. Until you started looking at the actual income, the money we received from FastSpring. That money, $10,000. Not $14,000, $10,000. Why? It wasn't a rounding error. It was because their system had a glitch. It had a bit of a bit less quality than we would hope for. And all of a sudden, the what should have been $14,000 of income is now $10,000 of income. And here's where the real fun comes in. Um, I don't get that money back. FastSpring says, hey, it's our term and conditions, it's tough. Okay? That's not a great place to be. That glitch in real world cost me $4,000. That code quality was a major problem for me. And you know what? That can cause Fast Spring long-term impacts as well because I tell you, or because I change off of FastSpring, because I like, I look at other companies and say, hey, are you more reliable? Because quality matters. Or what about if you're in Uber? Let's say you I was driving all over San Francisco recently in an Uber. So what if I say, hey, I want to go here and the software glitches and it sends me to a different address or tells the driver to go to a different address? I don't know a city. I don't know if we're going the right direction necessarily, and I might not pay attention even. I'm working on my phone or doing other things. All of a sudden they drop me off at a place that isn't the right place. What then? Well, now I've got to get a new Uber if they're around. So that'd be a problem. What if they double charged me or charged me 10% more? How would I know? That kind of quality could be a problem. Or on their side, what if they were charging me 10% less? What if they accidentally were charging less than they were needing to charge for things? Well, they just lose money. Or what if, and this is this is one that kind of scares me a little bit. So I was in San Francisco. I went across the Golden Gate Bridge to uh a place called uh Battery Ridge, I believe. It's a a place on top of the mountain. You can look over and see the whole bay and the bridge, and it's beautiful. But it's kind of in the middle of nowhere, right? Like you're not around the rest of the city. You are in the country. You are where my cell phone almost didn't work. Like for a long part of the drive, my cell phone had no bars. Now, imagine if I got up there and I was looking at the bridge, I was taking pictures, it's all great. And then I go to get an Uber back home and the app crashes. What happens then? I am miles from where I need to be. And yeah, I could technically walk, but it's gonna be a long walk. So I need to rely on that being reliable, having quality in my software. Otherwise, guess what happens? I go over to Lyft and I get a lift instead. And then, since I'm already in there, well, next time I need to ride, I'll probably get a lift. And all of a sudden, Uber loses out on a customer. Or imagine, I'm gonna go through a lot of these examples, by the way. Um imagine you're in customer support. Um and you decide, hey, you know what, we're gonna use software to do our customer support. Maybe you just use an AI, because AIs are awesome, right? Um like YouTube does, where they automatically search for problems and then take your video down or demonetize it. And then when you try and get support, you can only talk to an AI person. And what if that AI bot doesn't understand what you're trying to say and puts you in a loop? What do you do? There is no recourse. And that's kind of where YouTube is in a lot of places right now. There's just no recourse because, oh well, system's not perfect. And you know what, code quality is not as important as moving fast, right? Except for the fact that you're not supporting your customers. Okay? And that can be a big deal for some companies. For YouTube, maybe they don't care, but for some companies, they really do. Or finally someone, deployment systems. We have talked a lot about continuous integration and continuous deployment. And that's really a valuable tool to make sure that you have a consistent delivery system, a consistent system where you are sending all of your code out to the right spots, you're building it correctly, you're doing it in a repeatable way so that if it's gonna work right in uh pre-production, it's gonna work right in production. There's always important things you've learned to do and built systems around, especially if you're a large company or you work with microservices or other things where it's a very complex system. Well, there's been a number of cases where that deployment system wasn't exactly bug-free, where there's a little bit of a quality problem. Um, I mentioned before Amazon's 13-hour outage. Now they've kind of walked back these claims, but initially they said that what happened was they use an AI system to help them with deployments, and it decided that their entire production environment should be wiped out and reset because that's the easiest way to start over, which sounds like a lot of junior developers. Just wipe the code out and start over. That caused a 13-hour outage. That's a big deal. Companies have had their databases wiped out because the continuous integration and continuous deployment system said, hey, you know what? I'm going to deploy that database, but let's do a reset first on that. That's not okay. Okay, so quality matters because quality has a massive impact on whether we are chugging along like normal or whether we are losing customers, increasing costs, having massive confusion and massive problems that cause outages and other things. So this is just a few ways that the lack of quality in software can be a major problem. So let's talk about the impacts of the lack of quality. We've kind of covered these, but I want to make sure we we call them out specifically. So number one is downtime. Downtime is a major issue. We talked, I believe, last week about the five nines of availability and how you need to have good uptime and how that can be the difference between major income or out of business. Well, downtime is a big deal. If a company has, let's just say, 10 employees working on a deployment, and then let's say GitHub Actions goes down for an hour. And those employees are scrambling. What do we do? What do we do? What do we do? And they end up having to wait or they have to try to figure out workarounds to get that software out anyway. And let's say they do it in an hour. Well, that's an hour's worth of work that they shouldn't have been doing. 10 employees times an hour's worth of work. Well, that can be hundreds, if not thousands, of dollars just in the cost of the employees. But now think about the fact that in that hour that that software should have been out, there could have been opportunities that that software would have taken advantage of. Maybe you're launching a sale. I've done this. Go launch a sale and a glitch happens and the sale doesn't get launched. Well, every hour you're not selling your thing means potentially loss of income. I've seen where I launch a sale and then we have a bug or something go, you know, something happen, and we have to wait and get people in later, and not everyone comes back. So it's not just that we have to wait an hour for our money, it's that money may never come back. It's a loss of opportunity. There's also the idea of data corruption. We have backups, hopefully. Check your backups, always test your backups. But we have backups for our software and for our data. So let's just say that you have a system that's, you know, you've tested it, you've got you've got all your backups in place and you know that it works. But what if you deploy software that's just a little off? Where maybe it you know, instead of writing to line three, it writes to line four every time. It's always one off. But that's hard to spot, right? It's not easy to spot something that's a little bit off but still seems to be working. And so it might work that way for a week, two weeks, maybe even a month until someone goes, you know, hey, I'm running this report on our sales and things don't look quite right. And, you know, or someone checks their credit card statement, which is usually 28 days or more after the purchase. So you're talking about a month probably before this gets discovered. Well, they discovered it a month and go, hey, looks like a problem. Well, you spend another day tracking another problem, you go, oh no, this is not just you know, caused things to be a little incorrect. This has corrupted our data. But how do you recover that? Because you might have backups that are in the right spot. Because maybe it started at noon on a Tuesday of March 2nd. Well, Because you have weekly, monthly, you know, hourly, daily, hourly, weekly, monthly backups. But because it's so far back, you only have a monthly backup and it started March 1st. So you're missing a day and a half if you go that way. Or you go the other side of it and you got March 8th because you have the weekly backups. Well, now you've got five days of corrupt data. Like it's not like you're going to say, hey, I want to restore back to Tuesday at noon. You might not have those backups. So that data corruption can be a massive issue for your company. Data corruption is terrifying. And if you are not really careful, then your little glitch can actually cause major problems for yourself now and for years to come. Or what about data theft? Number three. So you've got a little bit of a flaw in your security, not a big deal, except that someone has been downloading all your data or changing your data. That's a problem too, where they get in, you don't know they're in, but they make it make some changes. Maybe they run their own sale and drop all your prices. Or you know, they they change what your customer's data says. That could be a big deal. And data theft is a massive vulnerability for company. And you're saying, hey, you know what? The software got faster. That's the important bit. Yeah, it's not secure, but it's faster. It got, you know, we got more software, we wrote more software, that's a problem. Okay. Number four, loss of customer confidence. If I have a company that loses my data, I'm not going to be very confident in them. If I have a company that, I don't know, causes me to lose $4,000, I'm going to struggle to be confident in them. If I have a company that has downtime all the time and I can't use the product when I want to, I'm going to struggle to be on board with continue to use them. Loss of customer confidence is a big deal because not just the money you lose today, it's the money you lose for years and also the fact that people talk to other people. And all of a sudden, my lack of confidence turns into your lack of confidence. And all of a sudden, you're like, oh no, maybe we didn't just lose one customer, we lost five, 10, 15 because that spreading out effect of word of mouth. Number five, it's going to boost your competitors. If you have downtime, if your app is down for four hours, not a huge outage, right? It's a massive outage. Because if I come to sign up to your app and it's down, but I was choosing between you and another company, I'll go to the other company and check them out. And I might not ever come back. Because I don't want to sign up for two services and always test out both. I just got to test out the one that um works. So you can lose customers to your competitors. So not only are you losing money, your competitors are gaining money. So that's a big deal. And then finally, there's financial impact or financial ruin. If you have software that is not reliable, that has problems, that things come up continually, like we're seeing again, GitHub now has a 91% uptime. Means 9% of the time they have some type of downtime. That's a huge deal. Well, that's gonna impact companies that go, you know what? That's a risk we're not willing to take. So we're gonna take our business somewhere else. We're not going to go that route because it's a danger to our company. And all of a sudden you start losing contract after contract after contract. That can cause a real financial impact and eventually financial ruin. It can destroy a company. If your production database gets destroyed by a glitch and the backups do too, because that's happened because of AI, well, that's not just a bump in the road. That's we're gonna shut the company down now. Because that's very, very, very hard, if not impossible, to recover from. So quality is really important. There's a reason software developers are paid so well. Without good software, businesses fail. So reducing quality means increasing the risk of business loss or failure. Quality is incredibly important. Speed of development is also important, but only if the resulting software has a high level of quality. Otherwise, it's just pretend progress that eventually will cost the company and its employees. In a time when more and more developers are forgetting about quality, stand apart. Be focused on what matters most. All right, thanks for listening. And as always, I am Tim Corey.
SPEAKER_01Thank you for joining us for this episode of Dev Questions. When you're ready to learn to think and code like a professional developer, head over to IamtimCorey.com and enroll in a course.