How to make a client happy
Practices and principles which will help you to set up the best working place for everybody
You will be happy if the client is happy. Sometimes it is not true.
But the well-built process returns a lot of benefits to both sides in most cases.
The Shardik team collected a lot of useful tips to make the freelance working process as good as possible.
This list is built on our freelance successful use-cases, our errors, and applying adopted common approaches from IT companies to remote work.
It’s one of the pieces of your first impression on a client. This could make your life miserable at the same time. The balance is the best approach here. I separate this tip into two parts.
The first is how to answer on Upwork messages during the hiring process.
You have to be in touch and answer within 15 minutes for replies to your proposal.
The hiring process is a hard and often urgent thing for many clients.
Please, keep in mind that it’s also a competition with other freelancers. You have to be the first on the finish line to win the contract. It’s a good rule to answer incoming interview offers within a day. It’s ok accounting that a solid freelancer is not in active search for most of the time. Spend time to review new coming offers.
It could fill in your further schedule and create a solid network. So, be polite even if you’re busy and you have to reject the job offer.
And, what is important for both scenarios, don’t leave a chat as soon as the messaging starts.
Freelancer looks unprofessional and not interested in this client conversation.
A couple of minutes of distraction could leave you without a good contract.
Be in the moment.
The second is availability during working hours.
I advise to set up clear rules here. Many companies find constant chatting, immediate answers on each request an awful practice. I fully agree with this position.
Requirements on immediate answers break the coding process, add too much context switching, and make your performance worse than it could be.
You have to remember that your performance is your responsibility.
Freelancers should set defined rules for answers. Right expectations from the client-side make both sides happier since everything is predictable.
Define a period of time which is the intersection of your and client’s working hours. Be present during this period.
I would say that 10-15 minutes is a fine time slot for answering at this defined period.
An hour is a reasonable delay to respond outside of the agreed presence time.
The majority of clients understand it too. And you will not have any problems. In other cases, you have to solve the conflict as soon as possible. I advise you to be open and fair. You have to find out what is a real concern for the client.
Carping to the time response itself without any reason behind is unhealthy.
Leave such a client and project. There are a lot of fish in the sea.
Someone or something is dependent on any team member’s answers time?
Make the process asynchronous. Ask us how.
A client doesn’t see what you are busy with? Improve the planning and reporting process.
The answer is often in something else that could be solved easily.
You shouldn’t ruin your processes, mind, and performance by keeping your phone even in a bathroom to answer immediately.
It’s a significant attribute of a suboptimal working environment. Try to fix this together with a client *. Quit if it’s not fixable in your particular case.
Read this wonderful book to study more about negotiation.
This wonderful book will help you with any negotiation step: interview, rate discussion, process updates issues. Thanks a lot to the author.
Bring the value on the table.
Brining the value is a reason why any freelancer gets her money.
There is a significant detail which differs just a task doer from a valuable professional with the potential to grow.
This detail is adding extra value to the project. This depends on two things. The first one is a team mindset. It’s out of your control zone. The second one is proactive behavior. This thing is fully controlled by you.
You have to do more than expected to bring additional value. It’s about business and client relations. The same is about freelancer/employee and client/employer relations.
The client is happy if she gets more than the initial expectations. Saying more I mean higher-level tasks, wide view, new ideas, and solutions; not more of the same job.
This allows you to improve a client’s satisfaction level. It is also a reason to get a promotion at the position, rate,
or scope of responsibility and tasks type.
More value is a great leverage in the following negotiations.
Let’s prove my words with external opinions and stories.
Diana Pojar, staff Data Engineer at Slack, wrote the following:
“After being 2 years in the Senior role, my manager told me that I am operating at the next level and that he believed there was a strong case to make and he planned to put me up for promotion.”
Read the full Diana post at Diana’s blog
Yuan Liu has a fruitful tech career. He is a full-time engineering manager at Stripe now.
His reflecting set of articles named Reflecting on my IC path shows the same principles.
“Leveling up is not automatic, Rus said. You could not sit there and wait for your manager to level you up. You may be doing a good or even excellent job at your current level, but that does not automatically mean you are going to perform as well at the next level.”
The full story is here
I would tell you the story from my practice to support the same behavior pattern.
This client’s team was separated into two parts - freelancers and an on-site team. Slava and I were hired to be task doers. The on-site team was a source of solutions and new ideas. But we wanted to deliver more.
The application was in bad condition. It was buggy, customers were disappointed. The project loses money.
Just doing tasks in the same direction was against our principle. One of them is to do the best that you can or do not work on the project at all.
We bought a profiler with our own money. This cost us around $500! We analyzed the whole architecture for extra hours, free of charge. We defined problem places, bottlenecks, and bad solutions. We came to the client with all this stuff and detailed explanation. Founders/CTO fully accepted our view and got us the green light to make the app live again.
API performance was improved in 4-6 times in a month. All critical bugs were solved.
We redesigned architecture. All these updates clean up the way to work in the right direction after.
The project became profitable in half of the year. Slava and I had few on-site trips with the whole team. Team separation was left in the past.
Are you asking yourself how to find what to bring to the table?
The solution is in your mindset update. Be involved in the project. Its code. Its problems. Its user. The business behind it.
Ask yourself questions in each of these categories. How can I improve the process?
What if I am a user? How can we help the business side? What does the business side actually need?
Be proactive to find solutions and push them! Push them hard!
Build you communication toolset and solve conflicts efficiently
It seems too cliche to write here about communication skills. Everybody talks and hears about this point everywhere.
But I have to mention that good writing, speaking, and intelligence are critical for the client’s esteem. We knew this before. However, we got the proof based on our own experience. Just look at these reviews.
As you can see, many clients mark communication as one of the key factors for a high rating freelancer’s job.
It’s easy to imagine why. All the processes are set up remotely. Clients and freelancers have to exchange ideas, solutions, problems, and views via a restricted number of channels.
The comfort and fruitfulness of this process depend on the ability of both sides to keep a solid, clear communication.
This becomes even more complicated because of culture and language differences. Some cultures allow direct style of speech. Meanwhile in others, the same approach could be perceived as rudeness.
But don’t worry. Many areas of life and work can be improved by following some basic principles.
There are some practices which help you build great work relationships with any client around the world.
The first one. Don’t be afraid to be too polite. Keep your texts and speech as professional as possible. Ask yourself a question: “Could my message or tone offend the recipient?”. This doesn’t mean you have to agree with everything. But you should never make this personal. All discussions should lay in a layer of subject. Discuss issues, solutions, but not people behind. And do not forget about magic words. Chris Voss advises to assume that the recipient accepts your message in the worst mood possible.
‘Sorry’, ‘please’ and ‘thank you’ are often called magic words because they work like magic!
They make a person feel important, pacify tempers, strengthen bonds and at times mend strained relationships.
The Dawn’s article is about children. But adults feel the same way in adults’ conversations.
Remember, fair and softly goes far in a day.
The second point is the opposite side. You have to manage your working environment properly.
One of the sides of a good working environment is the healthy psychological state of mind.
You have to stay calm independently of others’ behavior and mood. Peaceful mind is necessary to make right decisions, chat without aggressive behaviour, and enjoy your day at the end.
Do not get personally everything what the other side writes or says. It’s about both positive and negative words. Evaluate yourself independently from external thoughts. You never know the reason for the external message.
I knew a software engineer. He worked in a huge bank. He made a great impact on the project. His skills were highly appreciated by colleagues. But his manager pushed him with negative feedback to keep him at the same position and salary. Keep this story in mind.
The third technique. Small talks is not a usual thing for all regions and countries. But it’s a way to build a human to human relations.
Small talks are the easiest way to set up a friendly environment. This makes a comfortable workplace for everybody. You will better understand teammates if you know something about them. Our lives are not limited with work boundaries. Try to step over these boundaries, but do not go too deep. Knowing this limit helps you to build a friendly environment with keeping too personal things out of a job place. Do not be neither a robot nor a psychotherapist.
The fourth, be comprehensive in tasks and solutions. People use non-verbal channels a lot in their communication. Coworkers tend to make small informal discussions about tasks and projects. Established personal relationships could speed up problem solving. All these channels are highly limited for remote teams. So, you have to use available channels more than in physical collaboration.
First of all enrich your messaging.
- Write detailed questions. Write down your understanding to get a proof from the product manager that you both have the same vision of the problem.
- Send (or add to the ticket) a detailed explanation of the solution even if it seems trivial for you.
- Write a follow up summary message for important calls.
Use calls to discuss if it’s the more appreciable way for the client. Sometimes the fast call is the easiest way to get each other.
Extend communication ways by using drawing tools, screen sharing, iPad. Just find the best way to visualise your idea.
Is it a logic flow? Use draw.io to build a scheme.
Is it a call to describe an architectural solution? Connect iPad, share the screen and draw how the solution works.
You can add significantly more context with the iPad and Notability app. A live drawing can explain better than lengthy hours of boring calls.
Moreover, clients perceive freelancers more professional, higher rated if they can explain issues and solutions. Only those who understand can explain. iPad helps you to step over distance problems in case of remote job.
The last but not the least is conflict cases. It’s hard to advise commonly since each conflict is specific. You always have to apply the same principles from the first point. You can stand for your position with minimal losses. Try to solve conflict by solving the root-cause, not by arguing with teammates.
Following described principles should be your communication style within a remote team. It will bring you great reviews and, what is more important, relationships.
Reports and statuses + self-tracking
I already wrote that the ‘trust and track’ management approach is the best way to manage remote teams.
But it’s complicated to set up either. At the first glance, a tracking issue is addressed to the client side alone. It’s not true.
I see a tracking as part of the both side communication bridge. It would work one hundred percent only if both sides make everything to build the most comfortable environment to work.
Clients are often in the dark with remote workers. I would say it’s the same as with office employees. But managers have a feeling of control if they see developers on the machine, even independently from the task status or actual activities.
Freelancer could help clients with the tracking part. Just a few simple things could make a mature manager’s life easier. Or these steps even help to build the whole process for clients without any experience.
Weekly reports. This is the most important tool to provide a clear status at the end of the week. Reports get the client a whole picture of the past week. Also, reports get freelancers a leverage in possible retrospective discussions.
It would be helpful even with ticket system usage. Not all activities could be displayed within JIRA or Trello. It could be teammates help requests, clients urgent requirements or researching a technology for the solution.
Actually, it could be done. But you will spend more time on tickets’ creation than on a real job.
You have to write down your daily activity on the high level (task) to compose a weekly report. It takes less than a minute if it’s done on the same day. But the work process becomes significantly clearer for both sides.
You just combine tracked days in a single email or message. Also, you can add some questions or estimations for the further tasks. But be careful with estimations. Remember that clients’ expectations should be exceeded rather than unjustified.
Daily detailed reports. We had an experience of posting daily detailed reports. There were activities with related time slots. I would say that you have to avoid them as much as you can. The balance of tracking benefits and time consumed on tracking is broken for such kinds of reports. You can use daily detailed reports only for the start of your relations with a client. But you have to inform a client that this mode is working only for a couple of weeks. And that you will switch to weekly reports. Alternative could be daily reports without timeslots separation or morning sync up call.
Morning sync up is the wide used practice. But I advise to track weekly activity in any case.
In addition to reports, you have to track tickets for tasks properly.
This is an easy way to show your progress within the company tracking tools.
Do not forget to move tickets! 😜
Also, you better separate big tasks to smaller subtasks.
There are plenty of best practices which tell us to keep tasks the right size. Let’s say less than a day.
But it’s not always true for the real world. Clients often couldn’t separate a task more granularly than a business functionality level.
Payment system integration would be a good example here. Product owners easily can separate this task by business logic domains - cards applying on the BE, UI part, and some other integration. But there will be much more work under the hood. Separate ‘applying cards’ on technical subtasks. The manager will see that the job is in progress instead of 3 weeks of ‘payments system integration’ ticket in the progress column in JIRA/Trello.
The last but not the least. Everybody makes mistakes. Everybody fails on estimations and deadlines. The difference between the awful and great freelancer is the reaction to such cases.
I will write a common truth here. Please, do not disappear in silence with a problem. Do not wait until the deadline to tell a client that you cannot complete a task within estimations. Do not hide that you missed deadlines until the deadline.
All of this advice sound clear until shit happens. You think at this moment about your reputation, the magical possibility to fix a problem in time, take extra not-paid hours to catch the train.
The best strategy here is full transparency with a client here. Notify a client or a manager about the unexpected
issues as soon as possible. That’s it. Without extra hours or magic.
A knowledge about the actual state of things is the most important thing to manage a project successfully.
Give this tool to your client. And clients will trust you and appreciate you as a freelancer.
Professionals do not fear a real state of things.
Use these tools all together. Your clients’ will have a feeling of tracking. And this will not just be a fake feeling. They will have all actual data to make management decisions. Also, you can improve by making reviews of your own activities over time.
Accept your mistakes
Everybody makes mistakes or stands for the wrong solution. It’s an absolutely normal process. Mistakes make us better if we react to them right.
It’s fully in the same concept as other tips. Be open and brave to accept the fact that you were wrong.
You should come to the client with a detailed description of what is the mistake/error, why this has occurred, what is affected, and how to fix this.
Don’t blame. The reaction on your and another person’s mistake should be the same.
Always do some retrospective research to define a root cause of the problem. Try to find a way to update the process to eliminate the same issues in the future.
Do not work free to fix bugs if it’s not a part of a support period of fixed-price contracts. You and the client should define before the project starts who is responsible for such risks and which period of time.
Noone develops any product without issues. It’s an axiom. So, fixes should be done as part of your paid job time.
We have shared a lot of tips, tricks, approaches, and principles which were built by our experience. All these things should help you in a daily remote developer life. But all of them will help only if you are trying to do the best as a professional.
Remember that everyone in 2020th selling not only a possibility to code, but the service.
You can be a company of one even within an organization.
You have to be the company of one as a freelancer.
Do your job great. Love your project.
Be professional. Be Shardik.
Share your principles with us firstname.lastname@example.org