Over the years, I’ve had many people ask me how we make decisions in the development team with regards to choosing features, fixing bugs, and testing new versions. This week, I thought I would give you some insight into how we track and manage the bug reports and support issues that we learn about through our technical support department. Roy Faltesek manages our LabVIEW Testing and Product Support Engineers group. Part of their job is to be the interface with and be the escalation path for our Application Engineers who talk to you on the telephone or through email to answer your questions.
What happens when a customer reports a bug?
Roy Faltesek: Almost all bugs get reported to us via a call or email to our Application Engineering department. An Application Engineer (AE) works with the customer to confirm the problem and then files a Corrective Action Report (CAR), which is essentially a work order for Engineering to investigate and fix the bug. Our CAR database allows us to track and manage bug reports from reporting to their final resolution.
We encourage AEs to provide customers with the CAR number associated with their reported bug, which not only reassures them that the problem has been reported properly to engineering, but is also useful if anyone wants to inquire about the issue later, perhaps to check for additional workarounds or to see if the problem has been fixed in a subsequent release.
Do we fix all bugs that we get reports about?
RF: We don’t fix all bugs that are reported, but we fix a lot. For example, over a thousand bugs were fixed in LabVIEW 8.5. We prioritize and classify all bugs that are reported and, in general, we fix the highest priority bugs first. Factors that go into setting the priority are the number of users who would encounter the problem, the pain level associated with encountering the problem, and the ability of users to avoid the problem. Crashes and hangs are obvious high priority problems. Controls not aligned properly are obvious low priority problems.
Engineering reviews all reported CARs, assigns them to the right developer and tracks their status. Each developer decides how to designate their assigned CARs. Some may be closed as Not Reproducible, some as Not a Bug (meaning the behavior will not be changed) and some as Rejected (mostly used for what is essentially an enhancement request reported as a bug). Of the ones that are fixed, the delay between the time it is reported and the time the fix is available to our users can sometimes seem interminable. A bug that is reported shortly before release might be fixed relatively quickly, but even if the problem is minor, that fix might not be available in a released product until the next major or minor release, which could be a year later.
What can customers do in the interim?
RF: When a customer reports a bug, their immediate need is not for a product fix, but for a workaround. The user has a task they are trying to accomplish or a function they need to perform. If the bug they have encountered is keeping them from performing their job, our priority is to work with the user to develop an acceptable workaround. It’s extremely rare that we are not able to do this relatively quickly, but occasionally it can take a few days or even weeks and may involve working with engineering to develop a workaround. Customers should expect that the AE and possibly Engineering will establish a workaround every time a customer submits a CAR.
How can customers track their bugs?
RF: If the problem is of interest to numerous users or would be especially painful when encountered, we’ll document the problem in the Known Issues List for that release, a live web document which is updated as we become aware of new issues. We have been maintaining these documents since LabVIEW 8.5 and we’ll continue to do so for new versions of LabVIEW and other NI software in the future.
The LabVIEW 8.6.x Known Issue List
The LabVIEW 8.5.x Known Issue List
When the CAR is fixed in a new release, the CAR number will then be documented in the Bug Fix List for that release if we think the CAR would be of interest to users.
The LabVIEW 8.6.1 Bug Fix List
The LabVIEW 8.6 Bug Fix List
The LabVIEW 8.5.1 Bug Fix List
The LabVIEW 8.5 Bug Fix List
We are continuing to look into ways to make more information available to our users.
Roy plays a very important role in our development team – you can bet we’ll hear from him again. In talking with users, I know there are more things you would like to see from us regarding bug tracking and reporting. We are always discussing ways we can make this information available directly to you on the Web. For now, here are a few questions to spur some comments from you (I have a pretty good idea of what you want next, but let’s open it for comment):
1. Are you satisfied with our CAR tracking process and fix rate? Our current approach is to make sure you have a workaround and then you then work the fix into a future release. Do you feel like we do a good job at resolving the right issues? How would our being more transparent help you?
2. Do we document the right known issues? Is that a document that you refer to while developing? How would you like to see that documentation improve?
3. Once a bug you reported is fixed, do you want us to contact you? With our annual release cycle it can take several releases before your CAR gets implemented. Are you satisfied with just a workaround, or do you see value in us “closing the loop.”