He has the ERP for his organization setup and the infrastructure in place; but no business sells without a Website and an App (is what he is told). But that isn’t Bob’s domain of work; he understands software and programming languages but isn’t a developer himself.
Large IT firms scare Bob as their budgets are way beyond his pocket. Apparently, he was informed to hire a .Net and Mobile developer online and assign them the job. Bob is fascinated with the idea of freelancers; the ambitious college pass outs with “I’m my own boss” attitude, might accelerate his plan and fit his pocket. So where does he start?
There are several sites online that can cater to Bob’s needs. A simple enrolling process and soon he has hands on deck to start working. But here are a few probable scenarios with freelancers that Bob might run into.
The very idealistic and utopian scenario is that Bob might come across a Zuckerberg of his own who will provide him with a sleek, end to end package that won’t run into any bugs or performance issues after implementation. But chances of that happening are slim. Below are a few experiences that one might come across after hiring a freelancer.
User Requirements: Who needs those?
Since there was no official signoff on the requirements after a span of a few months, the client realizes that he and the developers are not on the same page. The minute branches of the workflows were not identified by these developers and they left those processes hanging. This can lead to marginal rework leading to time loss. As freelancers are mostly not process oriented they do not delve into depths of what the user’s requirements are.
Deadlines: What is that?
Even though the Development was divided into components and components into modules, yet there were no clear deadlines set for the completion of each. On queried the freelancers gave a rough estimate on when each module would be complete but when asked for a Weekly update the answers were vague. Rarely do freelancers follow deadlines for each module as chances are they will be preoccupied with multiple tasks. Most freelancers work on multiple projects at the same time.
When asked for frequent updates, Freelancers vanish!
When you have an inhouse developer, you can ask for updates on a monthly, weekly or even a daily basis. Freelancers are individualistic entities needing their own space and time, not used to the constant reporting. In most cases they tend to vanish, nowhere to be found on the grid, if requested for frequent updates.
Freelancers lack the quality that professionals have
When the SW development process does not have to comply to any standards it is mostly haphazard. It follows the developer’s line of thought rather than an organized structure. Developers in organizations must follow a set path of development enforced to comply to the organization’s standards. There are frequent quality and security reviews being performed to evaluate the development leading to a quality software.
Testing and Development by the same individual leads to loopholes
Most recruiters don’t hire individual freelancing testers and developers. They believe in a single individual to suffice for all the tasks. This curtails the perspectives through which the code is visualized and hence might lead to loopholes that the original developer could not identify.
Evidence of performance
While enrolling a freelancer the briefing provided on the site is mostly descriptive and boastful. Even a freelancer having the right qualifications, lack the evidence of any performance. In organizations, performance is an obligatory part and is driven by the developers output. Here developers are motivated to perform on consistent basis and are appraised for the same.
They can do everything
To get engaged, a freelancer must show an assortment of tools on his profile. This profile should encompass a variety of skills which are top ranking and in demand pertaining to the current scenario. Hence freelancers state they are skilled in almost all the languages and frameworks that are HOT in the market. But apparently this can be the case only with a few exceptional individuals. A result of which chances are high that we might end up with a substandard developer who is learning on the job.
Hobby or Profession
Freelancers treat programming as a hobby rather than a job. The difference being the sincerity and commitment they need to apply to their work. A professional view to the overall delivery is lacking resulting in an experimental approach to the product and the cause.
A piece of art or a piece of code can be considered under the Copyrights law, but an idea cannot be registered. Since he is not under any contractual agreement, it is very easy for the freelancer to get a brief of your idea and then either disclose it or sell it to a third party for a hefty sum. Outsourcing companies protect the rights of a client to prevent such breaches.
Freelancers don’t hang around for maintenance. The commitment of a freelancer ranges from a month to a year, but once the product goes live the developer is on his way. What about the bugs that turn up in a real-life scenario? Chances of locating the same developer are thin, and a new member cannot dynamically rework the same code unless it was aptly documented previously.
Having said this, not all scenarios might turn up in Bob’s Case. But either one or a combination of a few scenarios do turn up in each case. Entrepreneurs anticipating them can take their chances. The only positive end of the freelancing deal is that freelancers are cheap. But chances are the cheaper you search for the more disorderly the product.
One way out would be to go to a Software Development Firm that would take care of his product end to end. The only issue being the Cost and the Transparency of the procedures followed. Bob might not be in constant touch with and in control of the actual development team.
OR Bob could hire an individual or a group of developers based on his requirement from a firm outsourcing Developers. A firm that would
(1) Assure the performance and quality of individuals
(2) Let him dynamically upgrade or downgrade this team based on the extent of work
(3) Help him manage the team and segregate work
(4) Provide SME support if required and
(5) Follow industry standards for development