views:

317

answers:

12
+12  Q: 

Last minute bugs

Can you suggest tips on dealing with last minute bugs when the product shipping date is very near?

+9  A: 

Ship it today, then tell users it was April Fool's prank

Samuel Carrijo
Funny, you are!
rkrauter
I set this as CW. I don't deserve 97 points for such an answer
Samuel Carrijo
+3  A: 

Get buy-in from stakeholders on bug priorities. Good communication is the first step in avoiding disaster.

Jon B
Very true - nobody likes having decisions thrust upon them, especially from below.
Chris Thornton
+3  A: 

Document the bugs and make sure there is a known issues document. Be as candid as possible with the users and work out a way to get fixes into the next release. If necessary be ready to provide additional support to end users. They will appreciate the fact that you understand the impact of the bugs.

BrianLy
+1 great answer
BlueRaja - Danny Pflughoeft
+10  A: 

It depends on the severity of the bug, risk/complexity of the fix, availability of testing resources, and product management priorities. i.e. if it ships tomorrow and the fix takes 2 hrs for dev, but 2 weeks for testing, then you can't squeeze it in. If there's a decent work-around, or it affects a relatively low number of users, then product management may decide to ship it anyway. That decision is usually made at the higher pay grades. Your job is to tell them what their options are, and your assessment of the cost/risk/impact of each option.

When enumerating the options for possible fixes and work-arounds, include the bad ones as well as the good ones. It makes you seem thorough, and it makes the mediocre solutions seem better, in contrast.

We're currently in the midst of one of these. A bug was found this week that is pretty much a show-stopper, and it made it though testing because it's only evident when testing against the actual production environment (involves certificates that are only required by the production firewall). They're making time to ram it through testing, but only after we exhausted all work-arounds. I presented the options to product mgt after first asking here on SO to be sure that I wasn't missing an easy fix (wasn't). I was very open about what the fix involved, explaining things in non-technical terms. And we promised to do a formal code review, which further helped calm things down. Then I went and sat with the tester this morning to make sure that she knew exactly what to do in order to test my changes. Now I'll go and knock on her MGR's door and explain that her helpdesk request for admin rights on her PC is REALLY NECESSARY and needs to happen TODAY. Otherwise, she can't delete the certs and re-load... Those are the kinds of things that you do when you've got these last-minute bugs, and the project so far, has been called "best project ever"....

Chris Thornton
+6  A: 

Triage them. Resist the temptation to fix them at the last minute -- you may introduce a worse bug. Only hold up the release for something more serious.

Jamie Cox
If you use unit-tests or even better TDD, doesn't that prevent regression when fixing bugs? If there's no automated testing, that's a lot harder to tell then ofcourse..
Niels Bom
@Niels Bom: No. Tests can be faulty just as easy as code is faulty.
Billy ONeal
@ZOMBIE UNICORN -NOM-NOM-NOM but with the same reasoning, why have unit tests at all, if you cannot depend on them? (I'm pro-testing, and I acknowledge that they can be faulty as well, but they shield against regression, right?)
Niels Bom
@Niels Bom: Unit tests are useful. They aren't infallible. They do protect against regression (unless you find a new way to trigger an old bug), but they don't stop you from introducing an entirely new bug.
David Thornley
+1  A: 

get incriminating pictures of the stakeholders and then blackmail them in to agreeing to your release date.

yamspog
I like the way you think!
HLGEM
A: 

How serious are the bugs? You know you're shipping buggy software, because you know there are bugs you haven't found yet. If there's no showstoppers, document the bugs and ship anyway.

David Thornley
A: 

If your QA team is still finding P1 problems the worst response I could think of is to fix them quickly before the shipping date without pushing the release.

If instead problems are minor the worst response I could think of is to fix them quickly before the shipping date. They should be queued into your regular maintenance cycle.

There is sometimes temptation to run around like a rabbid chicken with its head cut off. Doing so more often than not results in piss poor outcomes.

Einstein
If the bugs are minor, don't fix them. Any bug fix runs the risk of introducing a major bug.
David Thornley
+3  A: 

OK show stopper bugs first:

Let the managers and sales guys know as soon as possible that you have a show-stopper and that the date might be delayed. Have them communicate to the customer (you may have to push hard for this, they hate telling bad news). Remind them the customer will be happier to get the product a week late than get the product not working correctly. Point out how serious the bug is to the operation of the program. Be sure they understand why it's a show stopper in terms non-programmers can understand. Be prepared to explain why you didn't catch it earlier. This is where the team lead needs to be strong and stand firm against shipping with a show stopper. They will forget readily that you missed the date but will never forget that the application did not work. Company reputation and future business depends on delaying, make sure senior management understands this.

Minor bugs - you can ship with these as long as you track them and fix them as soon as possible. Shipping with known bugs and then failing to fix them in the first upgrade release, not good.

Really minor bugs (to a programmer) but which are noticable to the user, fix if possible. The code may work great but if the screen has things that are misspelled or uses the wrong name for something the user is familiar with, the user will think it is a buggy product. I remember reading in Augustine's Law's that dirty pull down trays on an airplane make customers worry about whether the engine maintenance is done.

HLGEM
A: 

Here's a story I read somewhere...

When the shipping date arrives and you aren't quite ready yet, burn a really large file onto a CD and change the file extension, effectively "corrupting" the data. Mail this CD to the customer, all the while continuing to work on said bugs. Once they receive it and determine it doesn't work, explain to them that the post office must have x-rayed the disc and corrupted the data. Take a few more days fixing your bugs and ship them a working copy with "DO NOT X-RAY" written on the envelope.

Jason
wow. seriously? someone suggests "get incriminating photos" and gets upvoted and i repeat an (true, if i recall correctly) anecdote and get downvoted (sans explanation). thanks guys.
Jason
A: 

Just state when ask - its an undocumented feature.

re
+1  A: 

Rank the bugs as one of the following

  • Critical
  • Important
  • Cosmetic

Estimate how long it is going to take to fix the bugs in the first two categories. These are the ones that will drive your customers away. Move your ship date if you cant fix these. People are used to software release dates slipping.

Release a beta version or release candidate on the original ship date so customers can start playing with the software without expecting everything to work.

Set a realistic new shipping date. Try to delay the ship date once, or as few times as possible.

James Westgate