How to work efficiently with freelancersby Ascendro 11.11.2015, updated 23.11.2015
Engaging and working with a freelancer on a project requires multiple stages so we will try to display a relevant summary plus some meaningful examples.
The most common options to look after a freelancer are: recommendations from other contacts, freelancing platforms, linkedin, xing. No matter where you post the job, your inbox will get flooded anyway so a first piece of advice would be to set filters in your email and go through the proposals submitted at every 2-3 days and not as they come.
In some cases is very good to set a list of countries you prefer to work due to the culture, expertise or timezone. This will simplify the proposals processing and will focus your attention on the relevant entries. Generally if you have a good system to handle the whole process it is better to list the job in more places in order to build a wide pipeline of freelancers.
The crazy thing is that no matter what you write in the job description, most of the people will not read it at all and will just apply, apply, apply...almost like they have an automated script in place…
The qualification round
Now that you are receiving hundreds of “greeting emails” on all possible channels it is time to move towards the qualification round. There will be people who will force the way in via email, call, skype call or chat, linkedin, facebook, etc. Don’t let them disturb you, just stick to your plan and process proposals once at 2-3 days based on some clear criterias that make it easy for you.
The qualification round will make it clear what people will move towards the test stage so it is very good to have a standard questionnaire at hand when you engage in a call or chat. Your goal is to focus on quality and not quantity so it is better to define your needs in detail. For example here are some type of people that do freelancing:
The employee - Works full time at other company and tries to convince you that he is still productive after a full working day. You identify this type simply by asking your questions from the questionnaire. In some cases you can use such people if you want to assign 1-2 tasks per week and if the deadline is not important at the time. This type of freelancer will tell you that they can assign around 20 hours per week but you shouldn’t believe them…
The project hunter - Works 14 hours per day, is clearly overwhelmed but he simply can’t say no to a project and in fact he is continuing to commit for new jobs… Make sure you get as much details as possible about his current engagements before you move forward. You don’t want to lose time with this type as things will get out of control at one point. A good question for freelancers is “At what exact times are you available during the day”? The answer is relevant to define the type of freelancer and also to define if it matches your company schedule which is the ideal situation.
The serious freelancer - He is doing freelancing 100%, has discipline and works according to a schedule and not 24/7 as others commit. This freelancer are harder to find as they usually are engaged in other agreements but once you start working with them you will definitely feel the difference compared with the other types as they are more responsive, adaptable and proactive. A fair freelancer usually commits for less hours per week compared with the “employee” or the “project hunter” types. That’s a paradox right?..
The test is simply the technical interview with the freelancer that should validate if he has the experience and skills to work on a specific project. The interview has to be hosted by a person with good technical background and should include at least the following: general questions about best practices, direct technical questions and details about specific implementations completed by the freelancer, code review of 1-2 projects executed by him recently.
In addition to the technical profile you should also look closer to other aspects as attitude, communication, adaptability and working times. Even if a freelancer is doing great within the technical discussion, you should also assign him a programming test task in order to see how he: manages requirements, communicates and generally adapts to your needs.
Make sure you integrate the freelancer in the tool chain you are using to complete your project. From our experience it is always better to assign a short training for the freelancer instead of letting him struggle with the setup of GIT or with the business logic of a project management tool he is not familiar with.
On the other side, it is very helpful to track the code submitted by the freelancer everyday (at least in the first weeks) because it will provide valuable information about code standards, commits frequency, working times, responsiveness.
The time and budget estimate
It is well known that in some cases freelancers submit a low budget estimate just to acquire a customer and then request additional budgets as the project goes forward. Another common thing is that the freelancers are willing to charge separately for the bugs they generate. We propose the following approach in order to maximize the entire cooperation:
- We estimate internally the tasks that will be assigned to the freelancer.
We request the estimate from the freelancer and communicate the times we have estimated for the specific task.
We encourage the freelancer to make a small addition to the initial times/budgets but to include in the budget the efforts for bug fixing process and the quality adjustments.
We pay for what was estimated and confirmed but we are flexible in situations when the additional times are caused by other factors.
We constantly review the gap between estimates and actual times in order to make sure we are on the right track with the project.
We do weekly random code reviews in order to verify the work quality.
Note: In case you don’t have the needed skills in-house to secure the steps above we highly recommend you to work with an external trusted partner just to back you up with this part.
The communication time required for your team when working with a freelancer is one of the main indicators that shows if you are working with an efficient freelancer or not. This means that you will always have more benefits if you work with a person that understands what you need fast and doesn’t need baby sitting to get the job done.
From our experience it is very good to set a meeting between the project manager and freelancer when new set of tasks are started in order to define the expected results for the implementation. If this step is not done and the freelancer is developing something that needs to be rewritten or adjusted the overall efforts will be much higher.
For the communication with freelancers we recommend you project management tools but also an instant chat or call solution in order to be able to clarify things fast. On the other side it is very efficient to work with freelancers that can adapt to your team’s schedule instead of working late in the night or in weekends.
Follow-up is just a great tool when you want to make sure that things are on the right track. In the first weeks of the cooperation with a freelancer we recommend one of the following:
a. Daily meetings to talk about progress and potential problems, road blockers.
This option brings a good frequency in terms of status update but can move things in a routine that doesn’t bring quality to the meeting and focuses on general status rather than a specific implementation. For example this discussions are something like: “I worked on this and this task, and everything goes well, tomorrow I will start working at...” As stated above the model is good when you have a well rounded team you trust but with a freelancer you will have to dig deeper in the first weeks in order to make sure he is not going in a wrong direction.
b. Short meetings after a task is completed by the freelancer.
This option is more time consuming but bring better results on short term and integrates the freelancer better to the company’s work standards. A discussion like this goes like: “Freelancer: This is how I did the implementation" Project manager: "This are the areas that need to be improved”. This approach is good for the first weeks but after a while is also fine to set such a meeting after a user story (bulck of tasks) is completed.
As a short conclusion the follow-up we recommend is actually a hands on experience and not a general questions like “how are things going?”
The next cycle
We always start the next development cycle with a freelancer after the previous cycle is 100% completed. This means that we assign new tasks after his work on the previous development cycle was tested by our Quality Assurance department and after the bug fixing process for that part is done.
Sometimes it seems to be more efficient to continue with new tasks and then focus only on bug fixing but from what we have experienced it is a better option to clean up every user story properly before moving forward. However, the only situation when we recommend to assign new tasks before cleanup, is when your company can’t assign testing efforts due to planning reasons.
Working with freelancers is a good strategy in some cases so why not getting the maximum out of it by simply integrating this brief ideas:
A good research strategy saves you time and gives you better focus.
The qualification round keeps you safe from the crazy freelancers.
A good test process will definitely pay off in a later stage of the project.
Use tools, train freelancers and focus to integrate them with the company’s work standards.
A good approach over budget estimate will save you good money and communication efforts.
Communicate with the freelancer in the key moments and keep your project under control.
Good follow-up brings predictability and a close insight over the freelancer working methods.
Sometimes is better to start new tasks only after the current ones are confirmed.
We really hope you have enjoied this article and will use this ideas to improve your working experience with freelancers.