Hiring a freelance developer to turn your idea into a reality isn’t going to be easy. So, here are things that you should follow
In the outsourcing world, clients often do not have the technical expertise to be able to interview a developer. So when hiring a freelance developer, they make the first mistake of getting things done within a budget and hire the developer who quotes within the budget.
When you don’t have the expertise, it isn’t easy to put a price.
Let me help you understand it with an example. If you want to clone Google search engine at a price for $1000, I am sure you will have freelancers willing to get it done for you.
The only question is, can they do it?
And if someone has delivered what you want, is it done the way it should be done such that you can scale it?
More likely, the answer is NO.
A newbie may have taken up the project and delivered the working mini-model of it, but he may not have considered the security aspect of the code and other such nitty-gritty details. Moreover, he may not even be aware, and you are more likely not to test.
Now when you hire a seasoned developer, he may need more time fixing what is done. Now you find you have wasted a thousand bucks.
So, instead of stopping here, you try to find someone who can keep working on the bad code. This is how the bad becomes worse, and your idea goes down the drain.
What to Look For When Hiring a Freelance Developer
Let me share some of the qualities that one should look for in developers.
1. Niche Expertise and Experience
If I am looking to hire a freelancer for a custom project in CakePHP, the experience in general web development, WordPress, or even raw PHP isn’t going to be enough. I prefer a developer who has experience in the niche, which is CakePHP in our example.
It doesn’t mean I don’t work with new freelancers. What it means is you can’t be new to the world of development and is taking up CakePHP for the first time. You can be new to the world of freelancing but definitely shouldn’t be new to the niche of the expertise.
It also doesn’t mean you should have worked in the niche for years, but if you can show me a sample where you have worked only for inner satisfaction or a half-finished project as well.
So when you want to hire a freelance developer, consider the niche expertise. It is the most critical aspect of selecting a developer, even if it means paying a little extra.
2. Contribution to Open Source
As a developer, it is essential to be able to deliver to the open-source community. The reason I look for developers who contribute to the open-source is that it helps them improve as a developer.
Every developer has some code lying on his hard disk that can be shared online.
As a developer, when you prefer to share, it will improve the way you write and comment on your code. Knowing that others will view it is enough for your self-development.
You will notice an immediate improvement when you have a contribution to open source in the back of your mind. As a developer, you will start to document your code and will avoid naming the variable as x or j.
So when I am looking for developers who share their code in public, they know a lot more about how to code.
It is in a way to understand that developer knows how to write code so that other developers can recognize the code and build on it as and when needed.
3. Willingness to Learn
I prefer to hire people who are driven by the passion for being a developer than driven by money.
If you are more interested in learning and are compensated for the time, it is the best thing that can happen. This is how I prefer, and having a similar mindset helps build a long-term professional relationship.
Once you are driven by money, as the complexity of the project rises, one tries to find a way to get things done than getting it done in the right direction.
Working hard for something we don’t care about is called stress. Working hard for something we love is called Passion. – Simon Sinek
A learning attitude is the most crucial aspect, but if you have a tough client to handle, keeping a short-term view isn’t bad either.
Time and again, I see freelance developers miss the learning attitude.
I have even seen developers respond like it will take a long-time for me to complete. So I prefer working only on WordPress.
I do agree it will take longer when you are onto something new. However, the way I look at it is I have a chance to learn something new and get paid for it as well.
Once the attitude is to learn, the worldview of the freelancer changes.
Always look for a freelancer who is a step ahead in the learning curve. As a client, it will be tough to judge a freelancer right away if he has a learning attitude or not but look for a freelancer who has it.
4. Problem Solver and not Problem Patcher
In the world of programming, the same thing can be fixed in more than one way. One may be a patch, whereas others may be a complete fix.
A recent example I came across was a variable that wasn’t defined in a function.
So the code was patched such that if the variable isn’t defined, repopulate data from the database.
The error from the front end was gone, and a client was happy about it.
The ideal fix is to see why the variable isn’t passed to the function. It avoids an extra database query to populate the data.
The right attitude is more important than anything else. Doing the root cause analysis to get a fix than just patching it gives me the confidence to keep working for the long-term.
Clients won’t understand such solutions because they aren’t technically sound to understand it. However, one can always talk with the developer to know if he is fixing the issue or just patching it.
5. Keen With Deadlines
Deadlines are the most important thing for me. Root cause analysis may take longer than expected, but that doesn’t mean a deadline can be missed.
I have never missed a deadline, and I don’t like developers missing the deadline either.
I always ask the developers to share the deadline. Once the deadline is fixed, there isn’t anything that I take as an excuse.
You know your workload and have come up with a deadline. Moreover, you also have kept the buffer for the bugs. So there is no point in missing a deadline by any chance.
How to Determine Project Cost?
When you want to hire a freelance developer, one has to understand the cost from the viewpoint of a developer.
As we have already seen in the Google example above, If you start from the point of the clone of X for a price N, you will go nowhere.
The cost is a function of features along with the time needed to develop each element, which is the complexity of the feature.
So the Cost of the Project = [(No of Features) X (Time Complexity)] X (Hourly Rate)
When hiring a freelancer, the focus is always on the hourly rate. At the same time, one should focus on the No of features and time complexities of each function.
Coming back on the example of Google search. One can always create a straightforward search based on the data stored in the database.
However, if you want to implement, Did you mean one has to understand what the user is searching for? It means there has to be a complete dictionary. So, if anything isn’t in the dictionary, the code should be smart enough to understand what is close enough to what is typed.
Such a feature like “Did you mean” adds a lot of time complexity to a simple search feature. It can skyrocket the budget.
The cost is directly proportional to the no of features but is more so determined by the complexities of each of those features and integration of each functionality.
Some clients are hesitant to reveal their budget, in fear that the developer will charge them the maximum amount. I don’t wholly disagree with it. So even when you aren’t revealing the budget, make sure you have a realistic budget in the back of your mind to what you are looking for.
The Right Approach to Hiring Freelancer Developers
Working as a freelancer developer for more than 500 clients in the past decade, here is a 3-step process to help get a project into reality by a developer.
1. Create Wireframes
The best way to convert any web development idea into a reality is with the use of wireframes.
When you have the complete wireframe in front of you, it is so much easy to communicate what you want to be done.
Each user interface can help you understand what you want, where you want them to be placed. More importantly, how you want the data to flow among the screens.
2. Define User Flow
When you have the wireframes ready, you need to define how the user will interact with each element of the wireframe.
Like for example, if you have a logo and menu, what will happen when clicking the logo or how you want the many to be when scrolling.
The user flow will help you to visualize things as well as make the life of the developer easier.
3. Build Prototypes
Even when you have the wireframes and user flow, the actual product will need a lot of iterations before you want to settle with something that you want and is better to use as well.
You will soon find that your wireframe is not ideal. The reason I say this is because you still don’t have the actual product to visualize every aspect of it. Wireframes are meant to help visualize your understanding of the project and bring the developer on the same page.
Once you have a prototype, there is a lot of things that one realizes.
So building the UX along with the functionality in small tranches can always help you improve things as you move along.
The most important aspect of hiring a freelance developer is to keep in mind that a developer may not be a designer.
A web developer may be able to build on the functionality you want, but to give the right user interface; you may need UI/UX designs, which only a designer can get it right for you.
For a developer, a red button is the same as the blue button as long as clicking the button does what it is intended to do. However, a red button can mean it is throwing users away, and it is the UI/UX designer who can help you get things right.