3 minutes
Unfixed bugs
This post is the third in the series developing against third party software. So, here you are, you have chosen a third party software product to use in your own project. The software meets your needs and the license doesn’t hurt you. You’ve already started coding (probably written already a bunch of code) when you realize that the third party software contains a bug, rendering your program unusable! The problem is not, that there is a bug in the third party software. There is no bug-free software. The problem is, what to do and how to handle the situation. First, make sure this is really a bug and not a missing feature of the software you use. And that the product you have is used according to its design. It is more than probable that the original author of the third party software has never envisioned such a use case and therefore never has tested against “those anomalies” that are lurking in the dark corners of every big piece of code. Then you have to decide if it’s possible to code around that bug in a way that if it’s going to be fixed one day, won’t break your work around. This is the hardest part, since you have to hunt down the real breakage, find an implementation for a fix without messing with the original code and then make sure that a future change won’t blow your code to pieces. Alternatively, you can submit the bug report to the original author and hope for a fix. But be aware that it could possibly happen that the day of the bugfix won’t come. This can have a million reasons, starting from the discontinuation of the product to a change in course of the development to the fear that fixing this bug would break existing code of other customers. On the other hand there may be hope, since using an open source third party product you always have the opportunity to fix the bug for yourself. But beware, extensive patching or adding of new features takes time & resources and not every suggestion is welcomed like you envisioned it. Thus it is clearly seen that coding around bugs in third party software takes much more skills than just finding the bug and fixing it. You have to weight the time it takes to adapt your code, eventually coming back later when the bug gets fixed, and the time it takes to get it fixed in the first place by the original author. And there is also the option to switch to another third party software if available. But there may be dragons, too!