Download the authoritative guide: Cloud Computing 2018: Using the Cloud to Transform Your Business
We all know that lighting matches near a combustible substance like gasoline is not a good idea. Yet people go up in smoke every year.
Similarly, putting a developer and a customer in the same room can have a combustible effect. Many developers tend to be very direct, and talk in technical terms the customer can’t comprehend. They sometimes have very little patience for customers who send mixed message about their requirements.
As a result, many developers (and their projects) go up in smoke every year as well.
The fact is, developers are taught how to write code – NOT how to deal with customers. Over the years, I have worked with many different types of customers and have learned that each customer has a different way of working, different expectations and, frankly, different temperaments.
That seems obvious enough, yet developers – even seasoned ones – sometimes look past the interpersonal aspects of dealing with customers.
I have written about why managers may want to think twice about having developers talk directly to customers. However, there are many developers that are quite good at interpersonal communications.
In fact, when a developer has the combination of strong functional understanding of the business they support and a deep technical expertise, the result can be a deep level of confidence and trust with their customer.
When Kenny Chesney sings about how a boy and girl can be like matches and gasoline in “Ain’t Back Yet,” the implication is that the results can be both good and bad. And as in romantic relationships, understanding how to deal with different personalities can impact the outcome of business relationships.
Therefore it is important to recognize that when you are dealing with a customer, you are building a relationship. It could end very badly if lines in the sand are drawn. Or it could result in a long congenial relationship when common ground is found.
I’m not overlooking the fact that a developer without the required technical skills to get the job done isn’t worth too much. But I would argue that a developer that doesn’t have the necessary people skills to work with different types of customers is not worth a whole heck of a lot more.
A more dynamic developer is one that can handle the bits and bytes, as well as handle a customer that is unaware their attitude is submarining a project.
It’s not always as simple as asking the customer questions about how they want a system configured or how they want a change coded. A well-rounded developer will have the people skills to deal with all kinds of personalities and be able to make the resulting technical changes that put a smile on the customer’s face.
Here are three types of customers that are exceedingly challenging and some ideas on how to best deal with them.
1. Detail Oriented – I once had a customer whose written feedback comments were almost as long as the original requirements document. He once said “Sorry I’m such a PITA.” I had no idea what that meant and had to Google it. Turns out PITA stands for “Pain In The Ass.” At least he knew his personality type!
Nothing gets past these customers – which is both good and bad. They tend to focus on the excruciating detail of every requirement and outcome, often providing a lot of overbearing guidance and suggestions that can make you wish they could write the code themselves, because it seems like you’ll never get it right.
On the other hand, working with these types of customers can provide some unique learning opportunities, since they have often developed extensive knowledge and understanding of their particular systems and environment. Often, a big challenge here is to get them out of the weeds enough to focus on the bigger and longer term picture around what they are trying to accomplish.
If you go the extra mile and provide more relevant and insightful detail than usual, you will go a long way to improving their level of satisfaction.
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.