Here are 9 key non-programming skills an individual developer freelancer must-have. If you don’t have them, you can’t be a freelancer
You may be an excellent developer and yet struggle to find clients. However, your friend who never could match your grades in college or a colleague who could never write better code than you are able to manage a lot more client work than you can even imagine.
You know you are a better developer, and yet you aren’t able to fetch your first client, and the not so technical person can get a client as and when he needs one.
Have you ever wondered why it happens?
It is because, in the freelancing world, clients aren’t looking to hire the best developer. They are more interested in hiring the developer who knows what they want. Moreover is able to convey themselves as a knowledgeable person and get the project to completion.
Yes, you read it right. Clients are looking for a solution.
Here are key skills an individual freelancer must-have which are non-programming. If you don’t have them, you cannot be a developer freelancer, and it is as simple as that.
1. Communication skill
Communication skill is the crucial non-programming skill to be a freelancer. Period.
To be an employee, the key skills are more technical in nature, but for a freelancer, it is the communication skills that will make or break a freelancing career.
For getting a job, there is a technical round of interview to show the technical expertise which spans from a few minutes to even hours. However, as a freelancer, a few lines in the proposal are all he has to show the technical expertise.
In a technical interview, an interviewer is a technical person who is more interested in knowing your technical expertise. However, freelancing rules are different.
Clients hiring developers often don’t have the needed technical skills to interview you. So they judge you based on your proposal. If you can make their project a reality. If you can communicate, you are more likely to win the project.
What you know is important but letting your potential client know what you know is even more important and then be able to convince your potential client:
- Why you are the best person to do it?
- What you will be doing and how?
- When can you deliver or at least when you can start?
- How your price is a value deal for the client?
My upwork proposal template lands me client almost always and it is because it removes all the fluff and answers all the above questions in a very short manner.
- Why I am the best person – Answer is in my expertise para
- What I will be doing and how – Answered in the questions and suggestions section
- When can I start – The closing line of the proposal
- How my price is value – The complete proposal is a value because the client gets an expert who can start immediately and has a history to back the price.
2. Estimation skill
How much time or money it will cost to get the job done for you. Being able to estimate is yet another non-programming skill that every developer willing to be a freelancer should start developing.
If you price it too low, you will be frustrated with the job. If you price it too high, others may grab the opportunity from you.
The right price can be estimated if you can estimate the complexity of the project. The estimation will improve overtime as you become a more experienced developer in a particular technology or niche but you should always try the estimation game even when you don’t need to.
If you don’t estimate well enough you may end up being paid too low for an overly complex task or may ask too much for an overly simple requirement.
3. Negotiation skill
Clients will always want to get the job done for as little as possible. So, if you don’t have the right negotiation skills you can be working for too little most of the time.
You will need the right kind of negotiation skills to let the client know the value you add instead of the price they pay. Making your services more valuable than the price being paid will help you negotiate better rates.
Should you offer a discount or add more value to the offer. My view is to add more value than making the price cheaper with a discount.
4. Problem-solving Skill
A very important non-programming skill for an individual developer freelancer is to be able to solve problems technically and otherwise.
An employee when working in a team can always refer to an experienced person for typical problems. However, as an individual freelancer working from home, you need skills to solve such issues.
As an example, the Xenforo image uploader on iPhone rotates images because the iPhone displays them after changing the orientation from EXIF data and xenForo doesn’t change the orientation based on EXIF data. So the fix is to apply this code in the core of xenForo but it requires Imagick installed on the server.
To test the fix, I wanted to install Imagick on my MAC. After trying for a few hours I could not make it work because running those command-line tools on a terminal is not my expertise. I moved my test environment from localhost on my MAC to my hosting company where I asked the hosting support to get Imagick installed for me.
Problem solved.
A small fix that I wanted to test before putting it live on the client’s server. Was a trivial task and couldn’t ask clients hours of billing either.
So it was important for me to be able to test and apply the fix than to install Imagick on MAC.
5. Delegation skill
Even if you are an individual freelancer, you won’t do everything from start to finish. You will need to delegate a few things to others.
As a system developer, you may delegate database design. As a web developer, you may delegate web design, HTML, or CSS. If you are a blogger you can delegate images, final publishing of work, social media marketing, etc The list can go on and on.
Delegation is a key non-programming skill for an individual freelancer to have. Moreover, the growth of a freelancer will depend on how he or she can delegate.
6. Time management skill
Freelancers are able to offer a better price to each client because he is not working for only one of them all the time. Once can slice up his time between multiple clients making it more viable for everyone.
How much one can deliver and what is a suitable deadline that can be feasible is very important. It is different from negotiating a price.
Taking too much work can mean it will be delayed making clients unhappy. However, taking too little can mean you may have issues paying the bills.
Having the right kind of time management skill to be able to understand when it is too much work and when it is too little is a must for a freelancer.
The ability to make a switch from one technology to another needs good time management skills where dedicating some amount of time to learn the new technology. The time to learn new technology may not be paid right up front by clients but is something that can help in the long run.
7. Marketing skill
The most under-rated non-programming skill for a developer willing to be a freelancer is the ability to market his or her skills and get paid for it.
Developers often lack marketing skills but freelancing is not about being an awesome developer. Developers willing to learn marketing has more chance of being successful.
Don’t worry. You don’t need to be a marketing guru to be a successful freelancer but you need to be open to learn the marketing skills and tactics to become a highly paid freelancer.
Freelancing is a business and business needs marketing. If you lack the marketing skills, be open to hiring but make sure you have the basic skills to be able to interview a marketer.
8. The Risk-Taking Ability
One non-programming skill that every freelancer must have is the ability to take the risk. Freelancing is not a gamble. However, there is an element of risk to freelancing for sure and one should be ready to take that risk.
There are a few things that will work and a ton of things that won’t. If you are only focusing on things that didn’t work and base every decision on what hasn’t work in the past, you will become an extremely negative person. The failure should be taken as a learning experience and not the reason for the next decision.
The risk can mean everything is at stake or very little at stake but it is still a risk. As an online freelancer, I tried many things in the past that didn’t work. Anticipated something will work, built it wholeheartedly investing time, energy, and money but it fails. Quite normal. One should learn a lesson out of it and move on.
Let me share a small story.
When I was planning to quit my job, I tried discussing it with a few of my old friends and colleagues who hinted me about their willingness to do business. Few replied soon they will let me know (way of saying NO of my Bengali friends) and some weren’t just ready yet but one of them wanted to do something though he wasn’t sure how because he wasn’t interested in forming any kind of alliance or partnership because one of his earlier partnership with someone else didn’t work out.
Becoming stubborn to form a partnership and try again just because things didn’t work out once in the past with someone else isn’t the right approach. Ideally, one may not partner with the same person or learn why it didn’t work out to try things differently.
If all it takes is one such incidence to shut every other opportunity in the future, you aren’t a freelancer or an entrepreneur.
Each one of us is smart, educated, adult, and knows our stuff. The only thing that one needs to do is get out of the comfort zone and take a calculated risk.
9. Goal Setting
Setting the right kind of goal that can take the best out of you is Crucial. It is yet another vital non-programming skill one must have as a freelancer.
How to set up long-term goals and then come up with short-term goals that align with the long-term goals. Short term goals should create a roadmap to achieve long-term goals.
Goals are very important and once you have a goal in mind, you can determine how and when one wants to reach there and plan accordingly.
The benchmark for success is the bank balance. So when I quit my job to work from home, one set of my goals were financial in nature but I had other goals as well.
When I quit my job, I was working in C# but I wanted to get on the web bandwagon. PHP and SEO were my top choice. I chose to work in PHP for clients and in vBulletin. Then I wanted to diversify from vBulletin and so added WordPress to my expertise. Slowly when vBulletin wasn’t all that stable anymore, the goal was to make a move to XenForo. As of today, I am doing fairly well in XenForo but I have a long-term plan to move away from being a developer.
10. Perseverance
The last but the most important aspect of freelancing is perseverance. How badly you want it to be a freelancer will decide if you succeed or fail at it.
When you quit your job and start freelancing, things may not work out as expected in the first few months. You can have a tough time finding your first few clients and your income level can be quite lower than the salary you were drawing even with a much higher amount of time and effort.
It can test your nerves and if you don’t want it really badly, you can be tempted to move back to a job easily.
Remember: Things just don’t work out the way you like it unless you make them work out the way you want it to be.