Back in June 2008, I released a new version of my Mandelbrot Screensaver to my website.

Since that time, the screensaver has acquired many tens of thousands of downloads, two thank you messages and one bug report.

Until the bug report arrived, I had assumed that of the many people who had downloaded the installer, there had to be at least a few hundred who were regularly enjoying the fractal goodness of a high resolution Mandelbrot on their screens.

Until the bug report arrived.

It turns out there was a significant crashing bug in my code, one that affected anyone running at certain widescreen resolutions, including 1366x768 but not 1920x1080.

Before Jonathan kindly reported the bug to me on October 15th this year, I was unaware of the problem - unaware of any number of potential users who had a negative experience because they downloaded the screensaver and had it crash on first use.

There are two significant lessons to be learnt here.

The first lesson, relevant to every developer, is to always test the assumptions you carry when you write code - any code. Keep in mind that the validity of your assumption might change over time, so think about the impact on your code carefully. If you don’t test your assumptions, you might end up in an embarrassing situation like mine.

The second lesson is broader, relevant to every user: If you have a problem with a piece of software, take the time to report the problem back to the author/vendor. Software authors are people too - fallible and human - and your bug report might just be the first time they’ve heard of the issue. Not only will you be doing the author a favour by reporting the problem, you might be saving a whole bunch of other users from experiencing the same pain.


blog comments powered by Disqus
Next Post
Deploying with a bin folder  05 Nov 2013
Prior Post
Mandelbrot screensaver update  29 Oct 2013
Related Posts
Using Constructors  27 Feb 2023
An Inconvenient API  18 Feb 2023
Method Archetypes  11 Sep 2022
A bash puzzle, solved  02 Jul 2022
A bash puzzle  25 Jun 2022
Improve your troubleshooting by aggregating errors  11 Jun 2022
Improve your troubleshooting by wrapping errors  28 May 2022
Keep your promises  14 May 2022
When are you done?  18 Apr 2022
Fixing GitHub Authentication  28 Nov 2021
November 2013