Select language:
+1 (909) 225 4441
About

Engineer’s viewpoint: working in-company or going freelance

 
June 4, 2010

Engineer’s viewpoint: working in-company or going freelance


What are the advantages of working as a freelance software developer as opposed to working in a software development company?

 

Icon On today’s software development market there are two common approaches to third-party software development. While the first approach deals with specialised software development companies that provide professional services, the second involves searching for a suitable third-party expert and getting him or her onboard. The pros and cons of these two approaches from the client’s viewpoint are described in detail in the article “Choosing the right outsourcing strategy: company or freelancer?”. Our purpose here is to look at this issue from another angle – this time that of the developer employed on the software project.

 

It might seem that the clearest advantage of freelance work is that it offers the freelancer the opportunity to  independently choose which projects to engage in, depending on which appears more profitable and interesting. However, in reality this is seldom how things work in practice and freelance developers are often forced to accept any projects that come their way. There are always issues to be considered, such as: competition, termination of funding, Inability to organise one's own workload, unsuitable working conditions at home, sudden payment refusals, fraud, misunderstandings, additional customer requirements, holidays and leave from work, lack of economic knowledge, a family that needs constant support, and many others.  These are the factors that a freelancer must bear in mind when taking on a new project, implementing it and providing follow-up support. Freelance work also presupposes that the specialist is prepared to wait long periods of time with no orders from clients.

 

Another fairly common situation is when you bid for project but don’t get any reply from the potential client. This situation makes it impossible for the freelancer to make plans for the future and predict potential profit growth. The freelancer has no idea when the next order will be placed and business will pick up again.

 

When you work for a company, you have a stable, guaranteed income. Even if a company has few or no orders for a period of time, it will still seek to retain qualified staff as losing them would make it uncompetitive on the market. Enterprises organise free training events and courses for their employees and develop their own projects. In other words, they use every means available to continue their activities even when demand is low.

 

Generally speaking, from the developer’s point of view, the role of the company is to provide work that he or she is capable of doing and wishes to engage in. Working for a company helps the specialist avoid many of the problems associated with freelance work. Some of these are listed below:

 

  • Searching for work
  • Structuring business negotiation and interaction with clients
  • Promoting services offered
  • Maintaining a client base and keeping information on potential clients up-to-date
  • Requirements specification and detailed project description before work commences (in companies it is usual for there to be separate analysts and developers – not just one person)
  • If you are unable to accomplish all necessary project work by yourself (for instance, if the project entails some non-core tasks but you still wish to bid for it), then you will have to look for additional specialists or even a group of specialists who can accomplish these tasks for you.
  • Usually, a freelancer cannot afford to dedicate all of his or her time to one particular project or client. A freelancer needs to have several part-time projects running simultaneously, otherwise he or she may face periods with no work at all. This, in turn, places limitations on the potential projects that can be handled. If a specialist works for a company he or she doesn’t need to worry about these issues.
  • When working at a company you don’t have to worry about payments from unreliable clients. If they refuse to pay for a project it is not the employee’s problem, but rather that of their employer.
  • Other important factors include: tax accounts, pension deductions, medical insurance, holidays and paid leave. 

 

It makes life a lot easier when the client understands all of the difficulties and nuances involved in the software development process. However, such clients are few in number. If complicated problems arise during a project, the freelancer will be responsible for explaining everything in detail to the dissatisfied client.

 

When trying to improve technical skills and knowledge it is vital to have the opportunity to work alongside other professional developers. Companies provide the chance to develop and exchange ideas and expertise within the workplace, as well as offering free training opportunities and seminars.

 

The software outsourcing market is famous for its high level of competition. This is underlined by the fact there is great competition for even the smallest projects. Such projects often attract around 50 bids in just 24 hours. The majority of these come from Indian software developers, who offer to implement projects at an unbelievably low cost in the shortest of timeframes.

 

Bids of this type have their own specific audience – namely, freelancers and independent developers. Larger organisations that wish to implement more interesting, complex and labour-intensive projects usually entrust this work to software development companies that provide quality guarantees. They never consider freelancers for such important projects.

 

Icon Freelance work provides a great deal of freedom. This means that the freelancer can refuse to work on a client’s project if it appears uninteresting or unprofitable. However, refusing work automatically leads to the loss of a project and client. For the freelancer this can mean only one thing: a missed earning opportunity and future uncertainty.