Bonus: At the end of the article, look for the Validation Spreadsheet that I developed specifically to save you a lot of time and money and find the best developer for your project.
# 1 Choose the development partner
Anyone who thinks about developing software with the help of third-party developers will probably end up with 3 options:
- Hire freelancers
- Build an in-house team
- Sign a contract with a software house
All these options have their pros and cons. Let’s take a closer look and find out which option will be the best fit for your project.
These guys are lone wolves who have made code the meaning of their lives. But ... Not all of them and not always.
1. Low cost of services. It's true. They do not pay taxes or insurance (unless they have legal grounds for professional activities), so they can afford to lower their hourly rate.
2. No need for formal employment. Do not hire, so do not have to fire. No severance pay or other formalities. It is counted.
3. No need to equip a workplace. In general, a freelancer always seems to be a carefree dude who has a cup of coffee in one hand and a laptop for work in the other. So, you don’t have to buy expensive equipment and organize a workspace for this guy.
4. Good for clear, fast tasks. I think everything is clear here. If you have in mind - complex software with costing, a large amount of data, etc., then read on.
1. Lack of contractor liability. Unfortunately, there are few organized people, and even fewer self-organized people. There is always a risk that the freelancer will run out of inspiration and then the project will be in jeopardy.
2. Failure to meet deadlines. There can be many reasons - from banal emotional burnout (when you are tired of doing what you need), to force majeure circumstances like illness.
3. Lack of skills needed. Freelancer's knowledge is limited by the brain of one person. And that is a fact. It is unlikely that you will be able to meet a freelancer who has knowledge of front and back development, knows how to write mobile applications and at the same time understands servers well.
4. Loss of control over workflow. Once again about everything that is written above. Failure to comply with deadlines, lack of high-quality feedback plus errors in task planning - all this makes it very difficult to control the workflow.
5. Privacy breach risk. When working on a project, a freelancer inevitably gets access to various company databases, as this is often necessary for work. And who knows how he uses this data in the future …
Your own development team, which is always ready to plunge headlong into the problems and tasks of the company. Or not? Let's take a look.
1. All control is inside the company. Since the project is carried out by its own employees, all the control, constant monitoring and the ability to change the course of the project are in the hands of the head of the company.
2. Higher level of data security. The risk of leakage of secret data through its own employees is indeed much lower than in the case when third parties work with this info. But this, unfortunately, happens. This is even more offensive.
3. Faster communication. Of course, discussing the critical stages of development is easier by going to the next office than waiting for an answer, say, from another continent. No argument.
4. Flexibility and time saving. Any changes in the project as well as requirements can be made as soon as possible.
1. Constant and substantial costs
All the costs of maintaining your employees are naturally on your back. Monthly payments of salaries, taxes and insurance plus sick leave, incentives and bonuses, etc. Seriously, this is a lot of money.
2. Hiring is a time-consuming process
I am sure you want good specialists to work on the project. Headhunting them will not be so easy. But that is not all. Professionals are expensive. In addition, they still need to be lured to their team with something interesting and exciting.
3. Technology requirements
Development requires a wide range of knowledge in various fields. If your engineers do not have them, then work gaps can be expected. Who to blame? I will leave unanswered.
4. Staff turnover
If someone from the internal IT team suddenly decides to quit right in the midst of the project (and this happens), finding a replacement will be a real challenge. It’s not worth talking about the deadlines and unforeseen expenses that will accompany this.
These are professionals with extensive experience in developing cool software and its subsequent support.
1. Reduced overhead costs. No costs associated with the operation of serious equipment, the use of expensive software and technologies, as well as staff training. All this is the responsibility of the outsourcing partner.
2. Reduced labor costs. Most likely, you will agree that it is not always more profitable to keep permanent employees on your staff than to pay third-party developers if necessary without losing quality.
3. No long-term commitment. Special outsourcing agreements are concluded with the outsourcing partner, which has clear terms of cooperation, terms of performance and terms of payment. Such an agreement is of a fixed nature and depends entirely on the needs of the customer.
4. A wide selection of professionals. A professional software development firm has in-house employees with relevant qualifications, tests and enhances the skills of its employees. So the customer gets quality assurances.
5. No license obligations. When choosing outsourcing, an organization does not need to worry about acquiring the necessary tools and technologies for development and associated licensing costs. This is completely the responsibility of the outsourcer.
6. Costs & expertise balance. This is once again about money. When you outsource a project, you know for sure that specialists in their field will work on it for a fixed amount in the contract.
7. Well-established workflows. Qualified developers always try to make the process of developing a software product as convenient as possible. They use different workflow or integrated Business Process Management systems to increase efficiency and improve the organization of work
1. Risk of picking wrong company. Here the advantage of a wide selection of professionals turns the other side of the coin. Unfortunately, there is a chance of running into the wrong company. The good news is that this can be avoided. Just read the article to the end.
2. Communication and time zones difficulties. Cultural, linguistic and location differences can really hinder effective collaboration. This minus can be minimized if you use universal English for communication and adjust to each other's work schedules.
3. Legal Pitfalls. Unfortunately, there is always a risk of information leakage when the data is accessed by a third party. This can be avoided by paying due attention to the relevant points of the cooperation contract.
# 2 Checking Information Sources
Here I will focus on the main sources that can complement (or spoil) the general overview of the service provider.
Check whether your potential partner is so good in the developer segment that he already is in the top 10, 20 ... of the best developer companies. How?
I’m going to focus on trusted review sites such as GoodFirms, Appfutura or Clutch.co (links below). Do you think the reviews are important? Yes! What about rates? Definitely important. These platforms confirm the identity of the reviewer.
Continuing the conversation, I’ll say - check the social networks (Linkedin, GitHub, Facebook). It's the shortest way to check company's culture, content and comments.
One more thing
Don’t discount the omniscient Google. Google carefully stores information about everything. Enter the name of the company or, say, its CEO, and enjoy the results.
# 3 Check response time for inquiry
Next it’s time to chat to a potential outsource partner (or maybe there are few of them for now). You can leave a request for cooperation, ask them to clarify some information, make a request for a preliminary calculation of the cost of the project, or ask any other questions about the company.
Pay attention to how they respond and how fast they do it. It should always be clear and thorough. Usually it should not exceed 24 hours. If there is a contact form on site response should be even faster.
Important indicator of transparency and overall performance is the speed at which the service provider responds to customer wishes and comments.
Response time is possible to check by several metrics:
Reply via email or webform:
- up to 1 hour - perfect
- up to 24 hours - Ok
- more than 24 hours - oops, it’s too long...
Chat Form - honestly, it should be immediate, or at least not more than 5 mins
So your time is valuable. Do they value it? Just consider that.
# 4 Get to know the contractor before your first meeting
The next step is to deeper analyze your potential vendor.
To get started, take a look at the corporate website. In a software development environment (as in any other business), there is a great practice of posting all the important information about the company here. It doesn’t look like it was made at the beginning of the century? Fine.
Check on site "About us", "Out team", etc. and you will get a more complete picture of the qualitative and quantitative composition of the team of a potential partner.
- Management team. Information about the people who are at the head of the company can say a lot about those to whom you are going to entrust your idea. Often you can find quite detailed characteristics of leaders. They may include a biography, stages of work, professional and personal qualities, etc.
- Number of specialists. Human resources are one of the main indicators of the company's viability. This indicates the interest of people in working in this company on the one hand. On the other hand, this proves the financial stability of the company and may indicate the skillful use of moral and material incentives.
- Range of special skills. Good developers always keep up with the times. Knowledge of various programming languages and development technologies (Ruby on Rails, Python / Django, Node.js, etc.), the use of flexible methodologies (Agile), and specialization in the creation of not only the web, but also mobile applications of varying complexity indicate the level of skill of the company.
- Availability of qualification certificates. Often on the pages of the site you can find information about the various achievements of employees and the company as a whole. This indicates the company's desire to keep the bar high in its development.
BTW: You can read which Popular Tech Stacks are used in big software products here: stackshare.io/stacks
# 5 Workflow and Communication
Find out how the process of interaction with the contractor is maintained, I mean ’communication tools’. Why? Because they completely solve the tasks of setting and monitoring tasks, as well as feedback.
It is better to choose tools for your project based on 3 parameters:
1. Price. As a rule, the basic version is offered for free or there is a free trial period. The price is usually loyal and depends on the functions that the communication channel and the number of users offer.
2. Cross-platform. This is more about the technical side. Both the customer and the contractor should be equally comfortable using the chosen tool, regardless of which platforms their equipment works on.
3. Integration ability provides for the use of communication technologies in which the contractor is ready to adapt to the customer’s work processes and his needs.
Here are a few Popular tools :
- Asana - the easiest way for teams to track work and get results.
- GitHub - host and review code, manage projects, and build software.
- Slack - chat rooms for your whole team.
- Trello - boards, lists, and cards enable to organize and prioritize projects.
- Jira - project management tool for agile teams.
- Google Hangouts - video call, phone, or message.
- Skype - alternative channel for direct communication.
# 6 Time Zone Matching
I came across the fact that the difference in the time zones of the customer and the contractor is often underestimated. It becomes a huge mistake which can lead to failures in the workflow.
From my experience I’ll say that for efficient and effective collaboration, it's enough to have 2...4 crossing office hours. So this will provide all necessary feedback and allow to quickly resolve issues that might arise.
Service for checking time zones: worldtimebuddy.com
# 7 Documentary guarantees of cooperation
We finally came to the legal side of cooperation.
I bet your business idea is unique, so be sure to take care of the confidentiality and safety of your trade secrets with NON-DISCLOSURE AGREEMENT.
It's a first and the most important document you need to consider.
The essence of the NDA is that the two parties undertake to protect the confidential information that will become available during the cooperation.
Main terms of this contract are:
- Execution of work. The party to the contractor, when gaining access to internal processes and company data, is obliged to organize its work in such a way as to prevent information leakage.
- Areas of responsibility of the parties. Not only data protection obligations should be provided, but also acceptable grounds for its disclosure.
- Fines and validity. Responsibility for non-compliance should include penalties - from a fixed amount of a fine to different possible costs.
In conclusion, I can say that choosing the right software company for your project is not an easy or fast task. Most likely, you will have to look through several candidates before finding the right one.
To simplify this task, I prepared a Validation Spreadsheet. It has 12 basic criteria that will allow you to choose a company that meets all the requirements, quality and expectations.
To avoid a headache when outsourcing the project, I prepared 5 tips that will greatly facilitate collaboration.