This article is for: Startup founders developing software products who need to understand when to hire freelancers and external contractors to help with software development
Building a development team is one of the most expensive parts of getting a software startup off the ground when you can’t build the software yourself. Hiring in-house developers requires a lot of financial commitment while outsourcing to a development studio comes with high rates. Because of this, the idea of hiring freelancers to help build your software can be very intriguing. They offer flexible, affordable, and specialized skillsets that can provide a very efficient way to build your software.
However, hiring freelancers comes with advantages and drawbacks, much like any way of getting your software developed. According to a 2018 report by Upwork , more than a third of the American workforce is now freelancing. With qualified programming talent being so difficult to secure for software companies, it seems like a given that this growing pool of contract workers should be taken advantage of.
This article aims to explore whether your software startup should hire freelancers for development and how you should go about doing so. It is broken down into the following questions:
We will illustrate these ideas through case studies of companies and founders who work with the Altitude Accelerator network
Key Takeaway: Freelance developers can fill many diverse roles, providing flexibility to clients looking to hire them. Most freelancers tend to take on small short- or medium-term tasks that are specific to their expertise. As a client, you should provide the technical leadership to assess candidates, define tasks, and track freelancer progress.
The role of a freelancer varies greatly depending on their skillset, experience, client expectations, or their current schedule. Though many freelancers choose to perform a similar task for all of their clients, others instead opt for diverse assignments that interest or challenge them. In general, freelancers perform short- or medium-term work that is specific to their expertise; depending on project size, they may have ongoing tasks with multiple clients. Most freelance work is done remotely, allowing them to work from home or any workspace of their choosing.
Freelance developers work in cooperation with clients that define the requirements of their task. Freelancers are only contractually responsible for completing the exact task specified by their client. Teams of freelancers can also be assembled, either by the client or by freelancers themselves. One of the main appeals of hiring freelancers is their flexibility, as they have been known to undertake both major development roles and smaller programming tasks.
Given their affinity to short-term work, freelancers tend to perform smaller tasks for the most part; especially those that are less experienced or enjoy the commitment-free lifestyle of a freelancer. The first part of completing an initial task is providing price and time estimates to the client. Other duties of a freelancer include documenting their work, familiarizing themselves with company standard practices, and consulting with the client about how their task should be performed. Their main role is obviously to complete their programming task according to the specifications outlined in the contract they’ve agreed upon with their client.
Though its occurrence is less common, experienced freelancers can work with clients as a significant member of their development team. This can range actually developing the product to consulting with the business. In certain situations, business hire a freelancer or freelancing team to be completely in charge of developing either a major component of their software, or even the whole software themselves.
When a founder is non-technical and requires advice on developing their software right away, freelance developers can point them in the right direction. This can be used as a short-term fix before finding a technical cofounder. Freelance software consulting comes in several forms:
As someone looking to hire freelancers, you can’t completely put responsibility for the development of your software into the hands of contract workers; it is your job to put freelancers in the best position possible to succeed. There are several ways a client can increase the likelihood that a freelance hiring will be beneficial to all involved.
It is obviously difficult to perform a task when someone doesn’t have the required skills or experience. Before you hire freelancers, you need to assess whether they are qualified to be doing the task you are assigning. Advice on how to assess freelancers can be found in the “Question 4” section of this article. If you do not have the technical knowledge required to assess their qualifications, you need to have someone on your team who is able to do so.
When working with freelancers, you should never make the assumption that they will be able to make an adequate software program when your instructions are just “make something that does A, B, and C.” Instructions need to be clear, likely even defined in the contract, to ensure that you and the freelancer are always on the same page. While this greatly increases the likelihood of getting a product meets your expectations, it also makes the job easier on the freelancer. Strategies for defining tasks can be found in the “Question 6” section of this article, or you can read more about speaking the language of developers.
Again, having someone on the team with technical knowledge is integral to hiring freelancers. The progress and quality of their work needs to be checked by someone who knows what to look for. Freelancers cannot be optimized if they aren’t receiving feedback on their work and being told where they need to improve. Strategies for tracking progress can be found in the “Question 6” section of this article.
With your task possibly being one of many on a freelancer’s plate, you shouldn’t be relying on them to have the leadership to motivate themselves and others on the team. Though they can often be treated as more of a third-party service provider, try to include freelancers on the team and give them the same leadership others would receive; this is especially true if the freelancer could be working with you long-term. Strategies for managing freelancers can be found in the “Question 6” section of this article.
Key Takeaway: Freelancers are a fast and cost-effective option for creating an MVP or performing short term, specialized, and well-defined software development projects. If your software is highly complex and at the core of your business value proposition, freelancers should not be solely relied on to build the product; it will require ongoing in-house resources as your business grows and scales in the future.
A popular saying in software development is that it takes twice as long and costs twice as much to develop software compared to what you expect. With that in mind, freelancers are known to offer a more cost-efficient way to get development done. However, many startups find it difficult to trust an external developer with building their software product when their success revolves around it. This section explores situations in which you should or should not trust freelance developers with programming your software.
As noted earlier, a significant part of your role as someone hiring a freelancer is to provide them with technical leadership that will oversee their work, make sure they fit into the company’s goals, and fosters success. Without that leadership on board, it is difficult to build productive relationships with freelance developers.
Freelancers require significant guidance and communication throughout the development process, as the work they are doing is largely dependent on customer feedback, the business’ vision, the big-picture architecture of the software, and much more. Without someone that can properly communicate this information to the developer in technical terms, hiring freelancers can lead to a lot of wasted time and resource.
Though it was suggested earlier that freelancers can act as consultants to non-technical clients, allowing a short-term freelancer to guide the vision of your business is unwise. If someone is going to act as your technical lead, they should be committed to the business long-term so that they can maintain the vision consistently throughout the development team as the business grows. In general, a technical cofounder or some kind of long-term in-house developer should be brought in to make long-term decisions for your business, that is unless you can find an experienced freelancer to eventually transition into a technical cofounder role.
As much as every startup wants to develop top-notch software, the quality of this software matters much more for some companies than others. High-performing software is able to generate value for any business, but some businesses create most of their value through other means, such as customer services, marketing, or convenience. These companies rely less on creating the most advanced technology and focus their efforts on the areas that are important to them. On the contrary, companies that create most of their value by developing a novel, complex software solution rely heavily on the quality of their products.
Therefore, it is important to assess whether the software your company wants to produce will be a core competency.
When a developing software technology is one of your startup’s core competencies, you are likely creating a brand-new, complex, and sophisticated product that is unlike anything developed before. This means that freelancers will obviously not be experts at working on your technology. Although this inexperience can be overcome by someone hired long-term to work at the company, since they will be devoted to becoming an expert on your technology, the brief and unfocused nature of a freelancing role would not allow them to have this same devotion.
Freelancers may also struggle to see how their task fits into the big-picture vision of the company. This can lead to work that is not consistently aligned and cohesive with other projects at the company.
If you hire freelancers to develop a significant portion of an important software solution, this can lead to a lot of wasted time and resources down the line. A significant aspect of the developer role is coding according to the company’s standards, showing other developers how to use the code, and fixing the code as issues arise. As a freelancer, it is difficult to perform these duties when they are working on a short- to medium-term basis. As a result, code written by freelance developers often needs to be rewritten, eliminating the cost benefits of hiring a freelancer in the first place.
In general, startups developing software as a core competency should hire freelancers for short-term tasks that require a unique expertise not currently held on the development team. Freelancers provide the flexibility that allows specific skillsets to be added to and subtracted from the team as needed, given their skillset does not need to be hired long-term. Freelancers can also be useful if they do make a long-term commitment to the company, but this usually leads to them being hired in-house.
When the software your startup is developing is not a core competency, there has likely been a similar product produced in the past and its value is secondary to some other service or competency your company provides. You don’t need to be spending heavy resources on development when your software is only serving as a simple platform for the service you provide or mimicking the functionality of another product. When this is the case, you maybe able to find a freelancer with experience working on a similar project who is able to apply your instructions to a simple task.
If your business’ priority is just getting the product to market quickly, rather than getting a high-quality product to market, hiring a freelancer or team of freelancers is quicker than hiring and onboarding in-house developers for the project. With freelancers, you have the flexibility to grow or shrink the team as needed during development, a convenience you can’t make as much use of when your focus is software complexity.
If you project is very simple, let’s say it’s a webpage for people to share pictures of hamsters, you could find a freelancer to handle development on their own. Code quality and maintenance are still concerning, however, if you plan on changing, upgrading, or growing the project with other developers in the future.
Before commencing the development of a software business venture, validating customer interest in your product is integral; in other words, you should want to build an MVP before you commit to searching for a technical cofounder. If you don’t have the technical skills to do this yourself, one option is to hire freelancers to build the MVP for you.
When you just want a simple software product, whether it’s an MVP or a quick-fix software solution, a freelance developer can be hired to build it for you. When you don’t plan on building on the product later on, the issues involved in using incompatible freelancer code can be avoided. If you do change your mind and decide to scale this business, you need to be aware that you would likely need to completely restart development with whoever takes over programming; keeping that freelancer on your team long-term is another option.
If the MVP is just being used for customer validation and not as an actual product, its code can be imperfect since you will likely not be using it in a full market launch. Freelance MVP development can also be used as a way to bootstrap the development of a full software product, or as a trial of the freelancer’s ability when considering whether to hire them for larger tasks.
Due to the short-term nature of freelancing work, freelancers should not be used to build the foundation of your software startup vision. When development is just commencing, code should be produced by someone that is committed to the business long-term, seeing as their code will need to be used and maintained by other developers in the future. Even if you want to give freelancers a smaller task that contributes to your initial product, be wary that if they leave and their code is low quality you will end up needing to rewrite it.
In general, avoid assigning freelancers to develop a significant portion of your product if you plan to scale it in the future; that is unless you can get a long-term commitment out of them. Restrict their role to building a temporary MVP or specialized, discrete tasks.
Freelancers are most effective when they are working on short-term, stand-alone specialized tasks. As the business grows, they can be brought in to provide skills that the rest of the development team doesn’t possess. They can also be brought in as a trial to eventually join the team long-term.
If freelancers made significant contributions to your software before expanding, make sure they maintain a relationship with the company as it continues to grow and update its products; they may need to be consulted on the code they have written. As stated earlier, short-term freelancers should not be used to build a part of your product that is expected to be built upon later on.
As a result, their role as the business grows should be to join the team on tasks where specialized skillsets are required for a short time; they could even be hired as full-time employees. By the time a business is scaling, its vision, culture, and standard practises have been established, so onboarding and offboarding contract developers is much easier. Development decisions by freelancers should not be guiding the future direction of a business, but supplementing the team with additional knowledge that is only temporarily required.
Key Takeaway: Freelance developers can be met in your network or in person, but most are found through online freelancing sites. These platforms give access to millions of freelancers and can accommodate a wide variety of project sizes and types.
Though you may end up searching through several settings very unfamiliar to you, a great place to start with is the one that’s right in front of you — finding talent in your network! Though you’re probably already aware if your friends or family would be able to help you out, you can extend the search to former coworkers, people you’ve met at conferences, or even people you’ve interacted with online.
Reaching out to those in your network for referrals to freelancers they’ve worked with is also an effective way to find trustworthy labour. LinkedIn is the most common platform used to reach out to your network when you’re in need of introductions or referrals to those that would be a good match for your business
Though most freelance developers will work remotely, it is much easier to make a trusting connection with someone in person than through a computer screen. This is usually done by attending tech meetups, where developers meet to discuss the latest tech trends and socialize. You can also invite a freelancer you’ve found online to meet in person if they are comfortable with it and work locally.
The majority of freelance developers are found using various online platforms. There is a vast range of services to choose from, ranging from general recruiting to highly-specific niche sites. Though they all serve the same purpose, the top freelancing websites go about their business in ways that make them unique from the others.
There are several considerations to keep in mind when deciding on which freelancing services to use. While having a large user base is obviously important, you also want to consider how well the website favours what you’re looking for; some websites work better for short-term projects while others supply freelancers of a certain skillset. Other features to look for include: technical screening of freelancers, project management assistance, and a secure payment process.
Two of the most prominent freelancing platforms, oDesk and Elance, merged in 2013 to form Upwork. With over 12 million freelancers and 5 million clients using it each year, Upwork is one of the largest networks available to hire freelancers. It provides a very user-friendly experience all the way from posting to payment. The platform allows you to pay freelancers on an hourly or per-project basis and is open to practically any kind of freelance work.
After you post your job, developers send you a proposal with their skills, experience, and preferred compensation; you can then compare profiles, feedback, and portfolios between applicants. Upwork offers a free plan for businesses, where all you need to pay is the compensation agreed upon with the freelancer as well as a small administration fee (~3%); there are also paid plans for businesses that want more support.
The high amount of proposals you will receive on Upwork tends to reduce the cost of labour. It also offers a secure and easy-to-use payment platform. Upwork freelancers are not heavily vetted, though the site gives you access to past feedback and scored from online skills tests.
Toptal is the go-to platform for finding the most experienced, talented freelancers from around the world; they boast that they give you access to the top 3 percent of freelance developers. They have a deep screening process that includes personality tests, technical screening, a test project, and commitment to maintaining a perfect track record with clients. Toptal is the most expensive option, as clients aren’t bidding on jobs but rather being assigned to them; the cost of freelancers varying between countries and skillsets.
When working with Toptal, you provide them with the specifications of your job, including how many developers you need, and they will provide you with a report of any matches. These developers then join your team right away starting on a trial basis. The Toptal community also includes meetups and tech events for you to meet freelancers in person.
Like Upwork, Freelancer allows you to make a job posting and have freelancer bid on it. It also has a massive user base, with over 30 million users active on the platform. Some projects are listed as contests where freelancers compete to prove their skills and the client gives a monetary reward to whoever does the best work. Freelancer has a reputation system for freelancers based on client feedback and competitions results to help you sort through applicants. The bidding system and large user base drives process down as well, though it has similar administrative costs to Upwork (~3%). You have the option to add paid “upgrades” to your project posting, which can give you additional support in exposure, recruiting, NDA writing, and more.
Fiverr takes the freelance marketplace and breaks it down into much smaller projects. Over 11 million businesses use it to find freelance talent and even more freelancers use it to sell their services. Freelancers can make profiles that advertise the services they offer and the price at which they offer it; many offer various payment packages for different project sizes. Users often make introduction videos to tell you more about them. You can find freelancers by typing in related keywords and browsing the results. Fiverr is most effective when you have a small, specialized task you want done at your business.
Guru is less prominent freelancing site, with only about 3 million freelancers to choose from; that obviously is still a large enough number to find the right freelancer for your business, though. Freelancers are able to showcase their past work on their profile and get matched up with new potential partners daily; both you and the freelancers either “skip” or say “yes” to these matches to notify those you’re interested in working with, kind of like Tinder for freelancers.
The Guru Work Room is a platform where you can collaborate with freelancers and manage your ongoing projects. The search feature allows business to search through freelancers based on skills, location, feedback, rates, and more. There is a 2.5% processing fee with each payment and payments are made securely with the Guru SafePay system. Guru encourages making long-term partnerships with the freelancers you work with, allowing you to continue to work with those you’ve found to be reliable.
99designs is a platform for businesses to find freelance designers. Similarly to Freelancer, you post your project as a contest and a collection of freelancers will submit their take on the project. The winner of the contest is the one whose design the business likes best and they receive the compensation. This site allows freelancers to get feedback from clients and build their portfolio while businesses get a wide variety of designs to choose from. There are three pricing options for making a post on that depend on what you want designed, the expertise of the designers, and the quantity of entries you want in your contest: Bronze ($49-$599), Silver ($79-$899), and Gold ($129-$1,599).
Through Gun.io you can hire freelance developers from a collection highly-experienced software engineers. They have experience working with several notable companies including Tesla, Cisco, and Dollar Shave Club. Gun.io claims to have the most advanced vetting process of all freelancing platforms and developers that are the most engaged as a result. Most jobs on the platform are filled within 48 hours and cost about $75-$150 per hour; a custom quote is given for each project.
PeoplePerHour is a freelancing platform focused on web development and marketing talent; this includes designers, web developers, SEO experts, and more. There are three ways for you to find freelancers on this website: browsing through Hourlies, which are profiles that showcase fixed offers from a freelancer similarly to Fiverr; posting a job and waiting for offers to roll in; or searching through the directory of freelancers and contacting them directly.
You can manage projects, communicate with freelancers, and pay them for their work all within PeoplePerHour’s system. Pricing for custom projects is generally done by quote, payed for through the website, and adds a service charges depending on how you pay. There are several categories to navigate search results by and their ranking algorithm helps you find the best talent available.
Key Takeaway: Freelance developers need to have a proven track record of reliability, the exact skills required of the project, and compliancy to your company’s established practices.
As discussed at other points in this article, the main reasons for most businesses to hire freelancers are lower costs and more flexibility. However, there is a lot more you should know about a freelancer before deciding to hire them. This may add slightly more effort to the recruiting process, but making the wrong choice on a freelancer can be costly; sinking time into searching, onboarding, and engineering all to end up with a substandard software product can be crippling financially. Therefore, doing your due diligence on the examining the following qualities in a candidate is critical.
A freelancer can have all the qualifications in the world, but they should not be worth anything to you if they aren’t able to get work done effectively. Being reliable doesn’t just involve writing high-quality code; developers should also be able to communicate with you effectively, keep track of deadlines, and make use of the feedback you give them. Having a good reputation definitely comes from having a wealth of experience, but it also requires a history of positive interactions with past clients.
These traits can be assessed by asking for recommendations or reviews from those that have worked with the freelancer in the past; try to get this feedback from people you trust if possible. Some freelancing sites let you see feedback and reviews about freelancers from their past clients, while some vet out unreliable freelancers entirely.
You can also test their reliability by giving them a small paid project to act as a trial of their reliability before you commit to them for a larger task. This can give you a better idea of how quickly they work, if their time and cost estimates are accurate, and if they are able to follow the standard practises of your development team. Getting to know a candidate personally also helps, as you can gauge their communication skills, tech knowledge, and interest in your project.
Perhaps the most obvious trait to examine is the candidate’s qualifications. It is important that you get very particular about the skills you’re looking for; you need to get technical help to assess their skills in detail if you can’t do it yourself. Perhaps you hire an iOS expert to develop your iPhone app but it turns out their expertise is in an older language than the one you require. That can definitely be avoided with highly-specific skill requirements presented in the job description.
While many freelancing platforms require their talent to pass technical tests to prove their expertise, you can tell a lot about the quality of a candidate’s skills by looking at their portfolio. This is especially helpful if they’ve worked on projects in the past that are similar to yours.
Despite being an external contract worker, freelancers work best when they are integrated into your team and staying in the loop with development. Even if they can create a fantastic software product on their own, it needs to be able to fit into both the big-picture vision of the software product and the business in general. Therefore, freelancers need to cooperate with you and comply to the company’s established standard practices; this includes code review, project management platforms, and work schedules. Coordination allows freelancers to work with you and your team, if necessary.
Of course, smaller projects require less teamwork and there would be less emphasis on coordinating communication tools; however, making sure the freelancer has a clear idea of how their project fits into your startup’s vision is important no matter what.
Key Takeaway: Using freelance developers is a cheap option for development due to their flexibility and simple services; retainer contracts combine that flexibility with an enforced work schedule. Local developers are more expensive and easier to coordinate with but restrict the potential talent pool.
Compared to hiring in-house developers or outsourcing to a development studio, hiring freelancers represents a huge opportunity for cost savings at a software startup. The price difference for freelancers is obviously for a reason, as it can be difficult to find one that fits with your business, but these savings can be life-saving when working on a tight startup budget.
Having the flexibility to add and subtract contract workers as needed during development allows businesses to only pay for the developers they need at the moment. In-house developers need to be paid consistently throughout the year, but freelancers allow your payroll to be customized to your development schedule. Flexibility aside, freelancers also don’t need to be given benefits, insurance, paid leave, or bonuses.
Freelancers cost much less than a development studio because they require far fewer operational costs and provide less additional services than a studio. The increased cost of a development studio largely comes from services including hiring a project manager or performing ongoing maintenance and customer service. Studios also need to pay for office space, equipment, employee benefits, etc. while freelancers do not.
Using a fixed rate contract, one concrete price is paid for highly defined project requirements. This requires a large amount of project planning to be done beforehand with little hands-on management throughout, lending itself more to traditional software development methodologies than agile. Developers are under strict deadlines and use predictable timetables built around a rigid project plan.
One downside is that if a project takes less time to complete than estimated, you end up paying a freelancer for more work than intended; if the project takes more time to complete than estimated, the freelancer may rush and submit low-quality work. This type of contract is ideal for small projects with limited features and highly defined requirements that are repeatable; a common example is the development of a simple MVP.
Using a time and materials contract, you would regularly pay for work completed depending on what time and resources are required during a dynamic development process. This structure allows for more flexible project requirements; features can be added or changed when it seems wise to do so. This leads to software that is of higher quality due to constant iterating and testing. A downside to this type of contract is the uncertainty of your schedule and budget. The contract often does not specify how much time per day or week a freelancer needs to be spending on the project, just the tasks to be completed.
Development with this structure is more transparent but requires more management to keep things on schedule. It lends itself more to agile methodologies than a fixed contract, but is still imperfect since it doesn’t guarantee your freelancers will be working on the timeline you’re aiming for. This type of contract works best for ongoing maintenance or support roles with less-defined schedules.
A retainer contract specifies the amount of time (generally in hours and weeks) that a freelancer is to be retained for while being paid at an hourly rate. For example, you can specify that the freelancer needs to work 20 hours per week for 10 weeks; the contract can be renewed or adjusted as the project evolves. This is the most ideal structure for an agile approach to software development, as you can adjust project requirements throughout development while ensuring the freelancer will stick to a schedule.
Retainer contracts grant you with the flexibility of a time and materials contract while enforcing consistent work schedules like a fixed rate contract.
The rates charged by a freelancer vary greatly depending on their geographic area, their experience, your timeline, and what you are asking them to develop. These rates can be specified specifically in a freelancer’s online profile or agreed upon after discussing your project in detail. With that in mind, be sure to take the following values with a grain of salt.
The below data from CodementorX, an online platform for hiring developers, shows common higher and lower ranges of hourly rates when you hire freelancers around the world.
The site also collected data on the most (left) and least (right) expensive countries to hire freelance developers, based on average hourly rates.
The more high-end overseas options are located in Western European Countries like Switzerland and Germany, as well as Australia. The most common countries to look for inexpensive developers are India and Pakistan, as well as some Eastern European countries like Ukraine or Belarus.
Although local developers tend to be far more expensive than those located internationally, there are several notable benefits that make the price reasonable. Strong communication is a major reason many startups decide to overcome this price difference, as there is the possibility of meeting in-person with your team to create a synergy that cannot be created with remote teams. Here’s where you can read more about the differences between communicating with local developers rather than international developers.
Outsourcing locally also avoids most differences in language, culture, and time zones; these are sometimes to blame for improperly interpreting requirements or an inability to consistently communicate with developers. Working with international freelancers allows you to choose from a much deeper pool of talent compared to when you limit yourself to those located around you. In general, however, local outsourcing is the preference more most startups if it is affordable.
Key Takeaway: Clear and detailed instructions are integral to forming a mutually beneficial relationship between you and a freelancer. Keeping freelancers and development teams centralized on common platforms ensure streamlined communication and collaboration during development.
In order to effectively manage and optimize freelancers, you need to be mindful of their motivations and pain points. That way, you can adjust your leadership style and established practices to make freelancing at your company a rewarding experience for both sides.
Based on the motivations and pain points outlined above, here are some important strategies that address the unique needs of a contract worker.
From when you’re first recruiting a freelancer to the time you close their project, your description of the requirements of the job need to be as clear and specific as possible.
When writing a job posting, providing details on the specific industry, required skills, duties, and company background for the project will help make sure freelancers know what they are getting involved with before applying. Giving a vague description just leads to more unqualified applications for you to sort through and confusion for freelancers over what they’re applying for. Being upfront about your preferred practice and a proposed timeline for the project gives applicants a better idea of whether they are a good fit.
After hiring a freelancer, the task’s requirements need to be communicated to them in their language using specific technical instructions. Don’t just say “make me something that does this.” Work with them to figure out exactly how their skills can be used to produce the features you’re looking for. If required, have a team member with more technical knowledge act as a “translator” that can turn your vision into technical instructions.
The best way to communicate your ideas to a freelancer is to create a roadmap based on questions like “who is the product for?”, “what are the pain points?”, and “how do we address them?” A roadmap outlines the answers to these questions and translates them into a plan for developing product features or updates. Some significant aspects of the roadmap to define clearly are the deliverables, deadlines, and sprints. Most importantly, be sure to clarify with freelancers what “done” means for each task.
Lastly, having an established onboarding system in place to get new freelancers acquainted with the company will save a lot of time when you’re going through multiple freelancers. This will get freelancers integrated with the rest of the team quickly and ensure they are comfortable working under your standard practices.
Much like onboarding, having standard practices in place for tracking developer progress will save a lot of time when trying to figure out what a freelancer has accomplished during development. Tracking a team’s progress is simpler when their work is centralized to one platform.
It is also integral that freelancers are on board with keeping detailed documentation of their work. This comes in several forms including code comments, API descriptions, user guides, and/or help files. This allows you to see exactly what the developer has been working on and makes it easier to pass the project on to someone else if need be. Again, getting technical help if you don’t have the ability to keep track of programming yourself.
To ensure they work as effectively as possible, try to rid freelancers of any unnecessary stressors outside of programming. One of these stressors can be the need to manage other developers; another is paying them later than expected. To maintain a positive relationship, try using a payment platform that will release payments right when the work is completed and always be upfront if payments will be late.
Another important consideration is security. Beyond ensuring secure payments, agreeing upon contracts is an important part of clarifying expectations before a project begins. Contracts should include specifics about the project scope, schedule, change management, and compensation. Contracts can be written together, with a lawyer, or sometimes through freelancing websites.
A non-disclosure agreement (NDA) describes information that the freelancer may learn about your company that they cannot share with third parties. An NDA may include a definition of the protected information, the parties involved, and contract breaches. In general, giving a freelancer extensive information on the company’s intellectual property is never wise considering their short-term relationship; try to only expose them to the information required for them to perform their task.
Lastly, it is important to give freelancers feedback that is both frequent and clear. This plays a role whether you are managing a current freelancer or offboarding one; feedback can help them improve their performance on the current job and in the future. If you wish to work with a freelancer long-term, feedback is key to their growth as a developer.
When managing either a freelance team or a development team that includes a freelancer, centralization and coordination are key. As discussed throughout this article, having established practices for your development team makes adding and subtracting freelancers much more efficient.
By putting all members of the development team on common communication and project management platforms, they are able to follow each others’ progress and see how their tasks fit together. When working as a team, developers feel more responsibility for completing the product as a whole rather than just their part; they won’t say “I didn’t get my part done because someone else is behind,” instead they will help each other keep up.
If you choose to work with an offshore team of freelancers, communication is the main concern. This is mostly due to differing time zones and sometimes languages. Because of this, it is especially important to have the task requirements described in extreme detail before the project begins; you can’t use an agile methodology when you can’t get in contact with the developers.
Having freelancers use the same communication as the rest of the team allows them to be easily reachable when needed.
Keeping developers centralized to one project management platform allows them to always be aware of what everyone else on the team is working on. There they can share project plans, delegate tasks, and figure out what needs to be done in the near future.
Using code management tools, freelancers can collaborate on code and conduct version control in a centralized space. These platforms are usually also integrated with project management platforms, allowing developers to organize their code into the context of the complete project.
Some startups with remote teams make use of software tools to monitor how much time freelancers are putting into working on your project; the platforms can track your mouse/keyboard activity during work hours and freelancers can share screenshots of their work.
Robyn Halbot is the cofounder of Analyticly, a supplier of AI-driven software that helps businesses with financial forecasting and Shopify product recommendations. She personally has a background in financial forecasting but plans to adapt her products to other industries in the future. In addition to her technically savvy cofounder, Analyticly’s development is mainly handled by freelancers. Although things have generally gone well so far, Halbot says that the cost savings you get from hiring freelancers are for a reason; the company cycled through ten developers in the first four months.
Halbot’s main criteria when hiring freelancers is how well they buy in to her plan. She has specific communication and project management practices in place that facilitate collaboration between all of the freelancers. She stresses that if someone is not willing to adhere to your plan, they are not worth hiring. Having the whole team on one communication channel allows everyone to see what everyone else is going through. No one can say “I didn’t get it done because the other guy didn’t finish his part.” Freelancers working in a team should be encouraged to always keep track of each other’s progress and prioritize team success over completing individual tasks.
Communication between you and your freelancers is key as well. Halbot advocates for communicating with your developers as much as possible so you always remain in the loop in development. Instructions should be as clear as possible and always define what “done” actually means.
One regret Halbot has is that early on she would take it easy on developers if they had given her a good deal on their payment. No matter what you’re paying someone, they need to hold up their end of the bargain. If you’re just hiring someone because they’re cheap, you will likely end up wasting time and money on working with them. Halbot also prefers to work with developers in the same time zone that are willing to take part in video calls. If you’re unsure of a developer, Halbot recommends doing a trial run with them for a week and seeing how well they perform.
When deciding between local and offshore developers, Halbot is open to either option. However, she currently is working with Canadian developers. Halbot has found that working with offshore freelancers in the past was difficult because of time zone differences. She says that it was much more difficult to communicate with them right when a problem arises. Having all instructions defined very clearly up front is ideal because the agile approach is is difficult when there is a time difference.
One more perk that Halbot sees in working with freelancers is the protection of intellectual property (IP). When a third-party software development has full control over building your technology, she feels as though you don’t really own your IP. Working with freelancers keeps your IP more in-house because they only know information about the task they are responsible for. This means they’ll never know enough about the IP to “run off with it.”
Chris Houston was the CEO and founder of SurfEasy, a VPN service focused on security at large companies, which has since been acquired twice. Houston now acts as the VP of mobile product development at Symantec, SurfEasy’s latest acquirer. During the development of SurfEasy, he used freelancers to do smaller, well-defined tasks like patches or fixes that required specific skills. For example, freelancers were used to develop an encryption code that optimized their program for running on a USB key. Houston preferred to have most of the SurfEasy done in-house, however.
Daniel Ruscigno is cofounder of ClinicSense, a practice management software system for massage therapists. At its outset, ClinicSense was developed by one in-house developer and a variety of freelancers that would be brought in for specific projects. Development eventually moved completely in-house once it became more affordable. Ruscigno says he found Upwork and Indeed to be the most effective platforms for finding freelancers. He also uses Jira for project management with his developers.