Freelance development teams are ubiquitous nowadays. There are plenty of online platforms that provide ample opportunity to quickly choose a freelance team, start a project, and secure payments. Despite the growing popularity of these platforms, the inherent instability of freelance employment poses several significant risks to most types of outsourced software projects.
We decided to try and condense our 20 years of managing software development experience into real-world examples of what could potentially go wrong. If you are about to make a decision, but have some lingering doubts, this article is for you.
Small teams don’t make problems smaller
- Outsourcing for excellence: How to find the ideal partner and create a healthy relationship
First up for consideration when choosing a team for software development is the size of the project. If, by your own estimation, it shouldn’t take more than 500 hours to complete, you are probably ok to go with the freelance developers. However, for anything above that threshold, team management and work allocation come into play. If you are considering a team of more than 3 developers, the lack of management on their side may introduce a risk even when a manager is formally assigned. A team that lacks cohesion and synergy is likely to miss deadlines and produce substantially lower quality code.
Another issue is that a team can have a very narrow technical specialisation or they can be good at projects of a specific type while lacking skills in adjacent fields. This means that should you change your initial plan in any way or find that the project requires any additions in the process, you will likely encounter a serious problem and need to do the whole search all over again. Consider the time you will have to spend and the risks you take on when entering a collaboration with little flexibility.
If you plan on hiring a freelance team for a long term project, be prepared for tension when scaling the scope of the work. To keep your team within their comfort zone, you would need to provide a constant amount of work over a specific period of time, spreading the load evenly among the team. That is of course, unless you decide to fire a team member; which in itself would be no mean feat, considering personal matters often become an issue in small groups. Adding a new team member or replacing one who decided to leave may also become a headache, especially if you require a person with knowledge or experience outside the main team specialisation.
If the work you are about to outsource involves dealing with sensitive information, or if the project constitutes a trade secret essential for your business, you will need to sign an NDA with each team member separately. Unfortunately, this formality may have no practical bearing, because if the team is located in a foreign jurisdiction, legal agreements can be very difficult to enforce. Therefore, you need to be prepared for a whole bunch of security risks arising from both negligent handling of your data and a host of other kinds of breaches. You can’t safely rely on security practices and policies implemented by a single person or a small group without dedicated security staff.
Project costs, risks, and quality: Somewhere in-between
All of the observations above may make the whole thing look a bit discouraging. So, what are the alternatives? Building development teams in-house is a good choice for large scale and long-term projects, plus you need to have enough time to hire proper managers and developers. Another option is to outsource the project to a large IT consulting company. This is probably the safest solution in terms of risk mitigation and quality, but the costs may literally outweigh the benefits to the point of to the point of making such a strategy unfeasible. These costs are probably what contributed to the growing popularity of freelance platforms. Yet, there is one more option lying somewhere in between these two solutions.
Another natural phenomenon of the outsourcing industry is mid-sized custom software development companies with headquarters in the US or the EU and development centres located remotely in countries with significantly lower wages and cost of living. To a hiring entity, such setups are usually slightly more expensive than a team of freelance developers, but under certain conditions you can get the quality of service and benefits you would normally expect from an IT consulting company. Here is a list of what to look for when choosing a split-location development firm.
The nine strategies of outsourcing success
Corporate legal entity in a “good” jurisdiction to protect your business in case of a legal dispute.
Make sure they use Agile and DevOps methodologies. Ability to adjust project management practices and day-by-day procedures for your requirements. This is more typical of well-established organisations with a solid background.
Ability to handle projects combining technically different components (frontend, backend, mobile applications, etc.). A team with a narrow specialisation will likely fail due to their weak competencies or perform tasks inefficiently.
A choice of technology for implementation is available whenever you have any preferences. The team is not stuck to a particular framework or a tool, which may quickly become obsolete.
A dedicated team can be assigned to your project, and can be quickly extended or reduced upon your request. The service provider should be able to afford having a workforce reserve to achieve proper flexibility in this respect.
If at any moment you feel that you are not happy with a team member, applied procedures or current progress in your project, you can escalate the issue to upper management and expect fast resolution. In case of a freelance team you can only resort to withholding payment.
Established companies have the resources to absorb certain risks and invest in a good relationship. This makes any obligations more tangible and assessments more realistic.
Companies assign account managers responsible for all client communications. This is not usually done to isolate you from the team, but to facilitate the process and forestall problems. This also lets you formulate project tasks in terms of business requirements, letting your team translate them into technical specifications.
Depending on the level of service and team skills you can even expect some business analysis to be done around the project scope to help you improve the IT solution being created.
The size of a company is not crucial, but it should probably fall within the range of 70 to 300 IT specialists. Smaller companies lack the necessary flexibility in staffing and speed of adjustments. Companies with thousands of employees are too large to see your project as a significant matter. You are unlikely to receive the personal treatment you would in a smaller size company.
Ivan Lisitsyn, COO, Axmor Software