Debugging is an Art

Temiloluwa Olushola
4 min readDec 2, 2019

Debugging is an art and every developer is an artist.

Yeah you read that well. I think most developers would disagree with that or maybe not.

My View

What’s debugging actually?

Debugging is the process of identifying and removing errors from a software. I like to keep things simple, let me break it down.

Right from your first “hello, world!” program as a developer in any language including HTML, sigh! There’s a moderate to a high probability that it didn’t run the first time even though you followed the tutorial closely. There was a bug. If you are ever writing your autobiography as a developer you should include your first bug it’s only right. I digress, after discovering that the program didn’t run, one of the first things you do is read over your code and the tutorial’s code then try to compare them. The first try is usually just an oversight, if you don’t discover anything still you look deeper then it could get frustrating from there. At this point, you are either about to give up or you’re so desperate to get it to work — that’s debugging.

It’s important to note the feeling of success upon debugging is beautiful. It’s one of the perks as a developer I might say.

Deeper understanding

As you advance as a developer you realise that what I described above is quite the cliche and doesn’t do justice to what debugging really means. Going back to the definition of debugging, and giving it a more comprehensive meaning, debugging is much more than that. An example, depending on your commitment, drive and learning speed you realise after experiencing much more bugs that you’re now more conscious of not making mistakes while coding that’s where “best coding practices” come in and you tend to follow them sheepishly, lol. It’s the reason why you’re more conscious of naming conventions, commenting and consistency. The art of debugging is one of the reasons why we write test for our application, it’s reason why we have different environments (development, test and production), it’s the reason we want our code to be more readable, it’s the reason why we go back to study how some libraries work.

A Bug

It’s important to understand what a bug actually is. Biologically it’s an harmful microorganism. In coding it’s an error in a computer program or system. How then do we define error? Upon creation of any system, a purpose defines the existence, form, and design of a system; noting that nothing has ever been created without a purpose. Therefore, when a system/computer program is created, it was created for purpose hence when the system/computer program does not function as its creator purposed, that is an error. So this encapsulates logical error, or when the program doesn’t run or when something out of the blue causes your program to malfunction.

Coupling it all together, it is therefore possible to say a bug is any malfunction from the original purpose of program. If you intend to print out “Hello, world!” and your program prints out “hello, world” that’s a bug.

The Art

Why did I call debugging an art? Art is built on creativity and imagination which produces work to be appreciated. In the process of debugging it takes creativity and imagination to successfully get the job done, from my abstract view of debugging above to the deeper understanding you’ll see creativity and imagination in the process of debugging.

Case study: Testing

Today in the tech industry a lot of resource is put into testing of applications before realising it to the public, that’s because a bug has the power to the destroy the whole purpose of the creation. Take for example, Twitter. Before every update the entire application undergoes series of tests, checking how the application responds to the user inputs and testing all the use cases they could come up with. Infact sometimes the update is released to a limited set of people, either random or specific. If by any chance a major or critical bug is found the update doesn’t ship to production. It has to be called back, fixed and tested again.

In Conclusion

It is important to note that the possibility of a business application to be bug free is very low relative to a customised software with specific use and users. So it’s eventually left to the creativity and imagination of the stakeholders (developers and testers) in the application.

It is a good practice to keep debugging because it’s how you keep getting better and how you learn more. It is also kind of the reason why your boss can fix a bug you’ve been on for hours, days or weeks as the case might be in minutes.

Keep on debugging, you’re an artist.