Okay, so you have an idea for a product. Congratulations - you’ve just made your first step on the path to success. But it also means that it’s time for your first important decision — who should be in charge of developing your product. Basically, you have three options: hire a full time talent for your in-house development team, bring in a software consulting agency like Netguru or go for freelance contractors.
Over the last eight years, at Netguru we’ve worked with over 150 clients, many of whom had previously worked with freelancers. In this post we want to share their stories with you. Read now and avoid getting into trouble later.
Hiring freelancers is still relatively cheap. That’s why it may be a tempting option, especially for younger startups who are still on the lookout for their first round of funding. But as the experiences of our clients show, the cheapest option doesn’t always means the best one.
Lack of engagement
First of all, let’s explain what it means to be a freelancer.
Freelancers work on many projects simultaneously — your only project is not their only project;
They set their own priorities — a matter of life or death urgency for you may well be at the bottom of their to do list;
Their career doesn’t depend on your project — but your success depends on their work;
It’s perfectly rational behaviour — you cannot blame them because you’re not their employer.
Client’s story: a freelance designer didn’t show up to meetings and didn’t respect the deadlines I set. He didn’t let me know about the possible delays which in turn plunged the project into chaos. His lack of output blocked the whole project. This resulted in a huge waste of money because the unreliable designer made it impossible to work for the frontend and backend developers as well as for the QA specialist.
Freelancers work on their own — this is the crux of their business activity. What could be the possible consequences of such a working style?
It may be hard for a freelancer to adjust to the project requirements — they might not be able to give you long-term commitment.
They may not be used to critique — as a result they may not let you know about the changes they want to introduce.
Different coding habits — a freelancer may have different style guides, or write some incoherent code which will be more difficult to maintain in the future and the bigger the code base is the worse mess it will cause the architecture.
Client’s story: a client was preparing the team for a big deployment. During the whole development process it was a challenge to manage the commits of freelance contractors. Three days before the deployment they decided to commit the code they were working on for more or less three days. As a result the whole code became incoherent and wasn’t regularly tested which made it impossible to deploy. The delay in deployment translated into a financial loss because the product was already out there and people were waiting for new features.
Usually freelancers have quite impressive communication skills because this keeps them in business. It’s important, though, to communicate not only at the beginning of the project but also throughout its duration and discuss what the next steps might be and which features are going to be released next. What could possibly go wrong?
Freelancers wants to do things in the best possible way but from their perspective, not yours
They may not take into consideration your MVP requirements, and work on the “full features” which may cause delays,
They may be misaligned with the team and need iterations as the project develops
Client’s story: The designed project, although perfect, cost much more because it needed iterations on the part of the designer. The whole design was not aligned with the app architecture which in turn made it necessary to introduce a bunch of modifications. At this point the freelancer already had another project on the go and so wasn’t able to contribute as much work and time to the design modifications as we needed. The client ended up with a visually incoherent product which cost a fortune.
The worst possible scenario occurs when a freelancer shows up and then disappears without a trace. The results?
You switch freelancers every now and then, trying not to waste money
You divide your project into tasks not according to the previously established plan but to the freelancers’ free time
You pay much more in real terms because you waste your time managing people and waiting for them to deliver
Client’s story: At the beginning of the project the freelancer estimated that the task he had been given was a piece of cake and would get done in no time at all. As the project progressed and there were no visible results of his work, he kept on making up stories and blaming other companies/programs for blocking his work. Finally, when the project was drawing to a close, he vanished into thin air. The client didn’t know whether to look for a new freelancer or wait for the current one. As a result the project was delayed.
Lack of long-lasting relationship
When hiring freelancers you have to rely on people whom you don’t know and with whom you don’t have any established relationship. How could this end?
Freelancers may try to grab hold of the decisive power in the project
They may want to impose their rules on other freelancers working on your product
Even if it’s done without any bad intentions, this will result in building tension which can be risky for your business
Client’s story: The majority of features of a client’s product was created by one freelancer who turned out to be unreliable. The client was afraid of telling him off. She was worried he would resign and she would have to look for another one. The problem in this case was the increasing dependency of the stakeholder on the freelancers who didn’t execute his tasks properly and as a result had a detrimental effect on the project’s development.
Have you ever worked with freelance contractors? Share your story in the comments below!