Outsourcing Software Development: Choosing a Company – Altitude Accelerator

This article is for: Startup founders with limited technical or coding background who need to learn about outsourcing software development. Or, companies who want to outsource parts of their development.

Written by: Alex Senson, Ashley Burton, Tyler Boulanger

<– Back to “How to Make Software Products: Six Options for Startups”

If you’ve made your way to this article, you probably have a great idea for a new software startup that you think could be the next big thing. You’ve gotten great feedback from everyone you talk to about it and can’t wait to get started. If you have the talent to develop it yourself, congratulations, you’re well on your way. But if you find yourself to be lacking the time, money, and knowledge to build a software development team from the ground up, you may want to consider outsourcing software development to a custom software development company.

Outsourcing software development is not right for everyone. It is only one of many ways to have your software developed. For those that choose this path, should you outsource offshore or locally? What services should you look for? How can you tell a company is right for you? Startups are faced with a seemingly endless range of options when they are looking to outsource.

This article aims to provide an in-depth look at WHY and HOW your software startup should outsource development to a custom software development company. There are six sections for you to explore:

We will illustrate these ideas through case studies of companies and founders who work with Altitude Accelerator

About custom software development companies and how they differ

Key takeaway: Custom software development companies vary widely in size and services; most specialize in a specific area of software development. Local and offshore outsourcing have major differences; hybrid companies provide a happy medium.

What do they do?

At their core, custom software development
companies exist to do exactly that, develop software. Each company is likely to
specialize in different areas of software development, while many of the large
companies have teams for each area; some companies specialize in complete web
or app development while others are more suitable to make a minimum viable
product (MVP). Some have extremely specific specialties; they may only create data
visualization software or work only with a certain language. Regardless, you
can likely find a custom software development company that is the perfect fit
for your business.

These companies come in many shapes and
sizes, ranging from boutiques of 5 people to agencies employing over 75.
Development companies can also be referred to as studios or shops, depending on
the preference of the company. All of these terms are rather similar in
definition, though boutiques and shops tend to be smaller and focus on
development while studios or agencies are larger with more services.

Where development companies vary most is in the services they offer, the range of talent they have available, and the software they specialize in. They work with your company to find out which services are right for your company and how they can best serve your software development needs. Some of these additional services can include technical consultation, marketing, customer service, quality assurance (QA), and business intelligence.

Local and offshore software development outsourcing

Perhaps the most important distinction when
considering software outsourcing is between local and offshore outsourcing. Local
outsourcing involves working with software development companies in your own
country, ideally within a distance that can occasionally be commuted. Offshore
outsourcing means working with countries far from your own. For North American
startups, software is commonly outsourced to China, India, Pakistan, or Ukraine
for cheaper development; or Switzerland, Germany, or Australia for world-class
development.

Another available option is a hybrid development company. These firms have project managers that work locally and software development teams that work offshore. This method combines the low cost of overseas labour with the convenience of local communication. The pros and cons of each of these three options will be discussed later in this article.

Summary: About custom software development companies

  • A custom software development
    company’s main purpose is to develop software products; most specialize in
    specific areas of software development
  • Companies vary widely in size
    and the services they offer; they are flexible to provide clients with exactly
    what they need to succeed
  • Development companies can be
    local, offshore, or hybrid; local outsourcing is more expensive but involves
    more convenient communication

Seven questions to help you decide whether you should outsource software development

Key takeaway: Outsourcing software development is an effective way to have a professional product or MVP built quickly. Whether you are able to work with a software development company is mostly dependent on whether you can afford the high cost. You should avoid outsourcing the development of a sophisticated software if it is your company’s core competency.

When deciding whether or not your company should work with a custom software development company, there are seven key questions worth looking into that will provide helpful insight for the decision.

1. Can you afford it?

Of all the questions discussed in this
section, this one is your main consideration. If you don’t have enough money to
pay a software development company, it’s unlikely you will be able to work with
one at all. However, there are rare situations where companies will agree to a
deal where they will build your product in exchange for equity in the business.

The common costs of working with a development company will be explored more in-depth later in this article, but these partnerships can cost you hundreds of thousands of dollars for a fully polished commercial product. Even developing a simpler product can cost tens of thousands of dollars. Though some entrepreneurs have that kind of funding available[TSB2]  to invest in software outsourcing, you may be better off finding a cofounder or developing the software yourself if you are short on money. At the very least, you can start generating revenue with an MVP and work toward paying for outsourcing.

If your startup has already progressed to the point that you are considering hiring a team of in-house developers, consider the financial flexibility that outsourcing could afford you. Working with a development company allows you to only pay for development when you need to, rather than paying a team of developers year-round when you don’t think they will always have work to do.

2. Do you have technical leadership on your team?

When starting a software company, you
obviously need someone with technical knowledge to be leading
development of your product. Whether that knowledge comes from you or a CTO,
there needs to be someone making well-informed decisions on how your software
will be made.

If you are without any technical leadership
on your team, that will very likely lead to disaster. When working with a
software development company, most companies will assign a project manager to
the team working on your project. This provides a technical liaison between you
and the developers; essentially, development companies can act as somewhat of a
CTO-as-a-service. In the absence of technical leadership on your own team,
project managers can help translate your vision into a well-planned software
design.

Keep in mind that even if you plan to work with a software development company, having technical leadership on your team is still useful. Technical advisors can help you identify which skills and knowledge are needed to complete your project when searching for a company that suits your business. They can also play a role in communicating requirements and tasks to the project manager or development team in technical language.

3. Is innovative software your company’s core competency?

Whether you can trust a custom software
development company with making your software product is largely dependent on
how important the software is to your company’s success.

Some businesses just develop software as a platform to showcase, sell, or organize their core competency. In this case, many companies end up outsourcing software development so they can focus their efforts on what makes their business unique. For example, Uber is an app where users can order rides from members of their community with the push of a button. Because Uber’s success was more dependent on having a large collection of drivers than it was on having top-quality software, they felt comfortable outsourcing development. As the company grew and they became more interested in developing more sophisticated features, development was moved in-house.

For businesses that are centered around the
development of a new, innovative software technology, outsourcing is not ideal.
This could be a complex algorithm, a unique take on artificial intelligence, or
even a proprietary database. You don’t want to put your main competitive
advantage in the hands of another company; this is incredibly risky and
investors are aware of that. Brand new technologies are likely different from
anything the broadly-talented developers at a studio would have dealt with
before; hiring in-house developers with a specific expertise in your product’s
domain would be more appropriate.

When producing an innovative software,
control over your product’s intellectual property can also be a concern. Even
when you have negotiated control over IP, it’s hard for future developers or
team members to feel “ownership” for the software. Future in-house developers
will also have a difficult time scaling the product if it was produced by an
external company. Even when a development studio writes top-notch code,
identifying and fixing problems made by someone with little contact to the
company is a challenge.

Considering their potential exposure to your intellectual property, you should also keep in mind the possibility of acquiring third-party developers you’re working with. Seeing as they can contribute to the technical foundations of your business, it is definitely advantageous if you can keep them onboard long-term. If you want to keep the company’s IP in house but still require outsourcing, you can even delegate specific tasks or chunks of development to a third-party company while keeping the bulk of development within your own staff.

4. Is your team being distracted from business development?

In the early days of growing a startup,
business development is just as integral as software development. Especially
when working with a small in-house team, employees have to wear a wide range of
hats. Along with business and software development, customer support, security,
marketing, and more can take up unreasonable amounts of time when they aren’t
your top priority. Luckily, many software development companies will take care
of these concerns for you.

When software isn’t your company’s core competency, focusing on business development is still difficult when an already limited team is being stretched thin. Going back to Uber, outsourcing software development allowed them to push software development to the side while focusing on their main concern, recruiting customers and drivers. Working with a software development company can allow you to delegate tedious tasks so you can focus on growing your business.

5. Are you on a time crunch?

Software outsourcing can be very
advantageous when you are antsy to develop a professional, complete software
product. This, of course, should only happen after you’ve validated the idea of
the product with customers. Some businesses rely on entering the market quickly
in order to succeed; having a well-developed product also makes it easier to
find investors, a cofounder, a team, and customers.

Software development companies are often
able to adjust their team sizes to accommodate shorter timelines; this would obviously
increase the hourly rate. Offshore companies in particular tend to have excess
labourers available due to their low cost, making their project team sizes very
flexible.

Outsourcing software development also
eliminates time spent on recruiting, onboarding, and building team chemistry.

If you hope to develop your product with an extremely rapid “quick and dirty” approach, similar to that of the lean methodology, higher-end studios can slow down this process; they often put a focus on brand strategies, polished planning, and detailed coding, so it’s unlikely they will be willing to push an unrefined product to market. However, there are also many software companies that are less polished, who would be happy to produce a quick MVP that looks a little less professional at a low cost. This just something to keep in mind when choosing a suitable development company for your startup situation.

6. How much flexibility do you require?

One of the most significant selling points for software development companies is their flexibility. When your company anticipates fluctuations in need for engineers throughout the year, it is not ideal to hire a team of in-house engineers year-round.  When working with a development studio, you can have a bigger time working on your team during peak periods and cut ties when development is not needed. This flexibility is similar to hiring freelancers or short-term student workers, but instead involves a cohesive, experienced team working on your project.

7. What are your personal preferences?

In the end, whether you hire a software
development company largely comes down to your personal preferences about how
you want to run your business. Some entrepreneurs think in-person team synergy
is key to their startup team’s success; they would likely prefer to hire their
own team or bring freelancers in-house.

It may also be preferable to have a devoted in-house team that grows and evolves alongside your product and feels a sense of ownership over it. Perhaps you want your business development and software development teams to be heavily integrated. Regardless, it would be hard to feel confident in your business if you compromise your standards for a successful startup.

Altitude Accelerator Case Study: James Lee from Expancio

James Lee is the VP of engineering at Expancio, a platform for creating next generation webapps. Having recently graduated from Altitude Accelerator’s Incubator Program, Expancio is working with a wide range of businesses to help them engage modern customers through their apps. Through his experience with Expancio and technical consultation at multiple Canadian banks, Lee has been involved in software development in a variety of roles.
 
After seeing the process of many software projects coming to life, Lee still would not often recommend that small businesses develop their software themselves. This is especially true for non-technical founders or startups where sophisticated, unique software is their core competency. There is a lot of cost involved in putting a development team together spending time developing things yourself, so if you’re not fully capable of doing so correctly it could be a huge waste of time and money. In Lee’s words, “let the software experts do their thing, let the business owners do their thing.”
 
As a company selling an innovative software solution with a technically knowledgeable leadership team, Expancio invests in developing their products in house to ensure they know exactly how everything is being made. For a company with a non-technical core competency, like selling food, they can rely on an outsourced company to handle developing the simple platform on which they sell their food. Expancio tells their clients that they don’t really need to know how their software works, they just need to know how to perfect their company’s key value proposition and be able to sell it.
 
Essentially, you should trust a development company with your product if it isn’t the make-or-break part of your business or you aren’t really capable of leading development yourself.

Summary: When to hire a custom software development company:

  • You have the budget to afford
    outsourcing
  • You need a professional, complete,
    commercially-ready product or MVP developed quickly
  • Your team lacks technical leadership
  • You want more of your in-house
    focus to be on business instead of software development
  • You have fluctuating
    requirements for software development labour

Summary: When NOT to consider outsourcing software development

  • You can’t afford to outsource
  • You can take your time
    developing a complete product OR you want to develop “fast and dirty”
  • The sophisticated software
    product is your company’s core competency
  • You require highly specific
    expertise to develop your software

Where to search for a software development company

Key takeaway: Asking your network for referrals is the best way to find trustworthy development companies, though websites like Clutch are the best place to start searching on your own.

In your network

Searching for a software development company that suits your business can be a daunting process with thousands of options available to you. There is a lot of information to sort through on a Google search and you can’t always tell why certain companies are getting more attention than others. Authentic conversations with real people can be the best way to get trusted reviews and recommendations. You can start building up a good list of options by asking those in your network through email or on social media; many people have a list of reliable vendors that they would be happy to share.

Top five websites for finding a software development company

Clutch 1024x353, Altitude Accelerator

Clutch is the most trusted site online for sorting
through verified companies working in software development. It has information
on over 27,000 agencies from more than 500 different categories spanning the
software development industry. The site offers verified reviews from clients
and analysts along with extensive information on each company and a link to
their website.

Using the “Search” bar, entering relevant key words will yield a list of helpful resources including lists of the top agencies and visualizations of how they fit in the market. There are a wide range of filtering options for reviewed companies including project size, hourly rate, and industry focus. Clutch is definitely the go-to site for starting your search.

Appfutura 1024x256, Altitude Accelerator

Appfutura specializes in mobile app
development companies but has information on agencies from a wide range of
software development categories. They list over 8,000 companies worldwide and
have had thousands of projects developed for clients. Appfutura’s unique methodology
involves listing companies based on their performance, reliability, reviews,
and activity.

They work closely with clients and agencies during projects to measure performance and collect feedback in an effort to make their listings truly representative of which companies deserve the most attention. Though their ranking system is in-depth, there are not too many options for filtering through search results. You can also pay additional fees in order to get increased attention or assistance from agencies.

Linkedin2, Altitude Accelerator

Over 260 million professionals from around the world log into LinkedIn every month while 40% of those users do so daily. And as much as it can be used to build your personal network, LinkedIn is an excellent platform to conduct B2B business; over 80% of the B2B leads coming from social media are generated on LinkedIn.

LinkedIn allows you to search through their database of companies and see if any of them are connected to people in your network, allowing you to find out who to ask for recommendations and reviews. Getting good reviews from people you trust is the best way to gauge the reliability of a software development company.

Goodfirms 1024x393, Altitude Accelerator

GoodFirms has an incredibly in-depth list of software development categories to search from. Search results can then be simply filtered based on location, rate, and employee strength. The site also boasts client reviews on most of the companies, though GoodFirms is less involved in the review process than other sites mentioned. Overall, it is a very comprehensive site that will be helpful in finding companies from a specific niche for your startup.

Extract 1024x279, Altitude Accelerator

Extract, like GoodFirms, allows you to search for companies that specialize in a very specific technology. While there are fewer total companies present on the website, Extract lets you make a shortlist of those you’re interested in and quickly ask them for a quote. Filtering is simple once you log in through LinkedIn and Extract can even suggest suitable companies for you. Extract also grades companies based on certifications, reputation, feedback, and expertise to ensure you are seeing the best of the best in your search results.

Summary: Where to search for a custom software development company

  • Asking your network for
    referrals is the best worthy to find out whether a company is reliable
  • LinkedIn can help you find out
    who in your network to ask for recommendations by seeing who has connected with
    software development companies
  • Clutch is the most prominent
    website for finding a development company, though there are several other similar
    database websites that can be helpful

Five key factors to consider when choosing a software development company

Key takeaway: Open and honest communication is required when assessing your options to ensure you end up with a reliable partner that is the right technical fit. Local companies are ideal for communication but you can cut costs by outsourcing software development internationally.

With pricing playing such a large role in whether or not you’re able to work with a software development company, the first and foremost way to assess the possibility of a partnership is by obviously asking for a quote. However, there is more to these companies than the cost of working with them. This section outlines 6 key factors that you will need to keep in mind during this decision, other than cost. Remember, technical knowledge is definitely required to assess which companies are right for you and what you should be looking for. If you are a non-technical founder, strongly consider seeking out a technical advisor or cofounder.

1. Reputation & reliability

When you’re making such a large investment
to have your software built, you want to be able to trust that the company
you’re outsourcing to will be able to hold up their end of the bargain. The
best way to keep track of a company’s reputation is through reviews; these can
either be from people in your network or online review sites. You can even
reach out to companies that have previously worked with an agency to get a
better feel of their experience. In general, development companies with a
better reputation will come up more commonly in search results.

You can also make some judgements about a company based on the quality of their website. Though this isn’t the most important consideration, think about what kind of job they would do on your software if they can’t develop a good-looking website for themselves. Be on the lookout for major complaints, financial struggles, failed clients or lawsuits as well, which are obvious red flags. Some companies, especially offshore ones, offer insurance or guarantees; this really shows that they are confident in their work.

2. The technical fit

No matter how cheap and reliable a company is, they are of no use to you if they don’t have the exact talent you need to build your software. Therefore, you need to ensure that the company you choose is a perfect technical fit for your project. This includes using your preferred software development methodology, your ideal software architecture pattern, and any other relevant development considerations; company representatives will often collaborate with you to figure out which of these will work best.

Out of this whole section, this is the
factor that requires the most technical knowledge.

There are several ways to examine whether
companies are the right fit. By examining their portfolio, you can see if their
previous work is up to your standards and gives them the experience to succeed
on your project. You can also check out a company’s social media or website to
learn more about their practices. This is also a good way to find out whether
they are up-to-date with the newest technological advances in the field.

Every company tends to have a specific expertise, so make sure to identify how many people at their company have the right skills for your project. Beyond specific skills, the way they develop software needs to be aligned as well; if your project plan requires flexibility and rapid iterations, find a company that uses the Scrum method.

3. Transparency

Maintaining a positive relationship with the company you are outsourcing to is the best way to ensure your product is made with as much care as possible. The key to nurturing this partnership is ensuring both sides are being honest and transparent right from the first interaction.

When describing the requirements of your
project, being open about every aspect of what needs to be done, no matter how
difficult or undesirable, ensures the development team can create exactly what
you have envisioned. Remember, you want your clients to trust you as much as
you trust them.

Agencies should never try to sway you
towards using the technology they specialize in; they need to have a good
reason aside from their experience with it. When sending out project proposals
and plans, you need a partner that is willing to say “no” to some things; if
you had an oversight or planned out something impossible to make, it’s better
that they tell you right away rather than make something inadequate later.

If you really can’t tell how honest they are being, take advantage of companies offering free consultations or samples to ease your doubts. Technical advisory also plays a large role in sniffing out when someone is being dishonest.

4. Amenability

In order to build a software product that
perfectly represents your vision, you need to find a development company that
works with you, not for you. That is to say that they are open to
working conditions and methods that align with the mentality of your business.
This is not to say that you should be able to overrun the established studio
that runs like a well-oiled machine, but they should be flexible to provide
services that fit your needs.

Companies should be open to your preferred
methods and frequency of communication; ideally they will involve you in
project communications. This is especially important to establish outright with
offshore companies, as communication can later become an issue if a system
isn’t put in place early on.

Your outsourcing partner should also be
able to accommodate any changes in team size or skill that will be required
over time; try getting a feel of what’s going on at the company right now to
see if you would be one of their top priorities. When working with a large studio,
they may have an “A Team” of experienced developers that work with their
biggest contracts, leaving your smaller startup project with junior developers.

Lastly, make sure that they are able to provide the additional services you need them to provide including customer support, future updates, or continued maintenance of the software.

5. Local or offshore outsourcing?

Discerning between local and offshore outsourcing is the often most important part of choosing a software development company to work with. Though agencies fulfill the same purpose wherever they are located, the advantages and disadvantages of each option are clear.

In favour of offshore outsourcing

The main factor in your decision is usually cost. For the most part, there are always more inexpensive options available offshore than locally. Though there are obviously high-end development companies all over the world, countries with cheap labour like India, Pakistan, or Ukraine allow for software to be engineered three to five times cheaper than at local companies. This cheap labour also means international development teams tend to have an excess of developers at times; the development of your project can usually begin sooner as a result.

In favour of local outsourcing

However, offshore outsourcing can lead to issues with communication and management. Different languages, time zones, cultural norms and preferred communication channels make it difficult to consistently make contact with the development team. It’s hard to keep developers engaged and accountable when you have different work hours. Local outsourcing provides a more aligned work schedule and the possibility of in-person collaboration if the company is located close enough.

Weak communication practices and unfamiliarity with the local user experience and user interface (UX/UI) culture can put the quality of your software at risk. Despite all this, modern project management platforms make overseas collaboration much more possible now.

Other considerations

Another part of the decision is your preferred development methodology. Troubles with ongoing communication make offshore outsourcing more suitable for a traditional methodology while local companies would more easily be able to handle agile methodologies. Some companies just take pride in hiring onshore talent and choose a local company despite the increased cost.

Hybrid companies

One more option is outsourcing to a hybrid software development company. These companies generally use a local project manager along with an offshore development team, establishing a middle ground between the advantages of each option. These companies are still cheaper than local ones but also provide a more readily-available point of contact than offshore companies.

In general, any of these options can work
effectively if you do your due diligence to identify a reputable, skilled team
that can provide the services you need while keeping costs relatively low.

Local Outsourcing 1024x479, Altitude Accelerator
Offshore Outsourcing 1024x478, Altitude Accelerator

Altitude Accelerator Case Study: Mark Oleniuk from ResQ

Mark Oleniuk is a cofounder and managing partner at ResQ, an app that organizes on-demand maintenance and preventative fixes for restaurants. With it being difficult to afford in-house developers early on at a startup, ResQ initially outsourced their software development to a local third-party company and called it a “decently positive experience.” Though the company was located in Mississauga it also had divisions overseas, lending itself to the hybrid model.
 
Working with this company required a lot of learning along the way from Oleniuk and his team, seeing as they had little technical experience with software development. Given that a portion of their project was developed overseas, time zone differences often made it difficult to speak with those developers in real time. This was especially burdensome when trying to quickly debug or test something. There was also a language barrier to make matters more difficult. When working with a company that partially operates overseas, find out how much you’ll be needing to work with that team compared to the local one; this is key for your communication plan with the team.

Altitude Accelerator Case Study: Vishal Kothari from Red Lane Capital

Vishal Kothari is currently a managing partner at Red Lane Capital and cofounded RedKnee, now rebranded as Optiva, a provider of business support systems software for the telecommunications industry. Having helped grow the company from a startup to over 1,500 employees when he left last year, Kothari has plenty of experience with software development strategy.
 
With regards to whether software development should be outsourced, Kothari shares in Expancio’s sentiment that a company’s “critical commodities” should be developed in-house. This helps build a code theme, a knowledge base, and credibility with customers. For non-critical commodities, like the mail server RedKnee used, a third-party can be trusted. Software development should therefore only be outsourced when that software is not a critical commodity at the company.
 
When working with international development teams, Kothari does see some benefits beyond just cost. When working with large enterprises around the world, he found that clients wanted his company to have a presence in their country. He also found that there was a much wider range of skillsets available when you are willing to work with anyone in the world; he was able to build effective teams quickly in Germany and India.

Summary: Five key factors to consider when outsourcing software development for your startup

  • Outsource to companies that
    have a good track record with successful businesses
  • Get someone with technical
    knowledge to ensure you outsource to a company that specializes in what’s best
    for your product
  • Both you and the development
    company should be completely open and honest when assessing whether there is a
    fit
  • Development companies should be
    willing to work in a way that works best for you
  • Local outsourcing generally
    provides more reliable communication and quality but offshore outsourcing saves
    on costs

Paying for custom software outsourcing

Key takeaway: Retainer contracts offer compensation flexibility on a timeline, local outsourcing is much more expensive than offshore outsourcing, and you should never take the cheapest option.

Three main types of compensation

1. Fixed rate contract

Using a fixed rate contract, one concrete
price is paid for highly defined project requirements. This requires a large
amount of project planning to be done beforehand with little hands-on
management throughout, lending itself to more traditional software
development methodologies than agile. Developers are under strict deadlines
and use predictable timetables built around a rigid project
plan.  

One downside is that the project cost doesn’t decrease at all if the project is completed quicker than expected; projects that take longer to complete than expected can also lead to rushed, low-quality work. This type of contract is ideal for small projects with limited features and highly defined requirements that are repeatable; a common example is the development of a simple MVP. 

2. Time and materials contract

Using a time and materials
contract, you regularly pay for work completed depending on what time and
resources are required during a dynamic development process. This structure
allows for more flexible project requirements; features can be added or changed
when you choose to do so. This leads to software that is of higher quality due
to constant iterating and testing. A downside to this type of contract is
the uncertainty of your schedule and budget. The contract often does not
specify how much time a company needs to be spending on the project, just the
tasks that are to be completed.  

Development with this structure is more transparent but requires more management to keep things on schedule. It lends itself more to agile methodologies than a fixed contract, but it’s still imperfect since it doesn’t guarantee the team will be working on the timeline you’re aiming for. This type of contract works best for ongoing maintenance or support roles with less-defined schedules. 

3. Retainer contract

A retainer contract specifies the
amount of time (generally in hours and weeks) that the relationship is to
be retained for while being paid at an hourly rate. For example, you can
specify that the developers need to work 20 hours per week for 10 weeks; the
contract can be renewed or adjusted as the project evolves. This is the
most ideal structure for an agile approach to software
development, as you can adjust project requirements throughout
development while ensuring the company will stick to a schedule.  

Retainer contracts grant you with the flexibility of a time and materials contract while enforcing consistent work schedules like a fixed rate contract. 

What does it usually cost?

Typical hourly costs

There are custom software development
companies at both ends of the cost spectrum both locally and overseas.
Especially when looking at offshore outsourcing, there is a vast range of
options from low-end development shops to high-end professional agencies. As
noted earlier, development can be outsourced offshore at very low costs due to
the availability of cheap labour.

The following table outlines the typical hourly rates for local and offshore development companies found on Clutch.co. The typical higher and lower ends of software development rates, along with the ranges that were most common, were identified. Company rates varied widely between categories, size, and ratings. The offshore values are based on rates in commonly used countries with inexpensive rates like India, Pakistan, China, and Ukraine.

Software Development Costs 1024x118, Altitude AcceleratorHourly rates (CAD) for software development locally and offshore including the higher and lower ends of costs and the most common $50 range based on observations of the clutch.co database.

Typical total costs

Even when you can find an affordable company to work with that meets your needs, consider how long they will be working on the project; that hourly rate can add up over the course of months. According to Clutch.co, most custom software projects cost between $10,000 and $250,000 in upfront costs to design and develop. Soltech says even small apps are likely to cost between $50,000 and $75,000 to build. Neither of these include ownership costs for operating and enhancing the software.

With that being said, large companies working with an agency can spend millions of dollars on app development. As a smaller company, you should be aware of the costs associated with developing your specific software project before you decide to outsource.

Why does outsourcing software development cost so much?

Compared to some of your other options for developing software, like hiring freelancers, finding a technical cofounder, or developing it yourself; working with a software development company can be very costly. This is largely because of the time and money they will save you by having multiple people work on your project at once and providing additional services for both business and software development. Having just one person from the company work on your project would still typically cost more than hiring a freelancer because of the many overhead costs they need to pay; these include employee benefits, vacation pay, renting office space, and more.

Generally speaking, the cost of a project
exists in a triangular relationship with time and scope. Cost will increase as
the project deadline decreases; cost will also increase as the scope of a
project, including additional services and features, increases.

Time Cost Scope, Altitude Accelerator

Beware the cheapest offer

When collecting quotes from various
development companies, you may be tempted to work with the company that gives
you an outrageously low offer. Though this may seem like the perfect way to get
your product developed for cheap, it may cost you more in the end as a result.

There is usually a good reason for companies giving out extremely low quotes, likely involving a history of making faulty, untested products. They may just be poor communicators with little experience that haven’t proven themselves reliable. Some companies giving super cheap quotes may even be trying to keep ownership of the code they write for you. Whatever the case, you don’t want to end up with a situation where you need to start development all over again because you took the bait on the cheapest offer.

Summary: Paying for custom software development outsourcing

  • Fixed rate contracts enforce a
    rigid project timeline while time and materials contracts encourage
    flexibility; retainer contracts combine flexible project requirements with a
    rigid work schedule.
  • Local outsourcing is far more
    expensive than offshore outsourcing, though there are high- and low-end options
    available for either
  • Outsourcing costs more than
    other options because of the many additional services they offer and
    operational costs
  • Never take the cheapest offer
    you receive

Four tips for getting the most out of a software development company

Key takeaway: Prepare yourself adequately to work with the right team and be quick to move on if they are not. Also, negotiate contracts that set you up for success.

1. Planning your project well in advance

The most effective way to prepare yourself
for a relationship with a software development company is by having a detailed
plan of your project described well in advance of your search. Even if you plan
to use a more flexible approach, you can’t go into the process thinking you’ll
see how things go and adjust accordingly.

By establishing your vision for the software and what problems you are trying to solve with it, you can find a company with a culture that aligns with the project. Beyond that, the technical specifications of your project are the most important part of the plan. This includes your software stack, programming language, architectural pattern and much more. Be sure to get someone with deep knowledge of the type of software you’re building to help identify these details.

If you plan to work with a traditional
software development methodology, planning is even more imperative, as the
company will need a complete breakdown of the project schedule, budget, and
features in order to give you an accurate quote. This extensive planning is
also ideal when working with an offshore company.

Knowing what resources, services, and skills are required to complete your project will save you a lot of time when searching for the perfect custom software development company for you.

2. Stay involved in communications

Over the course of your project, it is very
unlikely that everything will go as planned. If something does go wrong, you
don’t want to find out two months later when the software is already completed.
In the same way your original project plan is crucial to commencing your
project, maintaining detailed, insightful communications throughout development
ensures that any required changes or solutions can be relayed to the team
immediately.

Although most companies supply a project manager, remaining engaged in the development process allows you to recognize and address problems quicker. A key part of this is making sure developers understand your vision and know that they can be open with you about problems. Establishing the preferred communication platforms makes it much easier to be involved. In general, it is much easier to stay in the loop when you and the development team share a language, culture, working hours. If you’re working with a team overseas, there are unique communication challenges to overcome.

3. Be tentative with commitments

There is an old business concept that may
seem harsh but applies well for hiring a software development company: hire
slow, fire fast. Paying a software development team is a large investment and
you don’t want to be wasting money on a company that isn’t working effectively.
Don’t be in a rush to jump on the first cheap quote you see. Wait until it is
clear to you that a company is the right fit for your company, you have checked
their previous work, and have established a reliable method of communicating
with them.

In the same vein, move on promptly from
developers that aren’t working productively; the longer you wait, the more
money you’re wasting.

For this reason, be careful with companies that want some equity in the company for developing the product. Although this will cut the upfront costs, you become tied down to another company. Don’t commit this deeply unless you are completely sure that they will be reliable.

4. Negotiating your contracts

Outside of compensation and deadlines, there’s still a lot to be agreed upon when striking a deal with a development company. Proper legal advice should be obtained when negotiating any contract. Pallett Valo is a business law firm that is partnered with the Altitude Accelerator.

Statement of work (SOW)

The SOW essentially outlines the guidelines and expectations of the project. This includes the timeline, features, pay structure, etc. This is contract is pretty straightforward if you have knowledge of what services you require and how long the project will take to complete.

Non-disclosure agreement (NDA)

An NDA protects your company’s private information that the partnering development company may be exposed to. It ensures that they cannot release that information to anyone, especially competitors. This contract should also be straightforward and mutual between the two parties involved.

Master service agreement (MSA)

The MSA is where many of the more intricate
details of your relationship are outlined. There are a few key sections to keep
in mind when you are negotiating it:

By negotiating a non-compete clause
you ensure the development company cannot work with your competitors right
after building your proprietary technology.

You may want to negotiate the removal of a non-solicitation
clause, which would prevent you from hiring the company’s developers to
work for you in the future. That could be a way to avoid the issues involved in
handing off third-party code to in-house developers.

You also will want to negotiate ownership
of your own intellectual property (IP). That means the code is your
property after it is written, not just licensed to you. If there are
accessories, plug-ins, or hardware that are compatible with your product, make
sure you know who owns them.

By allowing a portfolio usage clause, you may be able to get a discount by letting the company use your software in their portfolio.

Summary: Four tips for getting the most out outsourcing software development

  • Planning the details of your
    project ahead of time makes it easier to find the right software development
    team and be open about expectations from the start
  • By staying involved in
    communications throughout the project’s duration, you can quickly identify and
    address problems that arise
  • Hire slow, fire fast; you don’t
    want to waste money on unproductive teams
  • Statement of work and
    non-disclosure agreements are generally straightforward while there are several
    important clauses in the master service agreement to keep in mind

Concluding takeaways

  • Custom software companies vary
    widely in size and the services they provide, ranging from small boutiques of a
    few people to large agencies of hundreds of people
  • Don’t outsource software
    development if it’s your company’s core competency
  • Do outsource if you need a
    complete product built quickly and want in-house employees to focus on business
    operations
  • Clutch is the main site to
    search for development firms but several others are effective as well
  • Beyond their reputation and
    technical fit, open and honest communication from both sides is integral to
    choosing a development company
  • Hiring a software development
    company is likely the most expensive option for building your software; but
    outsourcing offshore can be two to three times cheaper than locally
  • Preparing your project plan
    well ahead of development makes it easier to find the perfect development team
    for you

<– Back to “How to Make Software Products: Six Options for Startups”