Dealing with difficult clients: what I learned the hard way
Dealing with difficult clients cost me money and sleep for years. Here are the client types, contracts, scripts and payment rules that finally brought calm.
In this article15 sections
- Dealing with difficult clients starts with understanding why they behave that way
- The eight types of difficult client I have met (and how I handle each)
- Filter before you sign: how to spot problem clients early
- Set the rules in writing: contracts, scope and change requests
- How to handle scope creep without a fight
- Dealing with difficult clients who do not pay: my late-payment process
- Communication scripts for when the conversation gets tense
- Committees, bosses and the expert cousin: handling many voices
- Three difficult projects and how each one ended
- When to fire a client (and how to do it kindly)
- What difficult clients taught me about myself
- A one-page toolkit you can copy
- Key takeaways
- Frequently asked questions
- Next step: work with people who respect your time and your system
It was 11:40pm on a Saturday. My phone lit up with a WhatsApp voice note that was almost four minutes long. The client, a business owner in Lagos, was upset about the colour of a button. Not a broken feature, not a missing payment, only a button. By the time I finished listening I was angry, tired and ready to send a very rude reply. I typed half of it, deleted it and put the phone down. That night I made a decision. I would stop reacting to difficult clients and start building a system for dealing with difficult clients.
After eight years of building websites, business software and mobile apps for people in Abuja, Lagos, Port Harcourt, Kano and other cities, I can tell you something that surprised me. Most difficult clients are not bad people. They are frightened, confused, under pressure or badly briefed. A small number are truly toxic, and for those you need a clean exit. Learning to tell the two apart has saved me money, sleep and friendships.
I am Dan Audu, a software engineer and business technology consultant in Abuja, and I lead technology work at Xoftpro Smart Systems. In this article I share the client types I have met, the questions I ask before I sign, the written rules that prevent most fights, my late-payment process, the exact words I use when a conversation turns tense, and how I fire a client kindly when I must. I also share the part I found hardest to admit: many of my difficult clients were partly my own creation.
Dealing with difficult clients starts with understanding why they behave that way
Before you learn any technique, change the question. Instead of asking “Why is this client so hard?”, ask “What is this person afraid of?” The answer usually explains the behaviour, and it also shows you what to do.
Fear of losing money
Many small business owners in Nigeria have been burned. A developer took a deposit and vanished. A designer delivered work that looked nothing like the sample. A friend’s brother built a site that stopped working after two months. When a client has been hurt once, they arrive suspicious, asking too many questions and checking every step. That is not rudeness. It is self-protection. I now begin every project by explaining how I protect the client, with milestones, written scope and access to their own accounts. Trust falls when fear falls.
Not knowing what they want
A business owner who has never commissioned software often does not know how to describe what they need. They say “make it modern” or “make it like Jumia” without any details. Then they see the first version and say, “This is not what I imagined”, and they are honest, because they had no clear picture to begin with. Confused clients change their minds, not because they are difficult but because they are discovering their needs as they go.
Pressure from people above and around them
The person who hires me often answers to someone else: an oga at the top, a board, a church committee, a husband or wife, an investor. When they push me hard, they are often passing on the pressure they receive. Once I understood this, I stopped taking it personally. I began asking, “Who else needs to be happy with this?” and included them early.
Sometimes it is your own fault
Here is the uncomfortable part. If your scope was vague, your promises were big and your communication was slow, the client’s behaviour is often a reaction. Early in my career I said yes to everything, gave unrealistic dates and disappeared for days when I was busy. Then I complained that clients were “impossible”. They were not impossible. They were uninformed, and I had failed to inform them.
The eight types of difficult client I have met (and how I handle each)
Over time I noticed patterns. The names change, but the behaviours repeat in Lagos, Abuja, Enugu and everywhere else. Naming the type helps me stay calm, because I stop thinking “why me?” and start thinking “I know this one”.
| Type | What it looks like | What I do |
|---|---|---|
| The Ghost | Disappears after the deposit, then returns and wants everything today | Fixed review dates in the contract, paused deadlines while waiting for feedback |
| The Scope Creeper | “Just one small thing” that keeps growing | A written change request with price and date for every addition |
| The Bargainer | Fights over price at every step | Trade scope for price, never give a free discount |
| The Late Payer | Always “sending it tomorrow” | Deposits, milestones, reminders and paused delivery |
| The Micromanager | Wants to approve every pixel and every line | Agree sign-off points, share weekly progress reports |
| The Committee | Six people, six opinions, no decision | One named decision-maker, written approvals |
| The Expert Cousin | “My nephew says this is wrong” after watching one video | Listen, explain calmly, invite the cousin to a call if needed |
| The Midnight Caller | Messages and calls at all hours, expects instant replies | State working hours and response times on day one |
The Ghost
I had a client in Port Harcourt who paid the deposit and then went silent for five weeks. When he returned, he wanted the site live by Friday and blamed me for the delay. That taught me to put review windows into every contract. Now the agreement says: “Feedback is due within five working days. If feedback is late, the delivery date moves by the same number of days.” When a Ghost returns, I do not argue. I simply show the dates in the agreement.
The Committee
Committees are common with schools, churches, cooperatives and NGOs. I once worked on a school portal where the proprietor, the head teacher, the bursar and a parent representative all had different views. Every meeting undid the last one. The fix was simple: I asked the school to name one person who could say “approved”. Everyone else could give advice, but only that person could sign off. The project sped up at once.
The Expert Cousin
Nigerian clients often have a nephew, a cousin or a friend who “knows computer”. I have learned not to fight this person. I invite them into the conversation, explain my choices simply and respect what they know. Sometimes they have a good point. Sometimes they simply need to feel included. Either way, I would rather have the cousin as an ally than as a whisperer in the client’s ear.
Filter before you sign: how to spot problem clients early
The best way to deal with a difficult client is to avoid signing one. That sounds obvious, but when you need money, every enquiry looks like rescue. I learned to treat the first conversation as a test in both directions: the client is checking me, and I am checking the client.
Prepare for the first call
I spend ten minutes before any first call. I look up the business, read their website or social pages and note two questions that show I have done my homework. Then I write down three things I want to learn: the real goal, the decision-maker and the budget range. At the end of the call I repeat what I heard in one paragraph and say what happens next. A client who feels understood on day one is much less likely to become difficult on day thirty.
Red flags in the first call
There are patterns that almost always lead to trouble. The client cannot say what problem the project should solve. They insist on a fixed price and a fixed deadline but refuse to write down the scope. They speak badly about every previous developer. They ask for a huge discount before they have heard the plan. They want to skip the contract “because we are friends”. They hold back a deposit but want to begin at once. None of these on its own is a reason to walk away, but three or more together usually are.
The questions I always ask
- What problem are we solving, and how will you know it is solved? This shows whether they have a real goal.
- Who makes the final decision? This reveals the committee problem early.
- What happened with your last developer or agency? Listen for patterns of blame.
- What is your budget range and deadline, and what happens if either changes? This tests honesty.
- Who will give me feedback, and how quickly? A project without a feedback owner stalls.
Green flags I now look for
Good clients also show patterns. They arrive with a clear problem. They listen when I explain a trade-off. They ask how I work, not only how much I charge. They agree to a deposit without drama. They have a named contact person. Once I began to notice these signs, my projects became calmer, and my income became more predictable.
| Early sign | Red flag | Green flag |
|---|---|---|
| Goal | “I just want something nice” | “We lose orders because customers cannot pay online” |
| Budget | Refuses to share, then demands a huge discount | Shares a range and asks what is possible within it |
| Past vendors | Everyone before was a thief or a fool | Explains what went wrong and what they learned |
| Contract | “We are friends, no need to write anything” | Reads it, asks sensible questions, signs on time |
| Deposit | “Pay you after the first draft” | Pays as agreed, with a bank reference |
| Communication | Voice notes at midnight, no clear contact person | One contact, agreed hours, quick decisions |
Set the rules in writing: contracts, scope and change requests
Almost every fight I have had with a client came from something that was never written down. A written agreement is not a sign of distrust. It is a way of making sure that two people remember the same conversation. Memory is unreliable, and WhatsApp threads are long.
What my simple agreement covers
I keep it in plain English and short enough to read in ten minutes. It states the goal of the project, the exact deliverables, what is not included, the timeline with milestones, the number of revision rounds, the price and payment dates, who owns the work after full payment, how each side can end the agreement and how feedback and approvals are given. For bigger projects I recommend that both sides speak to a lawyer, because rules and rights differ and I am not offering legal advice here. Even a clear one-page agreement, signed or confirmed by email, makes a big difference.
A change-request process
Change is normal. Clients learn as they see the work, and they will want something new. The question is how change enters the project. I use a simple rule: any new request goes into a short written note with the effect on price and date. I say, “Yes, we can do that. It will add two days and ₦40,000. Shall I add it?” The client either says yes or realises it is not important. This one habit removes more than half my arguments.
Communication rules
Clients often create a WhatsApp group with fifteen people and then expect me to answer everything at once. Now I agree one main channel and one contact person. I set working hours, for example replies within four working hours on weekdays. I also send a short weekly update every Friday, with what was done, what is next and what I need from them. A regular update prevents the worried “any news?” message that so often starts a fight. If you want to see how I manage my own routine to make this possible, read my article on discipline over motivation.
How to handle scope creep without a fight
Scope creep is the number one reason projects turn sour. It rarely feels dramatic. It arrives as a friendly sentence: “While you are there, can you also add this?” Ten small favours later, the project has doubled and nobody is happy.
The polite script
I do not say “no”. I say, “Good idea. That is outside the current scope, so let me price it and tell you how it changes the date.” This keeps the tone friendly, and it turns an emotional argument into a business decision. If the client says, “It is small, it should be free”, I reply, “I understand it feels small. Each small thing still needs design, testing and updates. If you would like, we can swap it for something in the current list.” Often the client chooses to keep the original plan.
Start small with an MVP
Many creep problems begin with a giant wish list. I now push clients towards a first version with only the essential features, and I explain that anything else goes into “version two”. This is the same idea I describe in my guide on building an MVP without wasting money. A smaller start also means the client sees a working product quickly and stops worrying.
Check whether the creep is your fault
Sometimes a client asks for an extra feature because my scope was unclear. In that case I own the mistake. If the scope said “contact page” and the client thought it included a live chat, that is a gap in my writing. I fix the gap, absorb the small cost and improve my template. Owning a mistake once is far cheaper than fighting about it for weeks.
Dealing with difficult clients who do not pay: my late-payment process
Unpaid invoices are a special kind of stress. You have already spent the time, and sometimes the data, power and transport as well. In Nigeria there is another trap: the fake transfer alert. A client sends a screenshot showing a successful transfer, but the money never reached your account. I now follow a strict rule: I only treat money as received when it shows in my own bank app, not on a screenshot or a text that came from someone else.
Prevention first
Most late-payment problems are prevented by three habits: a deposit before I start, milestone payments during the project and final delivery only after full payment. I also send clear invoices the same day work is completed. I go deeper into these habits in my guide on how to price your work as a Nigerian freelancer.
My reminder timeline
When a payment is due, I follow a fixed timeline. The day before, I send a friendly reminder with the invoice attached. On the due date, I send a short message asking for confirmation of the payment time. Two days later, I call. Five days later, I send a formal written notice that work is paused and the delivery date moves. Ten days later, I decide whether to escalate. Following a script removes the emotion. I am not angry. I am following the agreement.
Escalation and letting go
If a client still refuses to pay, I stay calm and record everything. I keep copies of the agreement, invoices, messages and delivery notes. For a large amount, I consider a formal demand letter, mediation or legal advice. For a small amount, I sometimes accept a smaller settlement and use the experience as a lesson. What I never do is threaten, insult or publish the client’s name online. Even if I feel right, it can damage me more than the debt is worth.
One client owed me the final ₦350,000 on a project for five months. Each week he had a new reason: the bank, a delayed contract, a sick relative. I kept my messages short and polite, sent the same invoice each time and never touched the live site. In the end he paid in full and apologised. He later told me he had tested a few vendors to see who would shout, and I was the one who did not. He has since sent me three referrals.
Communication scripts for when the conversation gets tense
You will not always be calm. There will be days when a client is rude, unfair or simply wrong. What you say in those moments decides whether the relationship survives. Here are the tools I use.
The 24-hour rule
I never send an angry reply the same day. If a message makes my chest tight, I put the phone down and wait. When I come back, I read the message again and often see that the client was frightened, not hostile. Then I write a calm reply. This rule alone has saved me from at least four lost clients and one lost friendship.
The “I hear you” reply
Before I explain anything, I show that I heard the concern. For example: “I understand you are worried that the launch date may slip. Let me explain where we are and what we can do.” This works for two reasons. Clients calm down when they feel heard, and the words force me to respond to the actual worry instead of defending myself. Only after this do I give facts, dates and options.
Move from chat to call to writing
When a WhatsApp conversation heats up, I move to a phone call. Tone is easier to read in a voice, and misunderstandings shrink. After the call, I send a short written summary: “Thank you for the call. We agreed that A, B and C will happen by these dates.” That message becomes a record, and it stops future arguments about what was said.
When a client is abusive
Some clients cross a line with insults, threats or shouting. I say once, calmly: “I want to solve this, and I need us to speak respectfully.” If it continues, I end the call and follow up in writing. Nobody is entitled to your dignity because they paid a deposit.
Message templates I keep on my phone
I do not write every hard message from scratch, because tired writing is dangerous writing. I keep a small set of templates in my notes app and change the names and dates. One is a friendly payment reminder: “Good morning, Mrs Ngozi. A quick reminder that the second milestone invoice of ₦250,000 is due tomorrow. The account details are attached. Please send the transfer confirmation once done.” Another is the scope reply: “Thank you for the idea. It is outside our current agreement, so I have priced it separately. It adds three days and ₦35,000. Shall I go ahead?” A third is for silence: “I have not heard back since the 12th. To keep the project on track, I need your feedback by Friday, or the delivery date will move by the same number of days.” Templates keep me polite, clear and consistent, even on my worst days.
Committees, bosses and the expert cousin: handling many voices
Many of my hardest projects were not hard because of one difficult person. They were hard because too many people had a say. Here are the situations I meet most, and what works.
The single decision-maker rule
Every project I take now has one named decision-maker. Others can advise, but their advice goes through that person. I ask this early, kindly and clearly: “Who can approve this on behalf of the business?” If the client cannot answer, it is a warning. For NGOs, hospitals, government agencies and larger firms, approvals may take weeks. I plan for that in my timeline and I do not take the delay as an insult.
Working with government and NGO clients
Institutional clients bring their own rhythm. Procurement rules, approval chains, budget cycles and people who are transferred halfway through a project can slow things. I learned to write these delays into the contract, to keep documents formal and to send short, clear progress notes to everyone on the approval chain. Payments may be slower, so I use smaller milestones and protect my cash flow.
When the boss changes his mind
Sometimes the person I work with is not the person who decides. A manager approves the design, and then the managing director sees it and asks for a different look. I try to meet the real decision-maker early, even for fifteen minutes. If that is impossible, I ask my contact to get written approval at each stage so that later changes are treated as changes, not as corrections to my work.
Three difficult projects and how each one ended
General advice is useful, but stories stick. Here are three projects that tested me. I have changed the details and the names, but the lessons are exactly as I lived them.
The restaurant menu that changed forty times
A restaurant owner in Port Harcourt asked me for a POS system (point of sale, the software at the till). In the first month she changed the menu layout forty times. Every change came as a voice note, sometimes from the kitchen, sometimes from her car. I was tired and my developer was more tired. When I looked back at what happened, I saw that we had never decided who owned the menu. Three people were sending changes. We stopped, held a thirty-minute meeting with her manager and her head cook, and agreed one person would send a weekly list. After that week the changes fell from forty to six. The lesson: chaos often means a missing owner, not a bad client.
The NGO that needed four months to approve one page
An NGO in Abuja asked for a donor dashboard. My design was ready in two weeks, but approval took four months. Each level of staff wanted to comment, and the person who could sign was often travelling. I felt ignored and started to send angry emails. Then a friend who had worked in the sector told me, “Dan, that is how approvals work. Write it into your plan.” On the next NGO project I added approval windows and payment dates linked to sign-off rather than to my delivery date. The delay was the same, but I was calm, and my cash flow was safe. The lesson: understand the client’s system before you judge it.
The trader who paid in small pieces
A trader in Kano agreed a price for an inventory app and then paid in small, irregular amounts, always with a new story. I was tempted to stop the project completely. Instead I sat down with him and asked what his cash cycle looked like. He explained that his own customers paid him in parts, so he paid me in parts. We re-cut the project into four smaller phases, each with its own price and delivery. He paid each phase on time because the amount matched his cash flow. The lesson: sometimes the problem is the shape of the deal, not the person.
When to fire a client (and how to do it kindly)
For years I believed that a professional must never let a client go. That belief cost me energy and money. Some clients cost more than they pay, in time, stress and missed opportunities. The kindest thing for both sides can be a clean ending.
Signs it is time
I consider ending a relationship when a client repeatedly breaks the agreement, refuses to pay after fair reminders, becomes abusive, asks me to do something unethical or takes so much of my time that other clients suffer. I also consider it when I realise I dread opening their messages. That feeling is data. It tells me the relationship is costing more than the money can repay.
How I do it professionally
I do it in writing, calmly and without blame. My message is short: “After reviewing where the project stands, I do not think I am the right fit to continue. I will finish the work already paid for, hand over all files and access and issue a final invoice. I wish you every success.” I complete what is owed, deliver the files, share the credentials and offer a short handover call. I never hold the client’s data hostage, and I never disappear. A professional exit protects my reputation, and sometimes it wins me a future referral.
Refunds and fairness
If I end a project early, I look at what has been delivered and what has been paid. If I have been paid for work I have not done, I refund that part. If the client has broken the agreement, I follow the terms. Fairness costs a little now, but it prevents ugly stories later. In the small world of Abuja and Lagos business, people talk.
What difficult clients taught me about myself
Every difficult client is a mirror. The more I looked, the more I saw my own habits. This part is not comfortable, but it is where the real change happened.
My fear of saying no
I said yes to work I should have refused because I was afraid of empty months. That fear attracted clients who did not respect my time. Once I built a small savings cushion, I could say no without panic. Money reserves buy you the freedom to be honest.
My ego
I used to take criticism as an attack on my skill. When a client disliked a design, I felt insulted, and my answers became sharp. Over time I learned to separate my worth from my work. A client saying “I do not like this” is giving me information, not a verdict.
My habit of overpromising
I wanted to sound impressive, so I promised fast dates and big results. When reality arrived, the client felt cheated. Now I promise less and deliver early. If you want the wider lessons from my career, read eight years of building software. A calm freelancer with clear limits gets fewer difficult clients than an eager freelancer with no limits.
Do not forget the good clients
Because difficult clients take so much of our attention, we forget the good ones. Most of my clients are kind, clear and easy to work with. They pay on time, send feedback quickly and thank me when things go well. Make a habit of appreciating them. Send a short thank-you message at the end of each project, ask for a testimonial and ask if they know anyone who would also benefit. Good clients bring more good clients. The better your filter, the more your business grows from referrals rather than from cold chasing.
Looking after my own head
Client stress is real, and it follows you home. I keep a habit of a walk after tense calls, I do not check messages after my shutdown time and I talk problems through with a fellow founder before I reply. Rest and perspective make me a better negotiator. When my head is clear, most difficult clients become manageable ones.
A one-page toolkit you can copy
If you remember only one section, let it be this one. Here is the process I follow with every client, from the first message to the final handover.
| Stage | What I do | Problem it prevents |
|---|---|---|
| Before the deal | Ask discovery questions, name the decision-maker, spot red flags | Wrong clients and unclear goals |
| At signing | Written scope, exclusions, revisions, timeline, payment schedule | Scope creep and payment fights |
| At the start | Deposit, one contact person, agreed hours and channel | Ghosting and midnight messages |
| During the project | Weekly update, change requests in writing, milestone approvals | Surprises and endless changes |
| When it gets tense | 24-hour rule, “I hear you”, move to a call, written summary | Angry replies and lost relationships |
| At payment | Invoice the same day, reminders on a fixed timeline, confirm in bank app | Late payment and fake transfer alerts |
| At the end | Handover of files and access, feedback call, ask for a referral | Confusion after launch and lost repeat work |
How to start this week
You do not need to install everything at once. This week, write a one-page agreement for your next project. Next week, add a change-request rule. The week after, set your working hours and share them with your clients. In one month you will feel the difference. If you are a business owner reading this from the client side, my guide on choosing a technology partner you can trust shows how to be the kind of client every good developer wants to keep.
Key takeaways
- Dealing with difficult clients begins with asking what they are afraid of, not what is wrong with them.
- Most problems come from unclear scope, unclear communication and unclear payment terms, and you can fix all three.
- Filter before you sign: ask about the goal, the decision-maker, past vendors, budget and feedback speed.
- Put everything in writing, and use a short change-request rule for every new idea.
- Collect a deposit, use milestones and confirm money in your own bank app, never from a screenshot.
- Use the 24-hour rule and the “I hear you” reply. Move heated chats to a call, then confirm in writing.
- Ask for one named decision-maker to avoid committee chaos.
- Fire a client kindly when needed, with a full handover and no drama.
- Look at your own part: fear of saying no, ego and overpromising create many difficult clients.
Frequently asked questions
How do you deal with a difficult client who keeps changing the scope?
Write the scope down before you start and use a change-request process. When the client asks for something new, reply that you can do it and state the added price and date. Most clients either approve the extra cost or drop the request. Never quietly accept extras, because they build resentment on both sides.
What should I do when a client refuses to pay?
Stay calm, keep records and follow your reminder timeline. Pause further work as your agreement allows and send a formal written notice. For large amounts, consider a demand letter, mediation or legal advice. Prevention is better: take a deposit, use milestones and release final files only after full payment.
Is it okay to fire a client?
Yes, when the relationship is costing more than it pays, for example through abuse, repeated broken agreements or refusal to pay. Do it in writing, finish what has been paid for, hand over all files and access and keep the tone respectful. A professional exit protects your reputation.
How do I handle a client who calls or messages at night?
State your working hours and response times at the start, in writing. When a message arrives late, reply during working hours, not immediately. Clients adjust when the rule is consistent and kind. Genuine emergencies can be handled through a separate agreed process, such as a phone call.
How can I tell early that a client will be difficult?
Watch for red flags in the first conversation: no clear goal, refusal to discuss the budget, blaming every past vendor, wanting to skip a contract and resisting a deposit. Ask who makes the final decision and how fast feedback will come. Three or more red flags together should make you cautious.
How do I avoid fake transfer alerts from clients?
Only treat a payment as received when it appears in your own bank app or account statement. Do not rely on screenshots, forwarded messages or a friend’s text. For online payments, use trusted payment links that confirm payment automatically, and release final work only after the confirmed payment.
Next step: work with people who respect your time and your system
If you are a freelancer, copy the toolkit above and adapt it. If you are a business owner, know that a clear scope, a single decision-maker and fast feedback will get you a better result from any developer. When you are ready to plan a project with a written scope, milestones and honest timelines, look at how I handle software development in Nigeria or how I automate business processes for teams. You can also book a free consultation or message me on WhatsApp from the site, and we will discuss your project calmly and clearly, from the first conversation.
BSc Economist and software engineer with 8 years of experience. CTO / Team Lead at Xoftpro Smart Systems and founder of DannieSoft.





