The Shocking Truth About Software – Whiteboard Wednesday

In this Whiteboard Wednesday, Lenny Ford tells you the shocking truth about software.


Hi everyone, I’m Lenny Ford form Links Web Design and welcome to another whiteboard Wednesday. This week we’re going to tell you the shocking truth about software, and that shocking truth is that all software has bugs, every last piece of it. That may not be so shocking but first let’s start off talking about what do we mean by software? What is software? It can be lots of things. It can be your operating system; you know Windows, OSX, Chromo S, Android, the new Firefox operating system on their new phones. So operating systems, there’s a lot of them and that constitutes software, but so do websites. Websites are just simply code and it renders out a view for you to look at through your web browser.

You know web browser is also a piece of software. Games that you play may be on your desktop or even on your mobile device. Those are obviously software. And also apps and programs, that includes just about anything you run on top of an operating system. From Microsoft Word to Candy Crush to you know, whatever list making app you love to have on your iPhone. They’re all software and they’re all written in code, but they all have bugs. And the real question is why? Why do they all have bugs? Well, there’s a few reasons that they all have bugs. First off is technology. Technology moves at a really good clip, right? And as technology moves forward, software makers try to introduce and use those new technologies, but they also have to make them work with the old technologies.

The internet and software has been around since the mid ‘50s, board games and punch cards in computers. So we’ve got you know, 70 years or so of technology built up under our belts and some of it is still being used even that old, old technology. But we find better ways to do things. We want to move on. The problem is, they don’t always interface really well and that can cause bugs. There’s also enormous user basis that we have to test against when we write software, we write websites. That includes not only the way that they would use that piece of software, and there’s no way to anticipate. When you’re shipping a product like Windows with just such an enormous user based, there’s no way to test against how many different ways somebody might use the operating system to do a specific task, and one of those 10,0000 ways might not work right and that would obviously be a bug.

But it also has to do with their devices, whether they’re on a mobile device. You know, Windows has since moved to a universal platform between desktop and mobile, right? Well know they’ve got to account for those devices, and how they work, and how they run the code. That also incretes screen resolutions. Think if you’re running a program on your desktop, and you shrink down Microsoft Word, let’s say, because you’re writing a document but you want some extra screen space, when you shrink that down, how’s it all going to work? They’ve to account for any different display resolution that might be available to a user. Also, the hardware in the device, you may be running a game that works really well in one of your computers, because it has a really nice beefy graphics card and you go on rodding on an older machine, and you find there’s all kinds of graphical bug in the game.

That’s a good example of how hardware can effect and introduce bugs into software. Also the rapid pace of software development today, we’re all used to seeing version numbers. Windows just went from 8 to 10, they skipped 9, but there’s this feeling in the software world that we want to get out products as quickly as possible to our user basis. Let them use it and iterate in those products, right? And that’s where we get version numbers from. That’s why you get version 1.2, 1.3 and incrementally increases until new big features are introduced. But that iterative and rapid pace leads to bugs in the software because we’re moving so quickly, it’s easy to overlook things once in a while. And finally, what can you do about bugs and software or in websites that you see?

Well, probably the first thing you can do is make sure that you submit crash reports and bug reports, and there’s a difference there. A crash report is, the program actually closes and you probably got a little pop-up that said ”Do you want to submit the details of this crash to the company that makes the software? Click yes”. Let that have that info. There’s nothing personally identifiable over there. It’s all about your system, what your running the software on, and it really helps them narrow down what happened. Bug report would be something you find. The software didn’t crash, but you found something that’s not working quite right. Almost always you can go to the help and support center on a company’s website and submit a bug report for their software and let them know that something going on, because I they don’t know about it, they can’t fix it.

And finally, do a little research online. Nine times out of 10, there’s a solution for the bug, or the crash, or whatever it is that you’re experiencing. Other people have had that problem too, and even if the company hasn’t had time to address it yet, there may be a work around available. Users are pretty crafty and there’s some really smart people on the internet and again, they most likely have run into the same problem and quite possibly can provide a solution. So, that is our shocking truth about software development and software in general. You’re going to find bugs on the web or on your desktop, but take it with a grain of salt and you should be able to work through it.