Is freelancing for you?
It sounds like an easy question, but whether freelancing is the right option for you needs some careful consideration and answers to more detailed questions. Questions you should ask yourself are:
Can you afford to be a freelancer?
If you have children or relatives who rely on your earnings, will they suffer if you develop cash flow problems?
Does your current financial situation give you enough margin to cope with situations where payments are delayed?
You don't want to be in a situation where you lose your home because a few of your clients are late paying their invoices
Health is an important factor to consider:
Are you healthy enough to invest the required effort to succeed as a freelancer?
Can you afford health insurance if you are not living in a country with a socialized medical system?
Can you handle being a freelancer?
If you like/need a regular work pattern, then freelancing probably isn't for you. Many projects will require phases where you need to work late and work flow isn't always constant enough to ensure that you can always work set hours on the types of work you want to be doing and are getting paid for
Do you have a passion for the services you intend to provide? If you're in it just for the money, you would be better getting a regular job that pays a good salary. If you have skills that are in demand and difficult to find, there's no reason why you shouldn't be able to secure a job with a salary that is significantly higher than the average programmer's salary
If you can work well under pressure, then you will cope with many scenarios you will encounter as a freelance programmer
Can you handle working overtime when everyone else is out enjoying the sun? Working in that company basement at the weekend on a hot day can be extra fun!
Do you have good business acumen?
By being a freelancer, you are in effect being your own business, hence the need to make good business decisions, develop good strategies, and know how to keep your services profitable. If you fail at any of these, you will get into difficulty that will cause you problems on both a professional and personal basis
Do you see the bigger picture or just the next step?
Being able to see the bigger picture of all aspects of the projects you are involved with is an important part of being successful in a freelance career, especially when it comes to programming. This isn't restricted to your technical skills, but also for how everyone else fits within projects, and management of political issues
How well can you communicate?
Success of a project will always depend on good communication. You need to be able to extract the right information from clients to get the job done efficiently and profitably, as well to do the 'right' job. You will also need to be able to adjust your communication style for different types of clients—see Chapter 7, Managing Clients
Can you be assertive if required?
Although not always required, it's important to know when and how to be assertive when required. It's not always good to be assertive with clients, but sometimes this is a requirement in situations where clients are taking advantage or pushing you into a situation that is unacceptable
Are you confident?
If you don't show confidence in yourself, then potential clients won't have enough confidence to hire you—and those who do will quickly lose confidence or look to take advantage
Being able to accept rejection and persevere without being demoralized is an important quality—especially in the early days when you don't have a strong enough portfolio to stand out from the competition. An ability to accept rejection and embrace criticism will allow you to adapt and persevere until you get hired; this is ultimately a numbers game, where you increase your chances of being hired with each project/contract application—using your response to previous feedback to further increase your chances