While a talented developer can come from anywhere in the world, we want to find the best source of good developers that will serve as a rule rather than an exception.
In this article, I would like to present four main types of outsourcing businesses categorized by size. We’ll consider the pros and cons for each with impartiality, calling a spade a spade.
First, let us define in broad terms what it means to be ‘a good developer.’ In my opinion, a good software development professional is likely to have a degree in computing, IT or math as well as real experience, and continually seeks to gain skills and knowledge.
Today in the market there are four sources of developers:
- Freelancers (self-employed)
- Small companies (IT services start-ups)
- Mid-size companies (200 – 3000 employees)
- Large companies (multiple offices, each with thousands of developers)
Now let us look at each source individually and see what they have to offer. We’ll analyze the weaknesses and strengths of each.
These are individuals who are confident in their coding skills and decided to work for themselves, often from home. They may have little to no experience in business, and experience feast and famine cycles.
Pros: They are cheap, self-managed, easy to find, quick to start, and can take even very small projects.
Cons: Limited pool of skills (only 1-2 technologies). It is very difficult to assemble a team of freelancers if you need more than one for your project. They can disappear anytime (not reliable). Isolated, they rely on Google searches and forums to fill gaps in their knowledge.
- Small companies
These are IT services start-ups, a mix of freelancers and professional developers who left larger companies.
Pros: Also cheap, affordable, self-managed, and can put together a team of 10-15 people.
Cons: Often a group of freelancers. Slightly inexperienced, cannot handle serious projects, and maybe learning on the job as they cannot afford to turn down any client. Often short on cash, they demand quick payment and have little flexibility.
- Mid-size companies
These are established companies that have been on the market for a few years and learned the business. They attract senior developers since they can afford to pay market-rate salaries and have a constant stream of projects. They are generally focused on quality and the reputation of their brand.
Pros: Large pool of skills, knowledge transfer from senior to junior, can handle big projects, focused on problem solving type of projects, reliable (can always replace a sick developer or add more as per project needs). They are well structured and efficient.
Cons: Not cheap, cannot undertake very large projects, slower to start (more paperwork).
- Large companies
These are global technology consulting companies with offices in many countries, each with thousands of developers. They offer industrial scale software development. They often are trend setters in the market and can afford very expensive marketing.
Pros: Can handle very large projects (multi-million dollar, 2-5 years, large teams)
Cons: Can only handle very large projects. Very expensive (often you pay for the brand and for the privilege of working with them). Their work is of average to poor quality (they sometimes subcontract projects to increase margins). There is little knowledge transfer from senior developers to junior employees as these companies hire and fire at a rapid rate. When they need to hire fast, they tend to take almost anyone to fill the positions. Many developers work for them just to have the company name on their CV. These companies move very slowly due to their size (takes weeks for a team to get to know each other). They tend to be focused more on quantity than quality.
As I stated in the beginning, a good developer can come from anywhere. You can find talented people and real professionals in any of these four groups. When you look for software developers, the search is defined by what exactly you need, what kind of project you have and of course the budget. My recommendation is to look for companies that focus on a particular industry (for example eCommerce or hospitality) or a particular technology (blockchain, Java or .Net only). Mid-size companies have unique ecosystems in which people know each other and help each other. These types of companies often give birth to well-rounded professionals.