Potentially bogus freelancing advice

For nearly 20 years, I have been freelancing: selling my skills as a free agent. I do very little freelancing these days, but I still regularly give advice to students and colleagues. Is it wise? I let you be the judge: here are my favorite bits of wisdom.

There are bad and good clients.

In retail, the more clients you have, the better. The economics of freelancing are different. That is because you are selling finite resources (your time and your energy) and every transaction depletes your resources.

A bad client might waste your talents and skills in a dead-end project. A bad client might use 80% of your energy and contribute less than 20% of your income. A bad client might drop you in favour of a cheaper alternative without thinking twice. A bad client might feel abusive, put you in a bad mood. (Being in a bad mood is bad for business on the long run.) A client might take your business in the wrong direction.

As a freelancer, it is entirely reasonable to turn down work. It is often the strategic thing to do, even if you have nothing else lined up. Think about an actor offered the leading role in a major movie that is bound to be a failure.

Ultimately, the great thing about being a freelancer is the freedom to turn down work. It is not only good business, but it is also what sets you apart from employees.

Everything is negotiable.

When I started freelancing, some clients would put forward rules or policies. These rules were invariably convenient to my clients.

For example, it is common to have bounds on how much consultants can charge. A few times over the years, even recently, a client told me that I could not charge over $50 an hour, as a rule. Whatever the rule or the policy, it is always a matter of negotiation. Do not worry, clients will make “exceptions” if you are worth it.

Intellectual property is another important point… when freelancing, you should not sign away your rights lightly. For example, if you are doing a programming job, consider that giving the client the copyright of your work might prevent you from reusing the same code in other projects. A much more reasonable default stance is to license your work to the client.

In all cases, remember that there are bad and good clients. If a client refuses to negotiate in good faith, he may not be a good client to you.

Do not watch your clock.

Because it is a widespread practice, clients almost always want you to charge by the hour. Often, they want to know ahead of time how many hours you will charge.

Charging by the hour is more of a metaphore. In practice, you should charge by the value provided. That is, suppose that you can solve a problem in 5 minutes but that 99.9% of world experts would take 5 days… then it makes no sense to charge 5 minutes. Similarly, if a client wants you to do some work that most people can do in a few minutes but that will take you days,
you should not charge the client a lot.

A more reasonable approach is to charge flat fees or the equivalent. A flat fee could include a service such as “being available at a moment’s notice”. If it reassures the client, you can translate the flat fee into a fixed number of hours and an hourly rate.

Whatever you are charging, you should not worry about the time you spend on projects too much. Your main worry should be to provide something valuable to your clients.

Published by

Daniel Lemire

A computer science professor at the University of Quebec (TELUQ).

5 thoughts on “Potentially bogus freelancing advice”

  1. What if I’m not very sure how long it will take and how hard it will be for me to implement it? Charging a flat fee might make me work more and harder and receive way less, because I underestimate the complexity. Or because some requisites changed, and modifications were needed. Specially for someone without a lot of experience (like me) it’s way more likely to spend five days solving a 5 minutes problem than the other way around, just because it might be something I’ve never done before.

  2. @tonnydourado

    Of course, nobody knows how long things take… neither the client nor you… but as a businessman, you need to shoulder some of the risk.

    For speculative work, there are ways to share the uncertainty with the client. For example, you can agree to do an initial survey for a flat fee.

    But, it is undeniable that working for flat fees has risks… Early in your career, that probably means working at low hourly rates because simple things take you a long time… However, as you get better, you get to charge a lot for something that only takes you a few hours.

    The client pays the “market price” for the service. If you are better than average, you earn more per hour than average… if you are bad, you earn much less than average. Your compensation depends on how skilled you are. That is how you want things to be… so you have strong incentives to get better.

    Sure, the client can change the project or extend it… each time the client does that, you can renegotiate if you feel that it adds to your work. In fact, as a freelancer, you want projects to evolve, grow, change… you get to charge more and more. If a client keeps pulling the rug from under you and refuses to compensate you, then it is probably a bad client and you should find other clients. It is sad, but there are many bad clients. Dealing with them is part of the game.

  3. Instead of getting paid hourly, you could get paid daily as well (a “day” could be ~8 hours on average for a client and you are not working for another client on the same day). Flat fee somewhat works for small projects (< 1 month). Then on average you can do well even if you misjudge some projects (but keep some buffer fund for those times).

Leave a Reply

Your email address will not be published.

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax

You may subscribe to this blog by email.