Years ago, just after graduating from college, I worked for a series of startups. In those companies, I was primarily a programmer, but I also spent a good deal of time facing clients. I installed our software products and helped customers with their questions about using the applications. When problems arose, I worked with clients on the phone to learn the root cause of the trouble and fix any bugs I found. In cases where I couldn't re-create the problem in the office, or when our account manager felt the customer needed special attention, I would travel to see the customer in person.
I studied computer science in school, because I loved working with computers. I was analytical, and the discipline of software engineering seemed natural to me. It never occurred to me during my college years that one day I would be dealing with customers. I was shy. I preferred working by myself, coming up with neat solutions in software—it was like working on mind puzzles all day long. I imagined that one day I would come up with some clever software all by myself, and the world would somehow recognize the value of my work and beat a path to my door to get it.
So I was quite unprepared when I entered into the work world and was immediately required to work with clients. Looking back from two and a half decades later, I now see that it makes perfect sense for programmers to work with clients. Ultimately somebody will use the software you develop. If you don't have a feel for what users want, it's unlikely you'll be able to meet their needs.
This brings me to the following axiom, which has always been true, and will always be true:
Software engineers need to know how to interact with customers and users.
A second observation (one that's more a matter of opinion than axiom) is the following:
The single most difficult aspect of working with customers is saying "No" effectively.
The Importance of Saying 'No'
I had my own personal struggles with saying "No" to clients. At first, I just accepted any request coming from a customer, without question. But that didn't mean I fulfilled the requests. Because I couldn't bring myself to say "No" to somebody I perceived to have tremendous power over me, I wound up with too much to do, and I had to drop a few of the tasks. However, I did this without telling anybody, because I was too shy to mention it, and I reasoned that nobody would notice anyway.
Over time, I got braver, and I started saying "No" to clients. But sometimes that came across as aggressive. As a result, some customers then were hesitant to ask me for things, and this hesitation limited the free exchange of ideas. I couldn't tell what they wanted. Working in the dark caused a whole new set of frustrations. I would misinterpret requirements, and sometimes I'd fail to understand the business issues behind customer requests.
I went from one extreme to another, and neither of the two approaches was satisfying. Through these experiences, and from watching other people, I realized three things:
- It's important to say "No" to clients when you can't do what's being asked, or when you think you have a better idea.
- There are good ways of saying "No," and there are bad ways of saying "No."
- You can learn the good ways of saying "No."
The immediate benefit of turning down a request you find inappropriate is that you don't do work that you think shouldn't be done. In addition to that immediate benefit, saying "No" to a client has at least four good secondary effects:
- It helps you to gain the customer's esteem. Clients respect you more when they see you aren't a pushover. Whether consciously or unconsciously, they place a higher value on your opinion and on your work. If saying "No" is difficult, remember that it's far more important to be respected by the client than to be liked.
- By telling the client what you think, you're doing what you're paid to do. Even when it's uncomfortable for him or her to hear, the customer wants your expert opinion. Once they get over any initial shock of being turned down, most clients appreciate the fact that you're applying your professional judgment.
- By saying "No," you protect yourself. You can't do everything for everybody, and you want to be compensated fairly for what you do. Taking on too much work takes away the time you might apply to more strategic tasks. And remember, you do have a life outside of the job. Don't fall into the same trap as countless other people, who have so much trouble turning things down that their jobs wind up encroaching on their personal lives.
- By saying "No" when you mean it, you maintain personal integrity. It's good to make a habit of telling people the truth. Sometimes the truth is that you don't intend to do something, or you think you have a better idea.
Saying 'No' to a Client
I can think of a lot of bad ways of saying "No," but only a few good ways. With a little practice, anybody can learn how to say "No" effectively—even to customers. Here are six suggestions of ways to say "No" to a client, each tailored to a specific situation:
- When you think what's being asked is immoral or unethical, point this out to the client, but avoid sounding judgmental. Listen to what the client has to say, and be open to having your own opinion changed. The customer may have valid arguments and shed light on things you hadn't noticed. But in the end, don't let anybody pressure you into doing something that goes against your values.
- When what's being asked is not in your contract or agreement with the client, point out the discrepancy—without suggesting that the customer doesn't understand the contract terms. Here, too, be prepared to change your opinion. After all, you may be the one who overlooked something.
- When you don't feel you're being paid enough to do what the customer is asking, point out what you think your market value is, and why. Remember to refer to objective market figures, such as the average price charged in your region for the same kind of work. Before you approach the customer, think about things you might trade in the ensuing negotiation. For example, instead of higher pay, the client might promise you a substantial volume of work over the next year.
- When doing what the customer asks would jeopardize another important task for the same client, ask the customer to decide which task gets dropped. Offer the client the opportunity to give his or her opinion first, but also be prepared to provide your own views about relative priorities. Try to remain objective and state your opinion in terms of the customer's interests.
- When you don't think what the client is asking you to do would be beneficial to the client, explain why. Because the customer may have an emotional attachment to what he or she is asking you to do, make sure you have solid arguments backing your views. Be prepared to provide an alternative before getting into this discussion.
- When you don't think you're capable of doing what the customer is asking you to do, be honest. Before you approach the client, think of who else might be capable of handling this task, or come up with an alternative for it. Keep in mind your own interests—don't point your customer to your fiercest competitor.
Remember that when you turn down a request from a customer, you're either creating a new problem or pointing out one that existed unknown to the customer. This brings us to one more general rule to keep in mind when dealing with customers:
Whenever you point out a problem to a customer, always suggest a solution later on in the same conversation.
The better you work with your customers, the more smoother your projects with them. I'll elaborate on some ways of keeping projects from falling apart in my next article, "Nipping Project Disaster in the Bud."