The oft-quoted “the customer is always right” is just plain wrong. If they were always right about everything, they wouldn’t need to bring in consultants with specialized skills, would they? Also, what if you have two customers, and they each thinks that the other customer is wrong? Instant Paradox!
I think instead that you should aspire to love the customer. Really. Anyone who has been married knows that it’s possible to still love someone even if you think they are wrong. Love, like software development, only works if there’s mutual respect. Even if you’re one of the best developers in the world, if you have the (all too common among coders) arrogant notion that everyone in sales and marketing are “stupid” or “dysfunctional”, you aren’t going to have successful projects.
Sometimes, things might happen that cause you fall out of love with a customer/client. Then it’s time to move on. Do the whole “It’s not you, it’s me” thing.An e-mail exchange with a truly dysfunctional customer is paraphrased below.
Me: “I’m sorry, I’m going to have to cancel our scheduled meeting, something came up. Can we meet tomorrow.”
Client: “This is unacceptable! You can’t cancel a meeting with me.”
Me: “Um… I can and I will cancel meetings when I need to. Something urgent came up. We can meet later this afternoon or tomorrow.”
Client: “This is unacceptable! You can’t talk to me that way! I’m going to shut off your access to the staging system so you can’t deploy your code anymore!”
Me: “Isn’t that kind of petty and vindictive?”
At that point, the client killed the project. It was a big loss for us. Or was it? It’s impossible to love the client in a relationship like that. And they sure as hell weren’t “right”