Freelancing gigs usually start off great, but as the project goes on things can quickly turn sour and at some point, you can’t wait to finish it and find a new, better client. And you find a better one, or at least it seems so, but again as the time goes by you realize that you don’t enjoy working on the project anymore, and the cycle continues. But what goes wrong each time?

I have to admit, some people are just hard to work with, and you should do your best to avoid that type of clients because they will make you miserable. But it takes two to tango, so usually, you are as much at fault as is your client.

Work your own way

It’s important that you know how you work best. Maybe you like working in the morning, or you want to always spend weekends with your family or your schedule is completely chaotic and you sometimes work at 3 am on Sunday.

That’s all ok! Just be upfront and clear about this from the beginning. You don’t have to be rude when asserting the way you work. Just explain to your client that you are the most productive when working this way.

Your way of work is not compatible with everyone, but that’s ok. In the long run, it’s in your best interest to find clients that are a good match for your lifestyle.

Always know what and why you are building

You might feel that what you are building makes no sense. If that is the case, you need to call your client immediately and sort that out. You are probably missing the big picture, in which case the client needs to fill you in on it in order for you to be able to make proper decisions. Otherwise, the project is off tracks and heading for a disaster, and it’s your duty to explain that to your client and help to get everything back on tracks.

Keep the code quality high

Another reason for hating your project is that it’s not engineered well. Yes, your code is a big pile of spaghetti — and it’s all your fault, not your client’s.

If you ask your client, there’s no time to write tests. There’s also no time to refactor code. And there’s no time to write high-quality code in the first place. So how do you explain to your client that you have to spend time doing it? You don’t! You give your estimates with refactoring, test and quality code writing built in. If there’s an option to make a quick hack or to do it the proper way — just forget about the quick hack. It always pays off in the long run to do things right, and it is in the best interest of your client.

Care about the project

It’s often easier to just build whatever the client asks you to, than to explain to him why something different is a better idea. However, it is your duty to do this. You were hired because you have more experience in this area than the client, don’t be afraid share your insight and opinions.

It’s all about protecting the clients from themselves and learning how to say ‘no’ to them and guide them in the right direction. This requires a lot of social skills, but that’s what you signed up for when you decided to be a freelancer. If you want to be respected and treated like a professional, then you better act like one.