How Bugs Get Fixed

To write a robust program, you must manage the small details. Many of these details you will only discover when real people use your program with real data. A program becomes robust only when it can handle unanticipated cases sensibly and successfully.

If and when you evaluate a free software project for the first time, you have the opportunity to help that program become more robust, especially if the platform or data or tasks you have in mind are sufficiently different from those the authors have already explored.

In other words, if you find bugs, the authors may not be aware of them. If you do not report them, they may not get fixed.

I hesitate to suggest that you have an ethical obligation to report bugs, especially if you end up not using the software, but you ought to consider that unreported bugs may never get fixed.

(When I tried to revive the Perl SDL project several years ago, I couldn't find anyone willing or able to try to build the software on Windows and report back debugging information, even though I could find a handful of people willing to say "It doesn't work on Windows". As a consequence, the Perl SDL bindings only started to work on Windows thanks to the superheroics of Kartik Thakore and the other contributors.)

Note again that I did not write that you have an obligation to report bugs. Nor did I write that you cannot complain about software unless you have reported bugs. I merely wrote that unreported bugs tend to remain unfixed.

Modern Perl: The Book

cover image for Modern Perl: the book

The best Perl Programmers read Modern Perl: The Book.

affiliated with Modern Perl Whitepapers



About this Entry

This page contains a single entry by chromatic published on November 20, 2012 8:58 AM.

The Curious Case of the Justifiable but Slow Singleton was the previous entry in this blog.

Tests Have APIs Too is the next entry in this blog.

Find recent content on the main index or look in the archives to find all content.

Powered by the Perl programming language

what is programming?