2. Easy Going – “No problem” was often the favorite phrase of one of my more laid-back customers. She used to agree with everything I suggested. Until we delivered the system and she’d provide a confused look while stating “this isn’t right” even though the code was fulfilling the exact requirement she signed off on.
She was frankly being lazy and not taking the time up front to think through all of our proposed changes. This resulted in an endless, unproductive merry-go-round of changes.
Easygoing customers may be a bit ambivalent, to say the least. While it can be reassuring that they seem to trust your every suggestion, it can also be a sign of a lack of concern, commitment, or understanding of what it is you are there to accomplish.
They may not be as forthcoming with all the information you need and as a result it is in your best interest to track down the details yourself. Or you may have to corner them in order to get more information or guidance, which can be pretty frustrating at times and produce a confrontational atmosphere.
In either case you have to pay now or pay later.
A key thing to remember is that you need to keep them in the loop and confirm (and then reconfirm) decisions to ensure that they truly grasp what you are doing and what the outcomes are going to be.
3. Difficult – I have dealt with customers that are just plain mean, where every suggestion is met with a very negative “oh please” as in “oh please tell me why I’m so much smarter than you” or “oh please why are you wasting my time?”
Customers like this are not very forthcoming with useful information and certainly don’t spend time explaining their reasoning, causing a developer to dance on eggshells when trying to nail down requirements. Well, regardless of how difficult or obstinate a customer might be, you still have to find a way to work with them – or find another job.
It’s important to understand that there is a difference between detail oriented and difficult. Detail oriented customers will be willing to talk through the hundreds of comments inserted into deliverables, whereas difficult customers will just berate you and complain. Here is where “the customer is always right” mentality is the easy way out and will do a disservice to your customer and your own reputation.
But it is a thin line that you walk with these customers. The challenge here boils down to figuring out how to best maintain your patience and professionalism and still be able to focus on getting the job done, knowing that it is an uphill battle the whole way.
One strategy for approaching these types of customers is trying to understand what is at the root of their attitude – again, challenging. But if you can do it, it can save your sanity while writing code that results in a satisfied customer.
Let’s be honest. All of these customers may never be completely satisfied. Sometimes the best you can do is document everything and obtain sign-off on all requirements and changes.
But if you at least take some time to understand what drives them you can adjust your methods of interaction to more proactively build the relationship and more effectively collect and confirm the information you need to produce useful software.
And your project may not burst into flames after all.