I’m Sorry: Your Software Project Will Never Be Finished.

Photo by Rene Böhmer on Unsplash

No, really.

In fact, when you go live, your software shouldn’t be “done.” If it is, you’ve done something wrong.

You see, in the history of software, there’s never been such a thing as a piece of software that launched without bugs. Think of your favorite, most used platforms. Gmail. Facebook. Salesforce. All are brimming with bugs. Every day a user writes into their contact forms about a bug they discovered, and while a lot of them are PEBKAC errors, a lot of them are legitimate bugs. And the ticket tracker logs them, someone triages them, and, eventually, most of them will be corrected.

But before that happens, some new feature will be added, or an existing feature will be modified (‘member when Facebook separated out the messages app from the FB mobile app?), and that will create a whole new series of bugs. (more…)

Empty Catch Blocks

Strong Bad


[code language=”csharp”]
void ButtonClicked()
// If anything goes wrong, do nothing.
// Don’t log anything.
// Don’t output anything.
// Suppress any sign of the problem.
// Just continue as if everything’s completely okay.
// Also, don’t actually write a comment here.

Let me explain why this is wrong.


What Is a Bug?

The term “bug” is fairly common in this age of technology. Most people seem to understand that in the context of software or technology in general, it means something bad or annoying, especially because that’s what a bug is in nature.

Some bugs may go unnoticed, some may simply annoy, and some may do us harm or even kill us. Some bugs are fairly easy to find, while others are very rare and require expertise and perhaps intuition or chance to find. These characteristics actually apply to both bugs in nature and bugs in software.

Both types of bugs are also plentiful. This is an important thing to understand in the context of software development. When embarking on a software development project, it would be unwise to think that there will not be any bugs during the process. Quality Assurance (QA) is an integral part of software development, and it must begin as the project starts. Insufficient QA has led to the untimely and costly termination of many software development projects, or worse. (more…)

Don’t bug me?

Have you ever had one of those days? I’m not talking about those really bad days when everything seems to go wrong. I’m talking about one of those days where everything is going right and then there’s the one bug that crops up that spoils the streak. (more…)