Freelancers, Contractors and Consultants are an increasing component of organizations' engineering teams – in some situations, they are the entire engineering team.
If managed correctly, Engineers who are not employees can be a massive accelerator of an organization's roadmap. If managed incorrectly, they can deliver average results, or even slow down the roadmap.
Follow this guide to help pick the right partner, integrate them with employees, and deliver top engineering results.
There are two central recommendations.
First, organizations should manage Freelancers, Contractors and Consultants based on the Level of Mutual Commitment – whether they are Temporary, Interim, or Core – and not based on the contract type. Core third party engineers should be treated the same as employee engineers.
Second, working with Freelancers, Contractors and Consultants means organizations need to up their game on core processes of collaborating at work: including onboarding, values, communication, and leadership opportunities. Informal processes aren't enough, these processes must be intentional and consistent.
This piece includes:
- An oveview of Freelancers, Contractors and Consultants (FCCs) for engineering, including explanining the differences between each role. The market for FCC services has grown over the last two decades and then accelerated during COVID.
- The benefits of working with FCCs, including access to expertise, speed to hire, and lower risks in the hiring process.
- Pro tips on how to select an FCC partner organization and the key contract terms.
- The contractual differences between FCCs and in house employees, which are smaller than you might assume, since most employees are actually "contractors" anyway, due to Professional Employment Organizations.
- Guidelines for how to treat FCCs based on the Level of Mutual Commitment with respect to onboarding, organization values, communication practices, participating in committees, and leading others.
- Resources to start your search for FCCs.
An important disclaimer: this article is not legal advice. When embarking on a FCC program, please work with counsel to make sure you are following all relevant local and national regulations.
The beginning: Understanding Freelancers, Contractors and Consultants
What are they?
Software development freelancers, contractors and consultants are individuals or teams of people who carry out engineering tasks for a client.
In this white paper we’ll focus on the core software development activities that these third party teams are asked to work on, including writing and reviewing code and designing code architecture. Many of these lessons hold up too for DevOps and QA teams– and even for non-Engineering talent– but are not the focus of this paper.
Clients can hire Freelancers, Contractors and Consultants [FCCs] for a project that is as small as a 30 minute code review or as large as company-sized teams working for years. These projects can be huge: NASA hired a software development agency for $359 million for five years to build flight controls for future missions.
The difference between in-house software developers and FCCs is the nature of the agreement between the parties.
These definitions aren’t set in stone, so please forgive us if you have different preferred terminology.
- In-House software developers are employees of the Client. Being an employee comes with certain legal requirements- for example, in the US, the Client has to pay employment taxes and workers compensation.The traditional model for software development employees is that they are full time hires with no expected end date.
- Freelancer software developers are individuals who have a legal agreement, a contract, with the Client to carry out a set of work. Freelancers can work individually or in teams. The Client can contract directly with a freelancer or through an agency like Toptal. Typically freelancers work for shorter periods of time, either full time or part time, though sometimes they can work full time for years for the same client.
- Consultant software developers also have a legal agreement, a contract, with the Client. They can work for a Client as individuals or in teams and can be independent or work for a company. While there are several definitions floating around, we think of consultants as developers who are giving advice but are not carrying out the development work. Under this definition, you would not hire a “consultant” to do core coding, but you would hire a consultant to design a system architecture
- Contractor software developers are similar to Consultants except that they not only advise but also execute the work. With this definition, contractors code while consultants do not- an outside architect planning a system could be a consultant but not a contractor.
What’s trending in the market?
It’s clear that freelance and contractor consulting has grown significantly over the past few decades. Even pre-pandemic, the numbers speak for themselves. By 2019, the global services market had more than doubled to the tune of 92.5 billion U.S dollars.
Once Covid-19 took hold and organizations pivoted to remote or hybrid work, the market witnessed another growth explosion. An Upwork study found that more than one-third of the entire US workforce freelanced during Covid-19, up more than 22% since 2019. Tech roles had a big slice of the freelance pie with 51% of US post-graduate workers and 53% of technologists and mathematicians taking on freelance work.
Why work with Freelancers, Contractors and Consultants?
As working environments evolve, the value that Freelancers, Contractors and Consultants (FCCs) provide continues to grow. They are fast becoming the go-to resource to help businesses unlock their full potential.
Exploring the world of FCCs comes with an entirely new set of business benefits and, of course, legal requirements. Certain regulations may require, encourage, discourage or even prohibit certain working agreements. It goes without saying these should be a central part of your decision making, but we won’t cover the legalities of working arrangements in this white paper. After all, we aren’t experts in employment law — just the craft of code!
Legal elements aside, why should you be integrating FCCs into your team? Let’s dig into the benefits they bring to the table.
- Specialized expertise. The team may be facing a development challenge that involves specific knowledge to get going, but not necessarily for ongoing use. At Sema we’ve used specialists to figure out a tricky automated testing challenge at the intersection of DevOps and QA, and to significantly speed up our configuration of Amplitude. Here, a contractor or freelancer provides a timely and specialized solution, without the expense of bringing on someone full time.
- Speed to hire. Online networks for freelancers (see more information below) allow you to tap into global networks of specialized talent. Contractor and consulting firms often have consultants “on the bench”- which is to say, available to start a new project. This means that engineers could join your team within days or weeks, rather than taking months for a traditional search.
- De-risking the hiring process, in two ways. One way this plays out is through pre-vetted candidates. Freelancer networks and contractor/ consulting firms have varying levels of review before deciding that an engineer is suitable for hiring. Some of these organizations have quite strict standards, accepting 1-3% of their applicants, which can be as good or better than in-house vetting methods.
The other way that the hiring process is de-risked is freelancers, contractors and consultants who come through an organization have an implicit or explicit satisfaction guarantee. This could look like a formal trial period, where the developer is free to your organization for a certain period of time if it turns out they are not the right fit. Or it could look like swapping out a developer for another colleague from that firm.
When working with a firm, they have a strong interest in developing your organization as a client, and so they are also motivated to make sure you find a candidate that’s the right fit.
From our experience, there’s an extra layer of reassurance that comes from knowing that the individual contractor or freelancer has other projects and jobs on hand. This makes it easier to take a chance on a candidate compared to someone who is leaving a full time permanent job as an employee. Increased accessibility and diversity can only be a good thing — talent comes from everywhere!
- Avoiding the administrative burden. Freelancers network and contractor/ consulting firms carry out the nuts-and-bolts of recruiting, HR, and legal paperwork necessary for their engineers. The price is baked into the fees. This can mean a huge savings of time and money, especially for small to medium sized organizations. And it enables the Client to focus on the few areas they do best [We promised ourselves not to include too much jargon, but this is the textbook definition of core competency].
Look at it this way. A social or fintech software project should not re-invent user authentication, but use commercial or Open Source components. By that logic, a small or mid-sized software company should not spend scarce leadership attention on developing expertise in HR.
- Facilitating access to a global network of talent. Remote and hybrid work models are here to stay, which means that developers who live 3,000 miles away can be as integrated into your team as those who live 3 miles from you.
Of course, you can hire employees from any country around the world– but in our experience it is much more prudent to begin by working with an agency or network freelancers, contractors or consultants if you’ve never done it before. Their expertise is invaluable in figuring out how to make a multi-national model work– they’ve done it hundreds, thousands or millions or times before. Learning from them is a low cost test of whether your organization wants to take on a global team of employees.
Pro Tip 1: If you do consider hiring from other countries, have a very clear plan about dealing with different time zones. Employees who are in a very different time zone may mean that their managers and colleagues have to take early and late calls, which can be extremely draining.
Pro Tip 2: Wondering how you would pick a freelancing or contractor/consulting partner? Well as luck would have it, the benefits above work as a pretty nifty guide to selecting the right partner too:
- Ask for the number of developers with the specialized expertise you need associated with the partner; the more they have, the more likely it is that you’ll get the right person
- Ask for fastest, median, and average time to hire for the specific position(s) you are looking for
- Understand the developer selection criteria and what % of candidates make it through their funnel
- Understand their customer satisfaction policies: what happens if a candidate doesn’t work out?
- Ask what administrative functions such as tax will be carried out by them vs. the individual freelancer or contractor vs. by your firm. This is not legal advice, but be very careful! You want to be sure that their responsibilities are being met, as your organization could be liable if they aren’t.
Pro Tip 3: The most important terms you should understand about your consulting partners include:
- What are holiday schedules? Not only should you add these dates to a common calendar but you’ll need to explain differences in time off to colleagues working under different contracts.
- What are the terms to convert FCCs to employees? In many situations, it works out well for everyone involved to continue with the FCC relationship indefinitely. But it is helpful to know what the conversion fee is. Companies that have a declining conversion fee– a lower fee after the FCC has worked for you for a year or longer – provide you with more flexibility while protecting their business model.
- What are annual or performance-based raise policies, and how is local inflation taken into account in those calculations?
Pro Tip 4: if you plan to manage multiple consulting and contracting organizations, an extremely organized Contract Manager / HR officer is a must. That person will need to coordinate interviews with Hiring Managers, answer contract-specific personnel questions while considering the global “policy” impact that comes from resolving issues for individual FCCs, and develop trust-based relationships so the organization is quick to hear of potential issues or productivity blockers..
How you manage your FCCs matters
Now that you know the benefits of working with Freelancers, Contractors and Consultants (FCCs), it’s time to look at managing these relationships.
Let’s say you’re convinced and your organization is ready to work with FCCs. You’ve found a great partner agency or individual developer and signed on the dotted line. Is that enough?
No. It’s just the first step.
We wrote this paper because too many organizations stop here, assuming that hiring a FCC will work out just fine. But from a team management perspective, FCCs are a whole different ball game and organizations need to capitalize on this opportunity.
This is especially important during the Work From Home era with distributed engineers.
It is essential to be intentional about managing them effectively. Here’s why:
First, FCCs who are well managed contribute a lot.
Secondly, FCCs who are not well managed can contribute even less than an “average” developer employee, because they are less connected.
We estimate that the difference between a well managed FCC and a poorly managed one can be 10X…
Finally, being good at working with FCCs- leading to a great relationship with their sponsoring agency– makes it much easier to recruit more FCCs in the future. After all, in the global war for talent, FCCs have options too- and it is much easier for an agency to place an FCC with you if they can vouch for being a great place to work.
Hopefully you are persuaded as to why you need to intentionally manage FCCs.
Now let’s discuss how you should do it.
Before we get into the tactics, it’s time for everyone’s favorite topic, Legal Theory.
Wait, come back! This is interesting, we promise…
Time for Legal Theory Hour (™): Let’s talk about Contracts for a minute.
At its simplest form, a contract is an agreement between two entities to trade something of value.
- There’s a contract when you shop at the grocery store: you agree to pay money for food. This is an individual contracting with a company, money for goods.
- There’s a contract when you hire a plumber. This is an individual contracting with a company or individual (depending on the plumber), money for services.
- There’s a contract when your company buys staplers. This is an organization contracting with an organization, money for goods.
- And … you know this was coming… there’s a contract when your company hires a developer.
What kind of contract is this last one?
If the engineer is an “employee” in the United States, there’s a very good chance that your organization is not directly contracting with that engineering. Instead, most small and medium organizations, and even some large ones, use Professional Employment Organizations (PEO) like Trinet or Zenefits.
A PEO is an organization that handles the formal requirements of employing staff, taking care of legal and tax requirements for them.
Not sure if your company uses a PEO? That is awesome. Really– that means that your HR team is handling the details for you and letting you focus on what you do best. The way to tell is to look at a paystub and see where it comes from. If it’s a PEO, the payment will be coming from another organization rather than your company name.
Contractually, there’s very little difference for you as a hiring manager between working with a developer via a freelancing or contracting agency and working with a developer via a PEO who is an “employee.” There are tax and legal differences, but almost none that affect you.
We bring this up for a reason: the most fundamental idea we would like to convince you of is that you should not treat FCCs and employees differently because of the type of their contract.
We do not believe that there is a magic difference between employees, freelancers, contractors and consultants that affects how the work gets done.
Instead you should decide how to manage your contractors based on something else: Level of Mutual Commitment.
Let’s talk about that next.
Levels of Mutual Commitment for Managing Engineers.
Instead of considering an engineer’s employment status, the best way to manage your engineers is to consider the level of commitment.
The greater amount of time, energy and knowledge you expect an engineer to be working with you, the more investment you should be making in that person.
For simplicity, we’ll create three tiers of commitment. We could call them Low, Medium and High, but this is a Formal White Paper, after all, and as Winston Churchill famously said, “Formal White Papers should have Fancy Frameworks.” Well, we can’t prove he didn’t say it.
- Temporary (lowest level of commitment): the Engineer is working on the team for a short period of time, full or part time.
- Interim (medium commitment): the Engineer is working indefinitely on the team, full or part time. One flavor of Interim is when it is expected that at some point the Engineer will “roll off” the team and go do something else. A second flavor of Interim is when you expect the Engineer to be with you indefinitely but with a low or medium time commitment– for example a consulting Architect.
- Core (highest level): there is no expected end date for the Engineer on the team. Typically core engineers are working full time– Core teammates are usually giving 100% of their professional energy to the team– but there are exceptions of some exceptional Engineers who can be Core members while working half time. It is unlikely that an Engineer working less than half time can be Core.
Note that we did not talk about whether the developer is a freelancer, contractor, consultant, or employee. To us, the difference doesn’t matter. What is important is that you inform your FCC hire what Level of Commitment they fall under. It informs both your experience as a manager, and their entire experience at your organization.
From onboarding to embracing company culture and events, how embedded your FCC hire will be all depends on their Level of Commitment. Here’s a bird’s eye view of what’s expected at each level from a management perspective.
Summary- Components of Managing Engineers by Level of Commitment
Let’s discuss these in greater detail.
Detail- Components of Managing Engineers by Level of Commitment
Technical onboarding should be the same for everyone. It’ll likely go a little like this:
- Set up developer environment on the first day.
- Commit in first week.
- Push to production in first week.
- Provide them with examples of good and less good code, so they can explore on their own.
- Provide them with coding best practices, which could include linters but also algorithm guides and other best practices that the team follows.
The only exception is if your organization is so large that everyone goes through training before they can push to production, e.g. Facebook’s 6 week Engineering Bootcamp. In that case, an Interim or Core FCC should go through the same technical onboarding, while Temporary engineers can have abbreviated ones.
Why? You’re wasting time & money if they can’t start contributing immediately.
Onboarding is a super power to help engineers do their best at work. Not only do they understand the organization, but they feel more connected to it.
If you don’t have a highly detailed onboarding work plan, now is the time to build it. Make sure it includes clear owners and timelines, a checklist, and a leader responsible for ensuring that all components are complete.
It is not practical to give temporary engineers a full onboarding, but it should include at least the following:
- Explanation of the primary tools such as which Slack / Teams channels to use and when.
- Meeting at least one or two colleagues to start getting to know the team.
- Pick a buddy who is available to answer questions.
- Get an overview of the company strategy and near term goals. Everyone does better when they know the what and the why of the big picture.
Explain company values
Company values are the experienced and understood decision criteria and consequences.
“Experienced and understood” = they are not what is written on the wall or the website, unless the organization is super consistent. They reflect what actually happens and how the team interprets what actually happens.
Sidebar: That’s why an organization that is serious about living their *values* also has to be obsessive about communication, too.
“Decision criteria” = the factors weighed to invest or not invest in something, to act or not to act. They can be explicit and implicit.
“Consequences” = good and bad, big and small things that happen to folks. The big things are obvious: raises, promotions, being exited. But the small things are the far more frequent ways that people “make meaning”: a shout out on Slack, interrupting someone in a meeting.
Pro tip: if the consequences are not applied consistently, whether it’s leadership versus individual contributors, or Contractors vs. Employees, then one of the real values is “there are different statuses here.”
The way you teach these values can vary, but we recommend:
- Hearing them from someone very senior
- Hearing them from multiple people, including peers
- Giving specific examples of the values when followed and when not followed
- Giving specific examples of the positive consequences of values when followed, and negative consequences when not followed
Pro tip 1: if there are not negative consequences when the values are not followed, then they’re not really values. See above.
Pro tip 2: while it may sound scary, one of the most powerful ways to demonstrate the importance of values is to give anonymous examples of colleagues who were asked to leave the organization because they didn’t follow the values. Leading by example is the most powerful signal a business can send.
Put anyone in a group setting and they’ll tell you — more often than not, great minds don’t think alike. People process and communicate things differently, and that’s a gift. Everyone should understand the communication protocols of their colleagues, their team and the wider company. It’s not just a courtesy — it leads to huge time savings and boosts effectiveness overall.
At Sema we create a worksheet that shows everyone’s preferences. While we might not always be able to meet each other’s preferences, at least we know what they are. And it serves as a “cheat sheet” to pick the optimal communication method for 1:1s.
On technical topics, all engineers’ code should get code reviews, following the same process that all engineers use. Far too often FCC engineers report back that they are not getting as much feedback as in-house employees. That’s a huge missed opportunity for team excellence.
On non technical topics, even temporary colleagues should be incorporated into a basic feedback format. Their manager should set aside 15 minutes to share a few specific things they did well or can improve.
For everyone else in Interim and Core, FCCs should get the same feedback process as employees.
Joining company committees
It is overkill in our view for temporary employees to join committees like Culture, Fun, Professional Development. Since there’s “emotional labor” to add or remove members to any team, it’s not worth it in our view to bring them in for a short period of time.
Having said this, it’s a great idea to add Interim and Core colleagues to those committees. Especially if your organization has a significant percentage of FCCs, adding a colleague who can represent at least some of their perspectives adds a very useful perspective.
Leading company committees
Leading company committees is a higher bar than joining them. We do not recommend that Temporary or Interim FCCs join.
At Sema our Culture Committee- the most important group we have- is led by a mix of freelancers, contractors and employees. It is possible to know who is in what category, but you’d really asked, but the difference doesn’t matter.
Coaching other developers, e.g. Team Leads
Not for temporary, yes for Interim, yes for Core.
You can be an effective guide for other engineers even if you have a time box commitment. As we love to say, code is a craft, not a competition. Naturally, we’d be remiss to pass up on a mentorship or learning moment. Giving developers opportunities to grow and learn is one of the best methods to keep engineers happy, since most engineers are deeply curious, like to teach, or both.
Managing other developers
Not for temporary, not for Interim, yes for Core.
Having hiring and firing responsibilities carries significant weight. In our view, it is too important, and takes too much ramp up time, to give it to folks who are not Core.
The rise of FCCs has prompted many organizations to reevaluate “business as usual.” Those that recognize the growth opportunity afforded by FCCs set themselves up for a great return on their investment, with access to a wider talent pool, specialized skill sets, increased flexibility, and accelerated outcomes.
There’s an incredible opportunity here to build an extraordinary team through FCCs, but organizations have to do the legwork to make that possible. Simply put: culture and management matter.
Getting onboarding, values, communication, committee contribution and management processes right matter in any organization but the stakes are even higher with blended teams.
Be strategic about FCCs hires, cognizant of their Level of Commitment, considered with onboarding and ongoing experiences and you’ll reap the rewards of a well-integrated team, no matter the mix.
How can I learn more about contractors, consultants and freelancers?
G2 guide to freelancer platforms for developers: https://www.g2.com/categories/freelance-platforms?utf8=%E2%9C%93&order=g2_score&filters%5BFreelancer%20skills%5D%5B%5D=420
G2 guide to software development companies: https://www.g2.com/categories/software-developer-services
P.S. Why did we just write a whole paper about working with contractors, consultants and freelancers?
As you might have guessed, we think we can help.
At Sema we’re obsessed with code quality, supporting developers’ learning and growth, and the craft of coding.
We’ve been building a free code review and developer portfolio tool for the last year. It integrates with GitHub and takes seconds to set up.
It helps bring together “internal” and “external” teams into one team with shared code review feedback, easy access to best practices, and a portfolio feature to demonstrate growth and achievements.
We’d love to hear what you think. Send us an email at firstname.lastname@example.org and you can skip the waitlist.