One of the scheduling tips I discuss in my project management workshops is “Plan to refactor.” I explain that if you're using a lifecycle other than Agile, where the integration and testing is built into every iteration, you're going to have to refactor at the end, when you do integrate and test.
At one of the workshops, one of the participants said, “You always have to plan to refactor. If you do plan for it, you will. If you don't plan for it you will, anyway. So plan for it.”
File this under wish I'd said that.