It’s been three years since I decided to start freelancing. It has been a rough but rewarding journey so far. I made lots of mistakes and learnt many things on the way.
What I did wrong
Took too many projects at a time
I’m pretty bad at multitasking, I do my best one project at a time. If I have several projects to work at the same time I waste too much time changing the context and getting into “the zone”.
Last year what it was my main client ran out of money so I rush to find more clients (a lot of them). Everything was fine until suddenly all clients wanted changes at the same time, all of them urgent. I had to work day and night during three weeks.
I started billing hourly and this was the biggest mistake so far:
- Clients can micromanage you: “This task shouldn’t take more than an hour…”
- It’s very difficult to organise your time if you have 2 hours for company A, 4 for company B, a meeting with client C…
- Every project have some overhead(billing, emails, time tracking…) independent on how big is it. To bill 40 hours you’ll need to spend 50-60 working.
I solved this situation setting hourly, daily and weekly rates. Obviously,
hourly rate > daily rate/8 > weekly rate/40 so clients have an incentive to hire me on a weekly basis.
Take jobs that are ‘almost finished’
Chances are that are not near completion, but the client budget is finishing. You’ll have to adapt to a new codebase and fix all the remaining bugs that are the difficult ones.
Remember the 80-20 rule in software development, 80% of the functionality will be done in 20% of the time and the remaining time you’ll be coding the other 20%.
Don’t have a portfolio or an amazing side project to show
I spent two years and a lot of energy working for an small startup. I’m very proud of the result but since it’s a closed beta I cannot show this project to my potential clients.
Also I created several internal dashboards that are protected under NDAs.
I’ve done a lot of work but I have a tiny portfolio.
Don’t bill regularly
Some clients will pay late or never, send your invoices early so you get to know how serious they are with the money.
What I did good
Bill per time
I only did per project billing for clients that have very clear what they want and know how to express it. Sometimes your client assume some features that you didn’t catch in the requirements and there’s a conflict.
I tell my clients that estimate software it’s very hard and suggest to work on a weekly basis. Every friday I show them the changes and we chat about what we can do next week. If for some reason the client felt that I didn’t work enough(never happened so far) we split ways.
This way we are in a position where we are collaborating not fighting.
Spend a day or two automating processes
- Create a template for invoices and other for proposals
- Have your CV updated
- Automate the billing process
Learn the technology stack that are you using well
I spent a couple of weeks just playing with some parts of Django that I never used, reading manuals, articles about best practices, answering questions on Stackoverflow…
Rent a coworking space
Working from home can be great one day but it gets old quickly, I ended up working in pyjamas and checking email 24/7 (relevant Oatmeal comic).
Now I am a happy “anidado”. I enjoy a healthy work-life balance and I’m surrounded by interesting people.
Just make sure your coworking colleages understand that you need to concentrate when you are working.
Use the services of an accountant
It just cost me 35€/month and I couldn’t be happier. It removes a lot of overhead and administrative problems. Unfortunately Spain is the #142 on the ranking of countries where is more difficult to start a business.
Use an issue tracking tool
And make it the official channel to request for changes in your software. It will help you to centralize all the issues (no more email+Skype+phone), discuss and priorize them and keep a log on how did you spend your time.
Be proactive and professional
Most clients just want to solve a problem, don’t be afraid to suggest changes. Communicate effectively and on time and if you found an unexpected problem report it soon.
The key to get more and better clients is to be extremely professional. It’s deadly simple:
10 exceed client expectations
20 get referals
30 GOTO 10