Over the last two decades in my career in the technology industry, I’ve experienced both sides of the gig economy — as a freelancer, and as a technology leader hiring freelance developers. Back in my developer days, I worked as a freelance developer to expand my skillset and knowledge, and since becoming an engineering manager, I’ve hired freelance developers for the companies I worked for.
In this article, I want to share my insights around hiring freelance developers, and best practices to finding and hiring the best freelance developers in the gig economy. As engineering leaders, it’s important to understand and take advantage of the gig economy, as it has emerged as one of the most significant developments in the way we work. The outsourced workforce is going to be part of the future of work, whether you like it or not.
Hiring a Freelance Developer
When should you hire a freelance developer? If you haven’t hired freelance developers before, you might be asking why you need them. These are some common reasons companies hire freelancers:
- Access to a variety of skills, across different tech stacks and niche — such as iOS mobile development, ecommerce website development, and so on.
- Freelance developers are more readily available. Developers who are freelancers are usually available within weeks.
- Freelance developers are more affordable. Even if their hourly rate may be higher in some cases, compared to having a permanent developer, it’s going to end up more affordable, as there won’t be extra spending like insurance, 401k or superannuation.
- You may not need a long-term, permanent developer. A company may decide that there’s a project that can be done once and won’t require continuous maintenance or work. Or there might be a project that requires a specific skill for a specific milestone — such as setting up DevOps infrastructure, refactoring an old tech stack to a new one, redesigning a UI for a web application, small bug fixes, and so on.
- You have a distributed team. This has grown in relevance over the past year, with a large rise in remote work.
Importantly, evidence suggests that affordability is at the top of the list for smaller companies, even if they’re not a fully distributed team.
When Not to Hire a Freelance Developer
Hiring freelance developers may not be the right move, for the following reasons:
- You may prefer to work with people in the same office/timezone. Data shows that there’s a large population of freelance developers in Eastern Europe and North America, followed by Asia and Middle East.
- You may not have confidence in the skills and/or quality of freelancers.
- There may be intellectual property and security issues.
- Using freelancers may have a negative impact on the potential value of the company for startups trying to get funding.
- For startups trying to get funding, using freelancers may have a negative impact on the perceived value of the company.
Important Factors to Take into Consideration when Hiring Freelance Developers
There are multiple important factors to take into consideration when hiring freelance developers. Understanding and applying these best practices is crucial to producing successful outcomes for a company employing a freelance workforce. Therefore, to be successful, engineering leaders need to think holistically to bring the organization and technology together as closely as possible in decision making.
Think value over deliverables
Before hiring, think about the value you’d like to get from this person. For large organizations, short-term contracts (anything less than three months) more often than not don’t add a lot of value, as it takes a while for most people to get a hang of various technologies, large codebases, tools and processes used in big organizations. For small to medium organizations, processes and codebases are not as complex and shorter contracts work better. This also depends on the nature of the work — for example, whether the developer is working on a specific project or whether they’re doing ad-hoc, business-as-usual tasks.
Set correct expectations
A well-defined list of tasks or projects is important for getting the most out of freelance developers, so that they know what’s expected and perform their tasks as efficiently as possible. This can also be used over time as a clear reference for measuring whether the developer is meeting expectations.
It’s not enough to just tell freelance developers about your organization’s coding standards and conventions. It’s also important to review the work that they’ve done so the standards and conventions are followed accurately. Therefore, code review is essential, especially for the first few tasks they work on. This needs to be done to ensure the developer conforms to the coding standards of your organization.
Eliminate any possible bottleneck
If you’re providing tools of trade to do the job, such as a workstation, ensure they’re fast enough so they don’t become a bottleneck in getting the most out of developers. If possible, ensure that all software, IDE, graphics software, and so on, are set up on their workstation before they start so the developer won’t need to spend time setting up software when they could be doing something more productive — such as learning about your company’s codebases and coding standards, understanding current architecture and so on.
Before hiring a freelancer, consider the time someone from your organization will need to spend on getting these developers up to speed. This relates back to my first point about thinking value over deliverables or the project. If an existing employee or employees (for example, developers, product managers, designers, analysts) need to spend a few hours every day with freelance developers to get them up to speed, and those freelancers will only be with the organization for a month, then consider whether it’s really worth hiring them at all.
Invest in tools and processes
If your company doesn’t already have tools and processes to support remote and async work effectively, you absolutely must invest in them. The future of work is here to stay, and it’s a good time to set up processes and tools such as ticket tracking, workflow management, time tracking, communication tools and so on. It’s also worthwhile to have standard procedures for the team so freelance developers can read up on these resources to onboard effectively. For example, these standard procedures might detail how to start a sprint, how to run a retrospective, how to triage bugs, how to manage incidents and outages, how to roll out a feature, and so on. When there are best practices and templates to follow, freelance developers will know what’s expected in each situation without having to check with you often.
Alway Hire the Right People
The best freelance developers for your company are the ones that are the right fit, and only you as an engineering leader can assess who are the best. So my advice is short and sweet: always hire the right people for you, by understanding and applying the best practices that I’ve shared in this article.
While they are freelance developers and may not be with the organization for a long period, follow a similar selection process that you have for other full-time employees in terms of assessing their technical skills, as well as their willingness to be a good team player. After all, those freelance developers will still need to perform their jobs well, and they shouldn’t be getting a special pass because they’re freelancers.