Here’s one of the facts of life in the software development biz: Some clients are just plain hard to deal with. What I mean by "hard to deal with" is precisely the opposite of what you feel about clients who are a joy to work with.
Certain clients are so difficult that they’ll make you look for ways to bail out of the project, even if it means you’ll be breaking a contract and forfeiting much-needed income.
Some of the clients you “love to hate” are external clients, people with whom you’ve signed a contract. However, they can also be internal clients—your coworkers.
In both cases, you’ve got to ask yourself one question: How do I complete the project in a professional manner without going ballistic on those people? Here are some soft-skill tips you can use to help you improve your client relationships.
Consider the possibility that the problem is you
When you're the developer, the system designer, the project manager, or you're wearing all three hats, you'll frequently find yourself working with difficult clients. From your point of view, they’re “difficult” for a number of reasons, such as:
- They aren’t technically savvy enough to fully understand the project.
- They frequently misunderstand (or ignore) your e-mail messages, status reports, and technical specification documents.
- They fail to respond to your requests for information, often putting you on the brink of missing project deadlines.
If you feel like you’re not getting enough of your client’s attention, consider the possibility that you may be the root cause of the breakdown in communication.
Ask yourself these questions:
- If I recognize that my client isn’t technically savvy enough to fully understand the project, but is savvy enough hire me to do the work, have I done everything I can to fully explain the project?
- In writing my e-mail messages, status reports, and technical specification documents, do I use language that is unambiguous, that is easily understood, and that doesn’t contain an overabundance of technical jargon and acronyms?
- When I request action or information—either verbally or in written form—am I being absolutely clear about what I need? Am I specifying a “due by” date when I make requests of my client?
I hate to resort to a cliche, but your customers are always right, even when they’re wrong. If you’re not getting the cooperation you need from your client, double-check your records and make sure you’re not the one who missed a key deadline. Reread all correspondence and documents you’ve written to and for your client, and make sure you’ve communicated what you think you’ve communicated. On rereading an e-mail thread, you might realize, “Oops, I forgot to mention a particularly important piece of information.”
Your clients are only human. If you’re feeling frustrated by the state of client-developer relations, chances are the client feels the same. The difference is you are the person being paid to be superhuman when it comes to developing and delivering software solutions.
Improve relations by changing the environment
Sometimes the problem isn’t you—it’s your client’s work habits. I recently wrote an application for a client who never seemed to leave his office. He ate out of the vending machine or had food delivered in. When I met with him, phone calls and people knocking at the door constantly interrupted our conversations.
I was frustrated because I felt like I never got enough of his attention to take care of some simple but important details. I found myself resenting this client for being perpetually too busy to talk. Finally, I determined that, if I was ever going to get quality time with this person, I had to get him out of his office.
I invited him to lunch two or three times before I was able to actually get him onto the elevator. We went to the Korean restaurant on the first floor—where I loved to go every time I came to this client’s building. It turns out he loved the food there too.
That was the breakthrough I needed. While there, we talked some shop, but we also discussed food and other things unrelated to our software project. From that point on, I used lunch at the Korean restaurant as my signal to the client that I really needed to talk to him one-on-one. He loved using that as his excuse to escape from his office. He’d tell the people lined up waiting to see him, “Can’t talk now. Jeff’s taking me for Korean food, so it must be important.”
If you’re having trouble scheduling quality face-to-face time with your client, give this approach a try. Find out what kind of food the client likes and schedule a meeting at an appropriate restaurant. When you get there, don't talk business. For the first five minutes or so, try to connect to this person in a different way than you have before. Talk about hobbies, family, or sports. The discussion will soon enough get back to business.
Improve relations by changing your approach
There’s very little, if anything, you can do to control or change how your clients behave. However, you do have complete control over how you behave, thereby changing the way your clients perceive you and react to you.
If you feel like your client is getting burned out on working on the project in general, or on working with you in particular, consider changing the way you interact with your clients. Here are some suggestions.
Change your look
As a consultant, you probably either dress up to look professional, or you dress “business casual” because that’s the client’s dress code. No matter what you’ve been doing, change it. If you've been dressing up, dress casual. If you've been dressing casual, dress up. This tip applies to internal clients (coworkers) as well. If you’re the only one showing up for interdepartmental meetings in a tie (or without one), maybe you’re creating the image of an outsider. Go with the flow for a change.
Change your schedule
As a consultant, do you typically roll in at 10 or later? Show up earlier. Maybe the client’s employees secretly resent your schedule. (Whether or not it's any of their business doesn't matter.) On the other hand, if you're coming in early, maybe you're being seen too much. Try scheduling later start times for some visits. Give the client’s full-timers some space and time. If you’re having difficulty dealing with internal clients, maybe they don’t like the way you schedule meetings. Try a different time of day.
Change your method
In communicating with your client, have you been relying too heavily upon the use of slide presentations, handouts, or “issues” lists? If so, get off the screen, forget the paper, and get thee to the whiteboard. You project a different energy and demonstrate a different communication style when you’re leading a discussion and writing on a whiteboard than when you’re reading from a memo or clicking through slides projected on the wall. Schedule your next meeting in a conference room with a whiteboard; then get off your chair, grab your marker, and lead the meeting.
Keeping the peace
When you feel like you’re on the brink of going ballistic on a client, chances are the feeling is mutual. To eliminate misunderstanding and encourage cooperation, take an objective look at your own communication style, and then make some changes. You must debug your relationship with your client using the same scrutiny with which you debug your code.