Last year I was asked to quote a project.
Me: "Based on these requirements, it will take 6 weeks to deliver."
Them: "Can you do it in 4?"
Me: "Most likely but it will be tight and I may have to cut a couple of corners."
Them: "Ok. Do it."
2 weeks later..
Them: "WE NEED TO TURN THIS OVER TO QA IN ONE WEEKS TIME!"
I delivered the project the next week. It passed QA and was deployed to production. A couple of weeks later I was invited to a meeting to discuss some performance issues related to a background task.
Them: "Had you taken a different approach, it would perform much faster. Why did you make that architectural decision?"
What did I learn?
Any time someone decides to throw the agreed upon schedule out of the window, the potential risks involved with that decision need to be clearly documented in an email. Had I done a better job of communicating that, maybe they wouldn't have pushed to trim another week off of my already compressed schedule? At a minimum, at least I would have had a risk register to refer to during the discussion.