The software we write is used by many clients. Each client uses a different set of features. Clients can’t enable features they have not paid for, but we discovered that clients can change some of the configuration options for features they have not enabled, and configuring some options for disabled features will cause bugs to occur. Fixing this problem would require days of refactoring, coding, and testing. It is unlikely any clients will ever encounter the bug, and the impact of the bug is minimal.
- Should we issue a service pack right away that fixes this problem?
- Should we fix it in our upcoming release?
- Should we fix it in a future release?
- Should we never fix the problem?
This challenge is typical of the decisions that need to be made every day in software development. I don’t believe there is a correct or best answer to this scenario.
- The policy in some software development shops is to fix every bug as soon as it is discovered, but is that the best use of developer time?
- The policy in some software development shops is to delete the bug from the bug tracking system if you don’t plan to fix it soon because you will probably never get to it. Is it more valuable to keep a record of the bug in the backlog in case it comes up again or is it more valuable to delete it from the backlog so that no one wastes time re-evaluating if it should be worked on?
There are many factors that go into making this decision and I’m sure I cannot think of all of them. Can you?