It is too often the case that software is 'completed' in a rush, as the developers try to meet a deadline, usually with the result that the production code is poorly polished and full of bugs; in many cases where the schedule is overrun, the product is shipped incomplete, and has to be repeatedly patched and upgraded.
One possible solution to missed deadlines might be not to set them: that one should not promise a hard and fast time schedule, or announce a product release until the product is already finished. By avoiding the scheduling pressure, and concentrating on the code's correctness, the sloppy mistakes which waste time towards the end of development can be avoided entirely, thus saving more time than it takes.
However, see QualityIsntAlwaysCompetitive for why this may be a losing market strategy.
- JayOsako