The tension comes from the lack of communication. Or the lack of ability to communicate your intentions. It's been my experience that marketing tends to make quick, rash decisions, to promote our product, or to appease a customer. On top of that, for some reason they don't tell anyone about what they need until the last possible minute. This then falls back on the developers who just frustrate themselves by continuously trying to explain why it is that they can't make the software do "that" in such short time. I hate to say this but, (again in my experience) it's because of their non-technical nature, that they just don't care to hear why it is that something can't be changed so quickly. This leads to a lot of frustration and confusion, because of the continuous requests for un-accomplishable tasks. All the companies I have worked in, could have used some sort of mediary, that could explain to each department what the other is talking about, in their own terms.