Freelance developers walk a tightrope: make the most money possible, or work with the best people? Sure, the two worlds can intersect, but in the Venn diagram of freelance development, it’s often a sliver. To make life easier, here are three types of clients you should avoid.
We’ll first qualify this list by saying it’s not always easy to identify these types of clients ahead of time. After a meeting or two, you might be left with a great feeling about the client, only to be blindsided later on. Similarly, tough questions from a potential client might just be innocent fact-finding salvos. There’s an easy way to make sure everyone gets what they want, though.
First and foremost, having a rock-solid contract is always a good idea. The best clients will enjoy knowing what they get for their spend, and a carefully worded contract makes it easy to stiff-arm the worst ones at the most difficult times. While legalese is tedious and boring, having plenty of fine-print and bullet points explicitly detailing what is being offered is necessary.
Still, you’ll undoubtedly have trouble with clients at some point. Even when you’re doing all the right things, clients can be hard to work with.
Everyone is afraid of this one. This is the client who seems easy enough to work with, signs the contract without hesitation – and then fails to pay once you’ve delivered the product as promised. There’s always an excuse, too!
This client is the best reason to have an ironclad contract. Within that contract, you should lay out in great detail when you will deliver products or work-in-progress milestones, and when payment for those deliverables is expected. Give yourself (and the client) plenty of time here, too; some things may need to be re-worked after delivery, and if you have to deliver a day late, you won’t want to be a dollar short because your contract lets a client off the hook.
Unfortunately, this is also the toughest client to identify ahead of time. Unless you’re auditing clients (and you’re not), you won’t know their cash flow. The downside: you can’t do much beyond sue this client. (Pro tip: work penalties into the contract for late payments. Faced with paying even more, a client might just pony up the cash they owe you on-time, even if it’s against their will.)
The ”One Last Thing” Client
You sit down, chat about their needs, and everything seems good. A signed contract in-hand, you’re confident this client will be great to work with, and you know exactly what they want and how to deliver. Celebratory drinks all around!
That was Friday. Once Monday rolls around, this client has sent five different emails asking you to add something, or has all the feels about the color of a button, and you haven’t even started the work.
Even after you agree to act in good faith and deal with this person’s new wishlist, they’re asking for more. In-app payments are easy to implement, right? You can link back to their personal blog and support Google AMP pages, right?
This is all going to cost the same and be delivered on-time, right? Right?
This is the wrong client for everyone. Beat that contract drum and let them know you will deliver what was discussed, on time, and any additional work can be discussed once you’re finished… along with a new payment structure for the additional work. Once they start to understand that more work means more money, you could have no more problems.
The Eager Beaver
Just as annoying as the other two, it’s actually sort of hard to be mad at this client. They are excited to see what you’ve been working on, and they’ve got a lot of clients of their own waiting to start using it.
And they won’t shut up about it.
This is the client that thinks two weeks means three days, and changing UI elements is like coloring with crayons. They don’t care what the contract says – they want it done yesterday.
Delivering ahead of schedule makes this client happy, and they’re probably ready to pay. Depending on their long-term needs, it could mean more work later on, and even referrals. Both are great things for any freelance developer.
Unfortunately, being exceptionally performant sets a different expectation for this client, and, if you’re not careful, could leave you prioritizing them without meaning to. Every good developer wants to deliver great products, so it’s natural to want to meet their needs, but doing so without sacrificing work elsewhere is a tough proposition.
This client means well enough, but doesn’t grasp the nuts and bolts of what goes into an app, website or service. A bit of patience is necessary here, because you know they don’t have any. For many, the nagging just won’t be worth it, and that’s understandable. Besides, if they have more work for you, it’s likely going to be the same old song and dance.
It’s Not All Bad
Some clients are a pill, there’s no doubt about it. With a better understanding of who’s out there, and who might not be worth the trouble, your overall workflow will improve.
Every minute you spend emailing about a missed payment or calming down a client who “needs” their app now is time you’re not working for current clients or finding new ones. You won’t always be able to avoid problems, even with the best clients, but these three are some of the worst you can have.
Just remember to have a solid contract, and don’t engage when you’re upset. For all three, this is how they do business. It works for them. If it doesn’t work for you, that’s fine, but don’t send angry emails. Even if you didn’t have the best time working for them, they may have thought you were wonderful. Even in the worst of times, a good referral once the dust settles can be worth all the hassle.