March 12, 2013
Bugs are a part of software. Nothing can be perfect and software is no different. Humans can’t write software bug-free. In this situation we should accept the existence of bugs and learn to live with them. Although we should prepare for them as well.
One thing that keeps adding new bugs is adding new features. This can be handled by adding the least possible number of new features in a release, test them as much as possible, and then release. This follows the principle of release early release often. As you add more features, you make more releases. Don’t make too many changes in one release if you can help it.
Another way to catch as many bugs as possible is to test as much as possible before releasing. Add testing to each level of your development process. Include code reviews, unit tests, and test automation, among other strategies.
Finally, prepare a mitigation process or workflow to correct bugs as they are reported and to distribute fixes as soon as possible. With minimal changes in each release you have a greater chance of finding the cause of and solution to reported bugs.
When a consumer of your application has confidence that (a) each release has minimal new features, (b) each release has been tested properly, (c) you have a solid plan how to conquer bugs when they are discovered, then the consumer is not afraid of bugs. Consumers are then able to plan and upgrade to latest releases without worrying that bugs will mean extensive downtime.
Given this plan of action developers should also not be afraid of bugs. They are a part of life and will happen no matter how diligent you are. But keep your due diligence at its highest level so that the consumers of your software trust it.