In-House vs. Outsourcing Software Development – Pros and Cons. Element builds its own software development team.

After years of very fruitful cooperation with the Cocoders software house, we are starting to build our team of programmers. It is an essential step in the path of development of our applicant tracking system.

On the occasion of this change, I gathered some of the most important cons and pros related to outsourcing software development and other areas of its operations.

First, a few words about why we are building our team of developers, and then more about the position we start building the team with.

From the perspective of several years of developing the applicant tracking system with a software house, I see the following benefits and risks of such cooperation:

Pros of working with a software house:

  • Cost flexibility. We can freely manage what budget we want to spend on software development in a given time. The external development team doesn’t just rely on our orders. The lack of an order from one software house client can supplement an order from another. The flexibility resulting from outsourcing is huge. In one month, we can outsource the work scope for five full-time jobs, in the next only for two. Such maneuvering with costs is not possible with the direct employment of software developers.
  • Freeing up own resources. By outsourcing the project to an external company, a company eliminates a colossal amount of work related to recruitment and team and project management. It is a lot of work and additional costs that the software house takes off our shoulders. By using outsourcing, we can allocate the freed resources to other areas of the company’s operations.

Certainly, there are other benefits of project outsourcing. Still, the above are the most important and often sufficient to choose this form of organization of the company’s activity.

Cons of cooperation with a software house:

  • Software house is less involved in your project. Even having the best relationship with a software house – we have a very good one – we will not overcome one fact: we are just another client. If a software house receives a new project from another client, it will automatically have less time for us in the future. In other words, we must reserve every hour of work in advance and even compete for these hours, e.g., by increasing the hourly rate. There may be a situation that one day there are no hours for us anymore.
  • Uncertainty of cooperation. In addition to the changing number of working hours available to us, indicated in the previous point, there may also be a situation in which the software house decides to terminate the cooperation altogether. Such termination may be due to any reasons, e.g., a software house closes its operation or undertakes a different, long-term project, exclusively or at a rate unavailable for us. Of course, we can also sign a long-term contract with the software house. However, such a contract begins to limit the cost flexibility that we mentioned before as one of the most important benefits of working with software houses. Since we are signing a long-term contract, we cannot break such a contract without consequences.
  • Limited communication. Each hour of software house’s work is a cost and a limited resource that we want to spend primarily on product development. Each consultation with programmers, each question or explanation reduces the number of hours available to us in a given month. In such a relationship, communication problems can arise, especially when a person on the client’s side likes to know a lot and control a lot. It, unfortunately, was my example. I am interested in everything related to our ATS and the technology behind it. My curiosity and willingness to keep an eye on everything cost us many hours. In the end, we developed a model that improved this aspect of cooperation, but it took us some time and money to do so and limits my involvement more than I would like.
  • Know-how. If a software house develops your system, the know-how remains in their team, even though you have ownership rights to this system based on contracts. If the cooperation with the software house terminates abruptly, you lose all know-how related to the system’s technical side. Rebuilding this know-how is possible, but it will be time-consuming and, therefore, costly.

In our case, the decision to build our team of developers resulted from the need to ensure product development stability. At the current development stage and with a constantly growing number of customers, we can no longer afford to depend on the relationship with an external entity for product development. All the pros and cons mentioned above occurred in our cooperation with varying intensity. We are privileged that we have an excellent relationship with our software development provider. Nevertheless, even the best relationship will not make the indicated risks disappear entirely.

Naturally, having your development team carries different benefits and different risks.

What was the benefit of working with a software house turns into a risk when hiring programmers directly. Instead of cost flexibility, costs become rigid, and instead of releasing resources, they become bound.

On the other hand, risks turn into benefits—more significant involvement of own developers and certainty of cooperation. Better communication. Know-how remaining in the company.

There is no perfect solution, of course. Every company should consider each situation individually and select optimal solutions at a specific stage of its development. In Element’s current case, the best solution is to build our team, and we start this task by recruiting for the position of:

Senior Fullstack Developer

Offer content:

Join Element and explore the exciting world of HR Tech. We provide our clients with Element applicant tracking system that makes recruiting easy and effective.

Our startup consists of just several people. Element already has a growing group of paying clients and systematically moves towards international scaling. Currently, we are starting to build a team of software developers. If you want to be a key figure in a product development team, that’s an excellent opportunity. If you are also thinking about building and managing your team of developers in the future, cooperation with us will be additionally attractive for you.

Responsibilities

  • Support the entire system development process, from design, through coding, testing, to implementation and ongoing support
  • Quality control
  • Constant communication with the management board and other team members in terms of system development
  • Searching and implementation of new technologies, thanks to which the system will develop not only functionally but also technologically, will be an additional advantage

Requirements

  • Minimum 6 years of experience in PHP. Very good knowledge of at least version 7.4
  • Minimum 2 years of experience in Angular
  • Very good knowledge of Angular Elements, Chrome Extension, Google Cloud, ElasticSearch, Docker and Behat
  • Very good knowledge of Postgresql
  • Very good knowledge of Symfony 4.4 or higher
  • Good working knowledge of Event Sourcing and CQRS
  • Good working knowledge of PHPUnit and PHPSpec
  • Experience with RESTful Services and API design
  • Very good communication skills
  • Experience in working in startups
  • Feeling in terms of UX / UI will be an additional advantage

Our offer

  • 110 PLN / h + VAT (B2B)
  • 100% remote work
  • The prospect of becoming a leader if it matches your expectations and competences
  • A strong, well-coordinated team that has been working together for years
  • A clear vision of development towards global product scaling
  • Perfect atmosphere and communication in the team

APPLY

Please also:

DISCOVER ELEMENT!

Fast, agile and user-friendly ATS created by recruiters for recruiters
Maciej Michalewski

Maciej Michalewski

CEO @ Element. Recruitment Automation Software

Facebook
Twitter
LinkedIn

Recent posts: