I can't tell you the amount of horror stories I've heard about a non-technical co-founders trying to build a software company through outsourcing and failing. This is probably the most common product issue startup founders face. While there are tons of pieces of advice on how to outsource properly, I decided to go directly to the source for answers.

This past week, I interviewed Alexey Chalimov, CEO of Eastern Peak Software, a custom software development company focused on helping startups and mid-size businesses reach their full potential by building great websites and intuitive mobile apps.

I picked Alexey's brain on the most common pitfalls Eastern Peak Software sees people making when they outsource development. Take this advice in mind before you decide to partner with someone else to build your product.

A specialized vendor or a full service company? Does a focus on a particular technology or area of expertise result in a better end-product?

It is a common misconception that specialized, small team vendors are more professional. Whatever your requirements are, in the long run, you will end up working with a particular developer with his or her own expertise, skills and experience. Whether you find a better developer in a specialized team is matter of luck rather than certainty.

However, as your product and business grow, you will ultimately experience a need for additional skillsets to work on your project. Starting with a specialized, small team, you will have to add developers from other companies, that may lead to potential communication issues between the different teams. This is where the quality of your end product may suffer the most.

That's why it makes more sense to select a company that possesses expertise in multiple technologies and areas. Collaborating with such company you can also expect to get an established team of diverse professionals working together under the same roof for months or even years.

Many companies incline to outsource their software development to large enterprises in hope of confidence and higher quality. So does the size matter?

Well, due to a large number of outsourced projects large software development enterprises work pretty much as conveyer belts, where smaller projects can easily get lost. It rather common that smaller clients receive fairly insufficient attention as opposed to large ones. This can result in a drastic decrease in quality of the work delivered.

Therefore, it is necessary to choose an outsourcing company that can offer a personal attention to your cause and ideas.

Pay attention to mid-size development companies with good references and reputation. A personal approach to each customer ensures higher rates of success in developing some unique product features and benefits, and as a result higher end-user satisfaction.

Last but not the least, bargaining is much easier with smaller vendors, so you can achieve more with the same budget. That is why, when deciding to outsource, it makes much more sense for a startup to go with a mid-size vendor, rather than a larger one.

You can find a comparison chart of software development companies by its size here.

It's important for many companies, especially for startups, to develop their expertise and core team in-house, therefore they might be hesitant to outsource software development. Does it mean that early-stage startups can't benefit from outsourcing?

Core expertise, no doubt, is the main value of any startup. However, there are two crucial points that should be considered by startups reluctant to outsource their software development.

First, apart from developing core features, software products includes lots of routine tasks that have little intrinsic value. By offloading these tasks to an external vendor, you optimize your work, time and costs, saving your best (and expensive) in-house talents for the value creating efforts.

Second, since competition for the local talent pool is usually fierce, early-stage startups struggle to recruit the best and the brightest locally, losing this battle to more established, larger companies. Reaching overseas, not only you can get an access to a much wider talent pool of outsourcing companies, you can even recruit and relocate the offshore team if you find it valuable enough. This will of course require a proper agreement with the team vendor and some legal efforts and expenses for the relocation. Luckily, in most cases this is a much faster and cheaper approach than recruiting the team of the same size and quality locally.

Should you ask the vendor for a fixed-price quote?

Fixed price is a pricing model that guarantees a fixed budget for your project, regardless of the actual time spent by the vendor. Time-and-materials model, on the other hand, provides an approximate estimate, however the customer is billed for the actual developers hours spent on the project. Many startups approaching outsource vendors strongly prefer the first approach, fearing the perceived lack of control and potentially overrunning development costs.

The pitfall of a fixed-price contract is that the vendor will add a premium for the potential risks of the project going over-time and over-budget. Unfortunately these premium can go as high as 100% on top of the estimated time-and-material budget. Furthermore, since the potential revenue is fixed and the only option to increase profit for the vendor is to manage the costs, your and your vendor interests will hardly be considered aligned.

Therefore, to initially develop the trust, you can start with a fixed-price model for a smaller trial. However, in the long-run, you will always be better off with the time-and-material model, or, even better, allocating a dedicated team to work for you.

Are freelancer marketplaces a good substitute for software development companies?

There are several factors that can affect your project progress. Imagine the following scenario: you have managed to find a few freelance developers, and spent time and efforts to establish working processes. Everything seems to be running well, but one month later, just before your release day, one of the developers vanished. Their Skype is offline and nobody knows where they are. And so does your source code, advance payment and your likely chances for release on time. Sounds like a horror story? Unfortunately it is not. This is a very real scenario that happens much more frequently than one would expect.

Working with a company this is out of the question. An employee can be replaced by the one with similar experience and skills, your code is safe and secure in the company's source control system and most of the risks are predictable and avoidable due to established processes and best practices.

You may also think that working with freelancers is significantly cheaper than with software development companies. That's right, hourly rates of freelancers are lower than those of software development companies. However, the company rate includes expenditures for selecting and retaining the best talent, professional trainings and workshops. It covers a proper working place, infrastructure and software tools. It also gives you necessary management, time tracking, established working processes as well as enormous accumulated expertise working on similar projects.

With everything mentioned above the cost-effectiveness of work and quality of the end product are improved drastically in comparison to a lone developer working from their home. But what is more important, software development companies eliminate the most fatal risks of working with freelancers: sudden employee disappearance, loss of money, source code and intellectual property. These can irrevocably ruin your project. So the question is, are you ready to lose hundreds of thousands of dollars when tried to save hundreds of dollars?