On the topic of managing expectations, I think that agile came about because waterfall was so rubbish at that.
You get this big chunk of ‘Discovery’ and ‘Design’ where consultants ask you all sorts of questions about how you currently do things (“as-is” processes), and tal about how you’d do it differently in the future, on this system they are going to be designing for you (“to-be” processes).
Then they write it up in big documents, many many pages of text, with some flow charts or some diagrams, that you have to “sign-off”.
At this stage, you haven’t got a clue what you’re getting, if you’re anything like me.
I cannot visualise very well, so I love many pictures and diagrams.
So this team goes away for months, and then they come back to you at the start of User Acceptance Testing (or “UAT”) to show you the system you’re getting.
That’s the first time you get to see the system.
“That does not match my expectation.”
Obviously those words come out in many different ways, some more colourful than others.
That’s why so many people poop on waterfall.
I made sure my design documents had mock-ups, scenarios, and I play-back and present my design and findings during “sign-off” and I take _extra_ care to make sure the client understands what they are getting.
Doing that up front, during the design process, reduces the probability of colourful language when the unveiling happens.