I know lots of freelance developers: heck, I am one! And if there's one thing they have in common it's that they didn't realise how much time and energy they'd have to devote to themselves as a business when they started out.
If you're going to be a successful freelancer you need to be able to manage your own career like any other business. OK, so your business may not look much like a big corporation: there's no CEO, no shareholders and only one employee. But if you're going to earn a good living then there are business skills you need to learn and get good at. The better and more efficient you become at managing your business, the more time you're able to devote to development work, which means you get to spend more time doing what you love (you do love it, right?) and earn more money.
In this article I'm going to look at six key business skills that I believe all freelancers need. Some of these you may have used in a previous job, if you were an employee, while others you may have to learn from scratch.
- Marketing. You'll need to use marketing skills to find work.
- Relationship management. If you can't keep your clients happy, you could lose them.
- Charging and contracts, including chasing payments and setting rates.
- Accounting. Freelancers hate completing tax returns but if you keep on top of your accounting, it's actually pretty easy.
- Time management. With no boss breathing over your shoulder, you'll have to manage yourself.
- Self development. If you don't grow as a developer, you could get left behind in your career.
Without all of these, you won't be as successful a freelancer as you might be, you'll get a lot more stressed and you won't enjoy the freedoms of freelancing as much.
Before I go into each of these skills in detail, let's take a look at what it means to be a freelancer.
Freelancing Versus Employment - What's the Difference?
Chances are that if you're considering going freelance, there's one main difference that's encouraging you: the freedom of not having a boss. As a freelancer you can get up when you want to, work in your dressing gown, finish working when you've had enough, and only take on the work that really interests you.
Correct? Well, no.
As a freelancer you still have to earn a living. This means having the discipline to put in the hours you need to complete work, hit deadlines and keep your clients happy. It's also very rare for freelancers, especially new ones, to be able to take on only the kind of work that they enjoy the most. In the early days you'll be building your reputation and your client base, and you'll need to take on just about all the work you can get.
Sound pretty miserable? It's not - read on!
Freelancing has some big differences from being employed, and some similarities too. I've worked freelance for about a third of my career, including the past five years, and I can't imagine ever going back to regular employment. But I have learned some hard lessons along the way, and had to develop some skills that I didn't need when I was employed.
So let's bust some myths and identify some pros and cons of freelancing:
- As a freelancer, you won't have to work nine to five (unless you're working on site for a client), but you will have to work a similar number of hours to earn a living, very likely longer hours in the early days.
- You won't have a boss telling you what to do, but you will have clients—and they can be much, much more demanding.
- That boss who made sure you hit your deadlines will be replaced by you—you'll have to manage your own time and motivate yourself.
- If you work from home you can work in your dressing gown if you want, but beware if you have a Skype chat scheduled with a client!
- You'll have to find work, and keep on finding work. Even if you get a contract with an agency that can keep you in regular, ongoing work, I'd always recommend having other clients just in case that agency doesn't need you any more in the future. As you develop, you'll want to develop your client base, which means marketing.
- There will be times when you don't have any work coming in and aren't sure how you're going to pay the bills this month. You'll need to anticipate this and have contingency funds in place. The biggest killer for new businesses isn't income, it's cashflow.
- If you want to hang onto your clients you'll need to work on your relationship with them—something an account manager might have done when you were employed. You can't spend your whole freelancing life in front of a computer screen, sorry!
- Freelancing can be lonely: for the sake of your sanity, you'll need to make the effort to get out and spend time with like-minded people.
- You'll have extra costs: equipment, training and conferences, insurance, software, tax and more. All these come out of the money you earn.
- You'll need a bank account, and you may even need to speak to your bank manager or the bank's business manager from time to time.
- You'll need to constantly develop your skills and knowledge of the industry you work in and adapt as things change and move on. Any training you do will be in your own time and you'll have to pay for it.
On the plus side, you will have that freedom that you don't get in employment (unless you work for an incredibly flexible employer). As you develop your reputation and skills you'll have more control over the kind of work you take on and the hours you work. I work freelance so that I can take school holidays off with my kids—a total of 10 weeks a year. I couldn't do that when I started out as I wasn't earning enough in the other 42 weeks, but now I am. There are very few employers who would let me do that!
So let's take a look at those skills you'll need.
I have to admit that marketing is the aspect of self employment that I dread the most. I'm not a natural salesperson and nor are many of the freelancers I know. But without it, you won't get work.
Marketing for a freelancer isn't about advertising campaigns or email lists. It's much more subtle than that. Marketing activities include:
- Creating an online presence for yourself, including a website and social media. Many freelancers blog regularly to demonstrate their expertise and maintain their profile. All this takes time and needs to be fed constantly. But don't let it take over to the extent you're not doing any paid work!
- Identifying potential clients and approaching them. This doesn't mean cold calling: it can mean responding to a post on a jobs board. But when you reply to that job posting, you need to sell yourself, as there'll be plenty of competition.
- Attending networking events and meeting potential clients or collaborators. Use meetup.com to identify groups in your area, go to conferences and hackdays. Use all of these as an opportunity to make contacts and talk about what you can do.
- Speaking at events if you feel confident to do so. This will raise your profile and give you much more scope to demonstrate your expertise. I got my first book deal because of a talk I gave at a WordCamp.
- Developing a 'pitch' to tell people what you do. This probably sounds like something you'd do after hell freezes over, but it doesn't have to be corny or corporate. Just imagine how you'd tell someone what it is you do so they know if yours are skills they might need.
- Following up with past and existing clients. Too many freelancers completely ignore the potential of this: you're much more likely to get repeat business from someone you've worked for before than new business from a stranger. This links to relationship management which I'll cover shortly.
You won't need to do all of the above, but you will need to identify the marketing activities that are most appropriate for the kinds of clients you want to work with, and that suit the way you work. Many freelancers do none of these so if you just do one or two, that gives you a boost.
How you manage relationships links together with your marketing. The ideal for any freelancer is to be getting all of your new work from existing clients or via word of mouth: that way you don't have to go out looking for work and can focus more time on what you're paid for.
But clients will never recommend you to other people if they don't like you or get on with you. Your code could be perfect but if you're not someone people enjoy working with, those referrals will be much less common.
As well as client relationships, you'll also have relationships with other freelancers, who instead of being like your boss will be akin to colleagues. Nurture these relationships: they'll keep you from feeling isolated and will impact positively on your professional development.
Some tips for managing relationships:
- Think of your clients as people. Identify your key contact at a client's organisation and get to know them. I have clients who I consider friends.
- Be friendly and positive with clients. If you can't help them with something, explain why and try to help them find someone else who can, or to solve the problem themselves.
- Accept that managing relationships is work you'll have to do outside of the paid hours you're working for a client. I have clients who I regularly meet for coffee, just to catch up. They may or may not have work they want to talk to me about but even if they don't, that meeting is worthwhile. I enjoy it too, as it gets me out from behind my desk.
- Keep in regular contact with your clients in a way that isn't pushy. Find an excuse to contact them between jobs, so they don't forget about you. I offer a monthly analytics report to my small business clients, and while it makes me no money it does mean that I'm contacting them every month and saying hi. I often have someone come back to me with some work they need me to do.
- Find a balance between offering your professional expertise and making the client feel stupid. Clients often come up with daft ideas: this is understandable as they often don't know as much about development as you do. Explain logically
—with evidence and maybe anecdote—why the idea won't work and suggest an alternative.
- Identify a community of people who work in the same profession as you and get to know them. Those meetup groups aren't just for networking, but also for building relationships with people you can learn form, collaborate with, and talk to about the technical nature of your work.
- If you don't like working alone, consider using a co-working space. This not only provides you with company but can open up opportunities for collaborative working on projects that are too big for you to take on alone.
Charging and Contracts
This is one of the most common mistakes made by new freelancers: not charging the right amount, taking payment at the right time or putting a proper contract in place.
I have to admit I've done this myself, and it's caused me a lot of frustration plus some financial loss. I've learned a lot from my own mistakes, and also from the advice of other more established freelancers and business owners.
- Set your rates realistically. Take into account the days you don't work, your costs and any sickness or development leave. Too many freelancers set their rates way too low because they think they don't need to earn much more per hour than they did when employed. Believe me, you do.
- Never take on a job without a contract in place. If things go pear-shaped, you'll have no protection and may have spent hours working on a project for which you get no pay.
- Charge an upfront deposit before starting work. This won't apply if you're working for an agency but if you're working direct for a client, it's normal to do this. Anything between 25% and 50% is ok.
- If you're waiting for a client to sign a contract or pay a deposit, don't start work. They could be about to change their minds about the project. You're completely within your rights to not start work yet.
- For longer projects, include staged payments. I always include a payment at the alpha stage of a website development project, at which point 80% of the costs will have been paid. I've done most of the work at this point so it makes sense to get paid for it.
It can be tempting to take on a job without a contract or a deposit (if relevant) as the client seems trustworthy and you've got d the freeeadlines to hit. But don't. Here's a tutorial that will help you with setting up a contracts for your freelance work.
I've experienced reluctance to pay from the most pleasant of clients (who's to say they won't have cashflow problems), and if the deadlines aren't met because the client isn't fulfilling their side of the contract that's their problem, not yours.
I'm the daughter of an accountant and it's something I never wanted to take up as a career. But being able to manage my accounts on a day to day business makes things much simpler when it comes to submitting annual accounts and/or completing a tax return at year end.
- Keep records of everything that comes into and goes out of your business. Keeping records of money you're paid is quite straightforward but you'll also need to keep receipts for things you buy or subscribe to.
- Set aside some time each month to update your accounts using those receipts. A receipt is no good if it's sitting in your wallet: it needs to be input to your accounting system. If you don't do this regularly, it will be a huge headache at the end of the year!
- Use an electronic invoicing system which will keep records of all of your invoices and provide you with reports when you need them. I use the free invoicable, and there are plenty of other options out there.
- Set up a business bank account and use that for all business transactions. keeping things separate reduces the risk of you accidentally spending money on personal things that should be spent on your business.
- Open a savings account and keep a 'contingency' fund in it equating to a month's pay, or more if you prefer. If you get sick, don't get paid, or don't have work coming in for a while you can use that to keep you from going under.
- In that same savings account (or maybe a separate one), put a proportion of your income aside for taxes. This money is untouchable; you'll need it when the time comes to pay any sales or income taxes. I've deliberately set up an account whose interest rates go up if I take money out more than once a quarter: this discourages me from dipping into the account when it's not time to pay my taxes. When I set up my first freelance business I didn't do this and ended up borrowing money to pay sales taxes.
- Set a budget for business purchases such as equipment, development materials and courses, books etc. Then when you need to replace your old laptop you'll have budgeted for it.
Here's our Tuts+ freelancer’s guide to basic bookkeeping, which will help you get started with implementing a simple, proper record keeping workflow.
Managing your time can be one of the biggest challenges if you're used to working nine to five. It can be an even bigger challenge if you take on big projects with far off deadlines or you work from home.
But if you don't manage your time you won't get your work done, you won't get paid, you could lose clients and your reputation will suffer. You'll also have to face the stress of working all night as a deadline approaches.
- Identify the hours you'll work each day and week and stick to them. If you can't fill those hours with paid work, use the time for marketing and self development.
- Set aside time each week for non-chargeable work. I do all my admin on a Monday morning as it gets it out of the way and means I can start the week with tasks that don't require much brain power! I do my self development on Fridays as I'm feeling more relaxed then. In the early days you'll need more time for marketing and finding work.
- Plan your days and weeks. I spend a few minutes at the beginning of each week writing down what I'm going to do each day, and then each day I make a more detailed plan for the day. If I can tick everything off by the end of the day I'm happy. Some people like to do this at the end of the day in preparation for the next day but I find that stops me from switching off.
- Take breaks, especially if your work involves long hours in front of a computer screen. If you're tired in the afternoons you'll get less done than if you had taken a few ten minute breaks in the morning.
- Try to avoid working in your free time as much as possible. I work from home and I find that going for a walk before I start and after I finish work helps me demarcate the working day and clears my head.
- Set aside a dedicated work space so you can focus when you're at work. This may be challenging if you share a living space and don't have much extra room, but it can help you keep work and home separate.
- Use tools to help you manage your time and workflow. I use Trello, but there are plenty of useful tools like Basecamp and Evernote.
- Tell the people you live with when you're working and discourage them from disturbing you. This will be a challenge if you have children!
- Make use of coffee shops and workspaces from time to time to get a change of scene, especially if you're working on something different.
- If a project has one far-off deadline, set yourself milestones to achieve along the way. Tell other people about these; it'll make it more likely you meet them.
Not all of these tips will work for you, as we all have different styles. So experiment with some ideas, ask other freelancers how they manage their time, and find a routine that works for you. And don't beat yourself up if you need to take a day off every now and then. I sometimes find I just can't focus after I've completed a big project so I take a couple of days off to clear my head.
The first time I worked freelance I was in my twenties and I set up as an IT trainer after being made redundant from my first job. I soon realised that I hadn't been working long enough to build up the experience to take on the sort of jobs that really interested me. My former employer had supported my continuous development, letting me grow my skills and take on ever more challenging and interesting projects. But as a freelancer I didn't get the importance of this so I just kept taking the same kind of job: jobs that I could do easily and that clients trusted me to do.
The mistake I made was in not focusing on my self development in the same way as I had when I was employed. It wasn't long before my business became unviable (and boring), so I went back into a full time job. spent the next ten years developing a range of skills and abilities before going freelance again.
Now I make sure I take time out for development activity regularly. This doesn't have to be formal training, but can include much more informal activity that you can fit into your working day. Without it you risk being left behind as your industry changes along with client expectations.
- Keep abreast of developments in your industry: subscribe to blogs, journals etc.
- Join the conversation: ask questions in forums and on blogs and discuss things with colleagues.
- Use meetup groups and conferences to learn. At conferences, listen to talks on topics that are outside your comfort zone.
- Consider professional qualifications if they're relevant to your industry. If you already have a qualification, keep it up to date with CPD.
- When you're not working, don't stop learning. Read about topics that interest you, watch educational TV programmes, maybe take a course on something completely unrelated to your job. If you're always learning, professional learning will be second nature.
- Subscribe to video courses or buy books that help you gain a more in depth understanding of what's happening in your industry.
- Use websites like our own Tuts+—or other online educational sites—to boost your self development.
- Learn through experience: take on work that you haven't done before. It can be difficult to get clients to pay for things you don't have a track record in, but personal projects can be a great way to develop new skills.
- Play. Dabble with new technologies, try things out, and learn from your mistakes.
Developing your skills is important as it helps you expand the crucial thinking skills you'll need when working with clients. This practice makes you more marketable and can introduce you to new areas you want to work in. Never stop learning!
By now, hopefully you agree with me that freelancing has a significant business components, but that doesn't stop it from being hugely rewarding and often lots of fun.
If you can manage the business aspects of your work then you'll be more efficient. You'll find it easier to pick up and retain clients. You'll give yourself more time to do what you enjoy and make money. It will also protect you from the impact of invoices not being paid, your skills going out of date or your clients dropping you for another developer. Keep on top of your business skills and you can be a much more successful freelancer.