In my current company, in all software projects I've been in, there's usually a phase at the end of a project that eats some good amount of time and is dedicated to polishing new features so that they're ready for launch.
In Steve McConnell's book "Software project survival guide", he advocates doing that after each major milestone that's completed on a project (and possibly launching at that point too). Let's say that we don't want to launch after completing major milestones, because our product needs to be launched in a more coherent state. Have any of you had a positive experience with serious bug cleaning efforts done a couple of times during the project lifespan, as opposed to doing that before launch?