Take the example of an internal application. Someone in the business comes up with an idea that will increase revenue, improve workflow or improve a user feature. If it means more revenue, more than likely it gets a bigger push to be completed and perhaps rushed out the door before all of the supporting groups can do their parts.
The project is completed "on time" but not all of the stakeholders were taken into consideration, which resulted in insufficient requirements. So, when the application was released, those who were left out had to scramble to conform to what's expected or find a work-around. And they hope that the next version will include what they need.
On top of that, QA and the testers didn't have enough time to do their parts. Yes, the application does what it's supposed to, but what is its effect on the systems and applications it interacts with. Can it work with those systems? Can those systems handle the load that will be placed on them?
How about taking time to train the users? If a project is rushed, chances are there won't be enough time to train the people using the application.
It doesn't matter how soon the project is released if at the end you're left cleaning up messes everywhere. Those messes end up in system down time; exasperated users; unproductive workers (waiting for the systems to come back up); upset testers, QA engineers and project managers; and perhaps even loss of revenue.
Take the time up front and you won't have all the headaches at the end.
Have you found yourself in this type of situation? Share your experiences, vent, or work through your pain. Send your comments to me at firstname.lastname@example.org.