As we revisit the Agile Manifesto, we come to the often ignored line "customer collaboration over contract negotiation," and we all say "Well duh! Of course we'd rather talk than get the lawyers involved." Then we go on about our daily lives as is the line wasn't there. Why is that?
There are several reasons. Not the least of which was the early Extreme Programming preoccupation with having a customer in the room with you every day. More recently people have come to recognize that type of intense customer involvement is much easier to accomplish when you develop software for in-house use and have an internal, and convenient, customer. Most software teams never had that luxury, and early XP advocates wouldn't budge on this issue, so many developers learned to ignore any comments related to customer interaction.
Another reason is that we are all very smart people, and as smart people, we know what our customer needs. Probably better than the customer knows themselves.
That last bit is, of course, the epitome of arrogance and complete rubbish. Your customer knows what they want, not you. That type of thinking leads to lawsuits, not happy customers.
We can revisit one key word in the manifesto and glean a great deal of insight. Collaboration. Collaboration requires that you actually talk to the customer, and that you listen. And that they listen to you as well.
When I mention this topic in my talks, I like to ask developers who collaborates with their customers. Nearly everyone always raises their hands with a great deal of enthusiasm and pride. I ask them to leave their hands up if they've spoken to their customers in the last week. With much shame, nearly every hand drops.
We like to think we're collaborating, but without a conversation, we can't be. It simply doesn't fit the definition of collaborating.
What did the authors include this line? Because when you ignore people, they get angry. Their feelings get hurt and they strike back. Remember back to your dating days and recall the former partner you didn't call often enough? See?
If you talk to your customer frequently you can discover small problems before they balloon out of control. If you tell them to be quiet, sit over there, and I'll call you when I have something to show you, then your small problems will get big very, very quickly. Once people don't trust you anymore, they'll go to any lengths to force you to prove you're doing the right thing (can we say "compliance"?), or to dump you.
Does the contract matter? No. Not as much as the people who signed it. Keep them happy... talk to them. To paraphrase Billy Joel, "tell them about it." If you talk to your customer frequently, and actually collaborate, you'll find the contract won't be pulled out at every meeting. You'll hear what I heard from a client last week.... "Let's ignore the contract and just get this done!"