When hiring a software development company, or programmers skilled in JavaScript, Node.js, PHP, or any other technology, you’ve seen tips like “ask for the portfolio”, “talk to their clients”, “focus on design” and “don’t be fooled by low rates”, etc. These tips are helpful, but to find the right fit for your company and project, you need to be a bit more selective and diligent in your search.

From one of my earlier posts, the one about how to choose a software development company, based on my own experience as a CEO, you already know my personal advice, that is :

  • Get what you pay for, or in other words, reject the cheapest option (seek cost-effectiveness),
  • Communication is the key. Thus, pay attention to sprints, daily meetings, tracking tools, etc.,
  • Find experts of a certain technology/framework, avoid “all-knowing experts in everything”,
  • If possible, request a demo deploy of the product at each stage of development,
  • Look for someone who understands business logic behind the product,
  • Time and Material model usually wins over Fixed price model.

This time, let’s expand it with more facts and tips about development companies and let’s be realistic about it.

Hard facts about software development outsourcing

#1 Abundance of agencies, yet it is tough to find a fit.

The market is excessively saturated, with literally hundreds of companies in every country. It is going to be hard and take time to dig through the colorful designs and sales pitches of companies claiming to experts in everything. Make sure not to get distracted and focus on finding a right partner, who is not just going to treat your project as another one in their “assembly line”.

#2 Software development is more than writing code.

Software developers are responsible for much more. They might impact end customer experience, revenue flow, brand identity, content, and so on… pretty much every aspect of a business. A good software development company will go beyond and try to craft a useful product, contribute to the design, and assist in deployment.

#3 Competition is intense.

All skilled and experienced developers are employed, especially in the field of mobile app development, for instance, where even junior and middle-level developers are in demand. Later on, many become frustrated to learn facts like 60% of mobile coders have delivered fewer than 5 apps, and about 20% have delivered between 5 and 9.

#4 It’s better to produce an exclusive product/service.

Yet, with all these organizational challenges, one has to come up with a unique product that stands out from the rest. The market doesn’t tolerate similar products, thus it wouldn’t be wise to imitate a competitor’s product and expect the same results. Usually, it’s better to choose custom development of a product with individually designed features.

#5 Software projects are costly.

And most of them run over budget (up to 50% or more). The average project cost range is $15,000 to $150,000. The average project also takes about 1,000 hours, while hourly rates are in the range of $50 to $400. Software development outsourcing has been generally seen as a way to reduce costs, but in fact, in most cases cheap development companies are weak. A fair price-quality balance can be found in Central European countries like Poland, for example.

#6 Software outsourcing may fail.

In 2012, because of a failed software update, millions of RBS bank customers couldn’t access their accounts, and the bank was unable to conduct any transactions for few days. This is just one example of how crucial software is nowadays, and according to different estimates, 25% to 50% of outsourcing projects fail.

Software developers can work in all three areas (freelance, full-time, contract) due to the fact that they can execute tasks remotely, and partially due to high demand as well. Typically, freelancers are hired for a particular project, and the agreement is plain: do the job and get paid. Freelance developers often undertake several projects at a time, which is a risky factor you have to be aware of.

There could be a lot of reasons: from business operations out of sync with project requirements, management failures to poor specifications and measuring metrics. Moreover, many companies outline the documentation in hundreds of pages and then hire junior coders to blindly follow that without any creativity.

So these questions arise: How can we make hiring a software development agency less difficult? How can you avoid common mistakes that cost money? What do you need to know before hiring a software development company? The prime goal is to find the right company for the right type of project.

Here are few basic things to know.

Here are few basic things to know.

> There a few different types of outsourcing.

There are at least four software outsourcing types:

  • Onshore software development = companies located in the same country (often also the same city) as you.
  • Offshore software development = companies abroad.
  • Nearshore software development = companies in neighboring countries.
  • Hybrid development outsourcing = projects with onshore management and offshore/nearshore development teams.

Each approach, surely, has its pluses and minuses. Particularly, onshore development offers high quality, face-to-face meetings and a good fit for 4-12 month projects with large budgets. Offshore development is beneficial to companies with clearly defined projects seeking a more cost-effective solution.

Next, be prepared for close collaboration and open lines of communication lines. Though it sounds cliche, building software is like building a house – you know what you have in mind and have to pass it to a contractor cleary and supervise regularly. A good relationship will help you start on the right foot, because, other than the technical side, you’ll be working with people. And talented developers can not only code but come up with creative solutions and ideas.

> Have defined expectations and communicate them

Moving on, has it ever crossed your mind that there are several ways to code the same thing? Non-programmer people often aren’t aware of it, and, what’s worse, may be under the stereotypical impression that a programmer knows every technology. But actually, there are two sides of the coin. Flexibility and creativity on the one hand, and possible headaches with different coding styles, frameworks, tools, etc., when multiple people are involved, on the other.

Hiring a software development company plays very well in this regard, with a certain field of expertise in particular (e.g. JavaScript development team), as they’d have a unified command of all the processes down the line. This also brings up the other aspect: to choose the right technology you need to know what functionality you expect from your app. Just enough specifics about the layout/style/features for your software and you’ll know exactly what type of company to look for.

The better prepared and defined your project is, the easier the company selection and hiring will be. Define your strategy by answering questions like what’s the purpose of your application, who’s going to use it, how does it help, what field will it be in and who are the competitors, what platforms will it run on, etc. Create a list of features then prioritize them. Make annotated design and technical requirements, outline UX, user flow and navigation.

> Costs vary

What is the cost going to be? If you Google the cost of building software/application, you’ll see the general answer that goes something like this: “Apps built by large top-companies are likely to cost between $500,000 and $1,000,000, apps built by onshore agencies cost anywhere between $150,000 to $450,000”. Bottom line: expect $100K to $500K range for a professionally developed app, which will normally take around 4-6 months.

> Important things to look at

What to look for when hiring a software development company? After sifting through options you’ve googled or personal referrals you’ve received, make a list of 10-15 companies. Look at their websites for an initial assessment – projects, experience, expertise, quality of content, etc. Also, pay attention to “red flags” like bad reviews, complaints, or even lawsuits – study the issues and how they were resolved.

After that, you’ll be able to narrow down the list to 3-5 companies – a shortlist. You can get a quote for your project/idea and access how they communicate, their tech stack/expertise area, the current state of things, staff questions, and so on, in order to choose the one that’s best for you.

The next stage will be negotiations and a contract. It actually could be a set of contracts – masters services agreement (MSA), a non-disclosure agreement (NDA), statement of work (SOW). Just make sure to include a non-compete clause and intellectual property rights clause into a contract. And payment terms are, surely, going to be the centerpiece of such outsourcing contracts.

Questions to ask

When you have a potential software development partner and you start the talks, there could be a lot of buzz words and tech terms. You should be prepared not to let it turn into a cacophony like this:

There’s a lot to go through: business questions, process questions, people questions, questions about the schedule, costs, technology, etc. They should be able to walk you through their development process in a way and in words you’ll completely understand. At Brainhub, for instance, we advise customers to have three groups of questions:

  • General (work process, communication, responsibilities)
  • Technical (tools, tests, documentation, practices)
  • Business (rates, management, experience)

Find the detailed sequence of questions here.

Summary of tips for hiring developers

Let’s summarize what you need to know and do to hire a software development company:

  1. Define requirements. Based on the problem your product is going to solve, decide what the exact tasks for the developers will be, what technologies, skills, budget will be required.
  2. Make a short list. Look for a company that can do the type of work you require (e.g. JavaScript development, ReactJS software development company, etc.). Check expertise as well as customer reviews, narrow it down, leave out the ones that don’t list clients’ references.
  3. Set up negotiations. Personal meetings, phone/Skype calls, whatever works to find out what a company offers in terms of your project. What are their standards, what’s their workflow, what prices do they offer?
  4. Follow up. No rush to make a decision fast even if it all seems fine. You can verify the references, learn more about candidates, their past work, team arrangement, and think the budget through.
  5. Be ready to say No. If you face obstacles or unsuitable conditions, it’s better to walk away. In the worst case scenario, it’s even better to lose a non-refundable deposit than to lose much more later while trying to fix what’s not working out for you. There are thousands of other development agencies.

We wish you luck in finding the best one!