.NET Rocks episode 438 interviewed Patrick Hynds on why projects fail. One of the reasons is unclear expectations. He said in the interview that no matter what you say you’re going to do on a project, clients have additional implicit expectations. Hynds says that in order to have a successful project, you have to “destroy any hope” that you will deliver anything outside the specification. Here’s an excerpt from the podcast transcript, emphasis added.
… if I give you a spec I’m going to give you everything this document says and nothing more. In other words, if it’s not shown or described in detail in this document, it will not be done. … this is going to cost you X thousand dollars and if you expected something else to be in there, it won’t be. It sounds bad but you have to destroy any hope they have that you’re thinking the way that they’re thinking. …
I mean, in web projects we state explicitly what resolutions we will support and none others. What browser versions we will support and no others, what back-end database versions and libraries we will support and no others, that kind of thing. … I find for everything you say you’re going to do, you have to define one or two things you’re not going to do.
Hynds’ advice may sound adversarial, but everyone is happier in the long run when there are clear expectations up front.
Here’s another good quote from Hynds later in the interview.
There’s always someone out there willing to bid less to do a bad job.
I would also remind Mr. Hynds:
There is always someone out there willing to bid less and do a bang up job because their costs are lower than yours.
John, excellent post. Telling the customer the good, the bad and the ugly fosters confidence in the service provider. Sell the customer a dream and they will wake up in a nightmare (e.g. Madoff scandal).
I don’t know how reasonable and how practical Hynds’ opinions are. First of all, there are lots of the things that the client asks for that are subtly in the scope from the client’s perspective, how can you deal with that?
IMO, “Destroying any hope” is a Utopian thing, that doesn’t apply in real life, there’s always a give and take, especially in IT Projects, where the client isn’t sure of what s/he wants in the first place, or doesn’t know how to explain things properly.
I have published an article covering this issue, how to say no, take a look!
Project Management Hut: Thanks for the comment and the link. I agree that clients often don’t know what they want. They hardly ever do. That’s why I like short development iterations and agile development.
I take the “destroy any hope” comment as an exhortation to be as explicit as you can about requirements, stated both in the positive and in the negative, before you begin. You might tell a client “this will run on Windows” but they implicitly think that means it will run on a Mac too even though you didn’t say that. Sometimes you have to say “The software will run on Windows XP and Vista. It will not run on earlier versions of Windows, and it will not run on Mac or Linux. We could add support for other platforms if you’d like, but then we would need to revise our proposal.”