When you’re just a week away from your release date, there’s nothing worse than a late-breaking bug. Just ask Apple who had to delay the release of their watchOS 2 because of a last-minute problem.
When late bugs are uncovered, you and your software development team have two options:
- You release the software with these leftover bugs and patch them later. The problem is you know that this will put the credibility of the software at risk with those all-important early adopters.
- You delay the launch and worry about alienating customers and users before they’ve even got their hands on the software.
Either way this puts the development team in hot water, and they have to analyse the risk of each alternative. Worse, the company as a whole tends to shoot the messenger, blaming the test department for problems upstream in the development process.
Hindsight is a wonderful thing, so what could you have done to kill those late-breaking bugs before they killed your product launch?
Improve your defect prevention
The most important way to get rid of those nasty late-stage bugs is to find them earlier in the development process and, even better, put processes in place to make this happen more consistently.
The later a bug is found in the software development process, the more it costs.
That’s why your defect-prevention strategies and processes need to be rock solid from the very start of the project lifecycle. These seven tips should help you clear the bugs from your process before they become an issue:
Everyday prevention strategies
- Reviews and inspections. Design, software requirement specifications, coding, documents; everything in a development project should go through a review process to eliminate any unspotted bugs. Many brains are better than one, so these reviews are most effectively conducted as peer reviews. Each software component should be presented to a group in each development and testing phase so that everything is checked by the rest of the team.
- Walkthroughs. By guiding others through a prototype of the final software product in a software walkthrough, programmers allow the rest of the team to view the software running, just like a customer would see it. This makes for easy visual bug screening and quick, collaborative bug removal early on in the testing cycle.
- Meetings. Meeting with your colleagues on a regular basis ensures that everyone is on the same page. The whole software development team should know what’s working and what’s not in order that constant improvement can be made.
Essential prevention processes
- Test-Driven Development (TDD). The continual cycle of testing provided by TDD means that more testing is carried out and therefore more bugs are spotted. Plus, since TDD uses a repeated unit testing method, every nook and cranny of a software product will be checked throughout the development process. This method cuts bugs from the early stages of development right through to product launch.
- Continuous integration. Because it provides instant feedback and simplifies teamwork, continuous integration allows teams to identify problems early and fix them early. It also saves you a lot of time and money.
Bug tracking
- Defect logging. The way you record defects will affect how effectively they’re dealt with. Follow this advice to make sure your defect logs give developers all the information they need to fix the problem.
- Root cause analysis. Once a defect has been found, make sure the cause of it is analysed and noted. Learn from history to avoid repeating it.
A symptom, not the cause
If your releases are delayed often, late-breaking bugs aren’t the cause: they’re just a symptom of an earlier failure.
Late-stage bugs are not inevitable nor are launch hiccups. When it comes to dealing with frustrating and costly defects; prevention is better than cure. In other words, your grandmother was right: a stitch in time saves nine.
(Hat tip to Guilherme Tavares for the image)
Logan Murphy says
I find the two options for software development you listed pretty interesting. I can see how there could be benefits and disadvantages for both. On a customer standpoint I would rather have the company delay the software release so they can fix the issues first. My cousin is in software development, I think he would be interested in this article. Thanks for sharing!