I've been the manager of a team of programmers, pushed by Sales / Marketing types to agree to ridiculous dates. I finally learned a productive response that has served me well for 20+ years: I draw a dependency diagram on a whiteboard, with all of the "completed" stuff in green, and all the "incomplete" stuff in red (redrawn in green as completed), and with our (even wildly optimistic) estimates for each. The screamers come by, and I show them the diagram. This gets them to a) see the complexity of delivering a software-based product, b) see that most of the stuff is crap they've demanded, and c) gets them to start thinking about what to remove in order to bring in the availability date. The focus is now off the team, and back on the product features and complexity, where it belongs.