Everything in nature has a life span. We rarely know how long that life span will be, but once the arc is sloping to its end, it's obvious. When you're a consultant, the same is true of client relationships. Sometimes it's necessary to fire a client who started out promisingly, but is now offering diminishing returnsor devolving into downright bad business.
Over the years, I've noticed problematic client behaviors that will affect you negatively. When you notice these abusive behaviors, stop to think about your past history with the client before making the decision to terminate. You should fire your client if the client consistently proves to be one (or more) of these abusive types:
The Disillusioned
consistently expresses disappointment with your work even though it is of good quality and conforms to spec. Certain clients are not satisfiable. They ask for x, you give them x, and they complain that they wish it were y. They signed off on the spec, they approved the deliverables every week, and told you that you were doing greatyet once the project is complete, the client is crestfallen.
You've just had the misfortune to take on a chronically unsatisfied client. A client who is constitutionally incapable of appreciating your work is not a client you should be involved with.
The Suspicious
consistently expresses a lack of trust and disdain for your work, or questions your integrity. Some people think that they can learn all there is to know about software development over a weekend. This arrogant client type regards you as something of a scam artist, someone who is charging premium rates for doing what, to him, essentially amounts to typing.
Once you become entangled with someone who regards computer work as a kind of overpaid custodial function, you'll never be able to submit an estimate, fix a bug or even suggest a solution without being second-guessed and third-degreed to death. This is not a situation that leads to success.
A client who is constitutionally incapable of trusting in your expertise is not a client you should be involved with.
The Chiseler
consistently complains about your bill, even though it conforms to the estimate he agreed to. So you wrote out an estimate that mapped back to the functional spec, and your client signed off on it. Not only that, but you managed to beat your own estimate by 5 percent! Congratulations, you've done a great job!
So why is your client complaining about how expensive this project is when he had a chance to either sign off or bail out before the work ever started?
A client who is constitutionally incapable of honoring a deal is not a client you should be involved with.
The Bully
is verbally abusive or threatening to you. I don't think this even needs an explanationwe're white-collar professionals, not street thugs.
Any client who will curse you or attempt to physically bully you (believe it or not, I've seen it happen) is obviously not a client you should be involved withand needs to be dropped with all due haste.
The Something-For-Nothing
consistently increases the scope of the project but refuses to pay for the additional work. Sometimes a client will ask for an additional feature and then express some combination of shock, disgust, resentment or even anger when the estimate is revised upward to account for the additional work. Certainly these folks don't add items to their grocery purchase after the cashier has totaled them up, expressing shock or anger when the cashier adds the price of those items to the existing totalso why do it with software projects? The bottom line is, x amount of work costs y amount of money. If you change x, you change y.
A client who is constitutionally incapable of offering additional value in exchange for additional value is not a client you should be involved with.
The Slow Pay
consistently pays invoices late. In any smallor largebusiness, cash flow is king. Once you and your client have come to an agreement on payment terms, so long as you're keeping up on your deliverables, your client should be keeping up on his payments. It's tough to have a healthy relationship if one party feels as though the other has gotten "one up" on him. The best way to keep everyone even is for you to make your deliverables on time and for your client to pay the bill on time. Anything less than that suggests an abusive relationship.
A client who is constitutionally incapable of paying a bill on time for work that was delivered on time is not a client you should be involved with.
The Flake
is consistently late meeting responsibilities, but still holds you to the original schedule.
We're all well-versed in the classic three-dimensional attributes of a software project: time, cost and features. We're also probably well-versed in the problems that can come along with servicing an undisciplined client who can't meet his responsibilities according to the project schedule. This problem is compounded when you're expected to deliver the project on time despite these blockages.
A client who is constitutionally incapable of understanding that in order for a project to be delivered on-time, everyone must meet their obligations, is not a client you should be involved with.
The Liar
consistently lies to you. Again, this doesn't even need much of an explanation.
A client who is constitutionally incapable of being honest with you is not a client you should be involved with.
The Blackmailer
consistently refuses to pay an invoice until you perform additional work at no charge. I see this a lot, believe it or not. The Blackmailer is a special subset of the Something for Nothing. Instead of taking umbrage, he takes hostagesyour dollars.
Suppose you and your client disagree on the accuracy of an item or two on Invoice A. Further suppose that Invoice B is also due, for a project unrelated to what's being billed on Invoice A. This brand of client will refuse to pay Invoice B until you see things his way on Invoice A, even though they're totally separate issues. This is nothing more than good old-fashioned blackmail dressed up in a flannel suit. Blackmail is always win-lose, and anyone who believes in win-lose in a business relationship needs to be cut off.
A client who is constitutionally incapable of engaging in good-faith dealings is not a client you should be involved with.
The Money Pit
is consistently unprofitable. There can be many reasons for this. In essence, a client is unprofitable if she takes up far more time and effort than the fees you charge her are worth. In many cases, this is a client who demands cut-rate prices and extra unpaid support, or who repeatedly does things that require you to work harder. It might even be your own fault for agreeing to a bad dealit's happened to all of us. Just like your client, you're in business to make money. If you and your client can't work together in a manner that allows you to make money while providing good value, it's time to part ways.
A client who is constitutionally incapable of offering you a fair rate for your services is not a client you should be involved with.
The Clinger
consistently makes unreasonable demands regarding your availability. Of course, you've got to be available to support your clients. However, a certain reasonable standard must be applied to determine how available you should be. Well, certain clients don't care about what's reasonablethey want the emotional payoff of seeing you get cracking on their latest request ... now!
Get used to telling your clients "no" sometimes, as it helps them to impose discipline in their technology projects. Although you need to be available for a reasonable amount of time on a reasonable amount of notice, you'll never be able to provide good service if you practice interrupt-driven development.
A client who is constitutionally incapable of applying a reasonable standard to requests for your time is not a client you should be involved with.
Letting Them Down Easy
When it's time to dissolve the relationship, be firmnot mean, not rude, but firm. Rejection is powerful stuff, and an abusive client will say anything to avoid it. Clientsparticularly abusive onesaren't at all accustomed to being told "no."
Before you terminate, line up your ducks in a row to make things easier for both yourself and the client:
- Have their invoices to date prepared as both hard copy and PDF.
- Have any client-owned project materials in your possession boxed up and ready to FedEx back to them.
- Have any source code or database scripts that they have paid for burned to CD and ready to FedEx, as well.
- Have a referral to a different provider ready for the clientpreferably a provider you've prepared in advance.
As far as the "how" of terminating a client, remember that e-mail doesn't convey a tone and runs the risk of appearing brusque or cold. Schedule an in-person termination meeting, or at least a phone call. Stay polite, no matter whatdon't exact revenge, just save yourself from further abuse.
As a professional software developer, you need to deliver on your promises. If you're doing so, and you're being abused by one or more of these 11 client types, nip the relationship in the bud and let the void fill with higher-quality business. You'll be glad you did.
Christopher Hawkins is the founder and principal developer of Cogeian Systems, a custom software shop located in Tulare, California. Hawkins has more than a decade of experience building effective software systems for companies including Exxon-Mobil, Goodyear and J.C. Penney. Reach him at [email protected].