With a sea of never ending options choosing the right software company for your next project can be an overwhelming task.

This guide will prepare you to be one of the minorities and achieve success with your next software project.

Why You Should Outsource Software Development

When you decide to begin building your software you have two choices:

  1. Hire individual developers as employees and develop an “in-house” team.
  2. Outsource development to a dedicated software development company.

For nearly any business model outsourcing software development is going to be a better solution.

Working with a software development company will help you:

  • Reduce Costs
  • Reduce Hiring Mistakes
  • Scale your team

Reduce Costs:

According to employment data the TRUE cost of an in-house developer can be as much as 2.7x times the base salary.

Let’s not forget that software developers are expensive to employ to begin with!

A mid level software developer salary averages around $100,000 a year.

That means you could be paying your in house software developer $270,000+ every year just to work on your software. That’s for a mid level person. Multiply that by another 1.5x for a senior professional with 5+ years experience.

When you outsource software development you maintain a flat pricing structure. Meaning the hourly or project price is set. Taxes, insurance, non-billable time, team events, meetings, training, equipment costs not included. This saves you a substantial amount of money.

See the cost comparison below. According to the DCAA the real cost between an employee and consultant at $50.00 per hour is almost $100k a year.

In-house developers can cost as much as 2.7x times the base salary.

Reduce Costly Hiring Mistakes

It takes an average of 43 days to find and hire a new software developer. It’s standard in the industry to offer signing bonuses. Once hired the new employee must be trained on the new software. The average cost of acquisition of a software developer in today’s economy is between $22k – $32k. If you are utilizing a headhunter or agency you will also need to pay thousands more.

Here’s the next kicker… if you are lucky you will retain around 50% of the software developers you hire.

Even if you are lucky enough to hire the best people at reasonable salaries you are spending a great deal of time sifting through applications and holding interviews.

Ask yourself, what am I benefiting from creating an in house development team that justifies the huge costs?

Scale your team:

If you are utilizing an in house development team to build your software your scale is limited to the size of your team. This means that when you need to increase production you have only one option: hire another body.

But what happens when you need to scale down production after the initial project is developed? No one wants to work at a company that can’t ensure employment. And as soon as developers start to sense a slowdown in production they will start looking for alternative employment opportunities.

With an outsourced company scaling development resources up and down is on demand. A skilled outsource company can increase and decrease resources on a project in as little as 30 days.

Why you should not outsource software development:

When you decide to partner with a software development company you are partnering with a team of experienced, well-trained professionals ready to execute.

This can be overkill for small projects and one-off needs.

How to know you don’t need a software development company:
  1. You only need a landing page or simple static website. If you are looking to create a simple website or landing page you can achieve this with off the shelf solutions or a single developer.
  2. Your project will take a couple of weeks to complete and could be completed by a single person. Working with a software development company will likely be more expensive than finding a freelance developer to build your project.
  3. Your project will not require testing. If your project does not have many moving parts and is extremely simple you could save money by working with a freelance developer.
  4. You have a very small budget for your project. Many software development companies have minimum budget requirements.

Don’t pay for someone else’s office space!

When comparing software development companies you will encounter two organizational structures: On Site and Remote teams.

On Site Teams: Everyone works at a physical location. Typically the office operates during normal business hours.

Remote: Everyone works remotely from separate locations. Typically each employee works from a home or publicly shared office.

Historically there were some great advantages to having a team work at a single location. Historically…

In 2018 Automatic, a software company worth over $1 billion, closed it’s 14,000 square foot office space because most of the 550 person team worked remotely.

The software company Gitlab has been a fully remote software company from day one. Over 160 employees work from remote locations all over the world.

Why do you need to know this?

Because you shouldn’t pay for expensive office space! Whether it’s an in-house team at your company or a local software development company in your city the cost of development is going to include rent, utilities and other costs that go into a physical location.

The location of your software development team is irrelevant. Studies have shown benefits in productivity with remote teams. If some of the largest software companies in the world are running their businesses without a physical office  or in-house team there is no reason why you can’t do the same.

Remote monitoring, collaboration, video conference and communication tools provide teams with everything they need to out produce in-house development teams. Fully remote teams operate at much less the costs of an on location development team without sacrificing anything other than a shared coffee pot.

The Difference Between Nearshore, Offshore and Onshore Software Development Teams

If you are new to the world of software development you may not know the difference between the three types of software development teams.

Think of the “shore” as referring to your country.

Here is a simple way of understanding the difference between the

Offshore Software Development

Your business is in the USA and you have a team in India. Time Zone and location are very different. Typically cost effective and hard to maintain.

Offshore development teams are attractive due to the extremely low cost compared to onshore or nearshore. Offshore development teams typically reside in countries like China, Ukraine and India. The language barriers and large time zone differences make this option very difficult to be successful.

NearShore Software Development

Your business is in the USA and you have a team in Brazil. Time Zone and location are geographically similar. Typically lower cost than Onshore but language barriers may exist.

Nearshore development is a mix in cost and productivity. Nearshore is more expensive than offshore options but not quite as expensive as an onshore team. Productivity is better than offshore due to the time zone similarities. However in the case of North and South America the cultural and communication differences lead to increase in costs and time.

Onshore Software Development

Your business is in the USA and you have a team in the USA. Time Zone and locations are very similar. Typically the most expensive but easy to maintain.

Working with a team in a similar time zone that speaks the same language and shares the same culture is going to be the most productive option. This option can appear to be more expensive as hourly rates and project prices tend to be higher than the nearshore and offshore alternatives. The benefits quickly add up as the collaboration and cultural understanding lead to better solutions and faster development. Working with a team from your own country or a country that is similar to yours in culture will certainly lead to a more successful outcome.

Don’t forget about Quality!

When deciding which software team to go with remember it is like anything else. You get what you pay for. There are amazing software development teams all around the world, in every country.

Quality will ultimately depend on the provider you partner with. If you choose the right provider, regardless of location – the quality will show.

Regardless of the type of team you choose do your due diligence and go through our checklist to evaluate the company.

How to Choose the Right Software Development Company

Finding the right software development company is easier than you think. The process can seem daunting because there are literally thousands to choose from. How do you know you are getting the best? Lucky for you we have done all of the hard work for you and compiled 7 factors you need to consider when evaluating a software development company.

Quotes – our first defense against a bad software development company.

If a company’s quote is poorly written, extremely cheap compared to others or lacking details how can you expect the software they produce to be high quality.

You should expect any software development company that is worth their weight to:

  1. Ask questions about you, your needs and goals before quoting anything.
  2. Prepare a detailed document outlining HOW they plan to achieve your goals.
  3. Provide a breakdown of pricing and costs associated with the project.
  4. Explain the scope and quote to you so you have a full understanding of the process and what to expect if you go forward.

If something about the quote doesn’t add up or it seems to good to be true… RUN!

Communication

Search out companies that want to communicate with you. Make sure your company has a plan in place to hold regular progress meetings with you. Expect amazing customer service and hand holding. This is what seperates good software development companies from GREAT software development companies.

Of course when a company is courting you for new business it can be hard to tell how well things will continue once development begins. Get a sense of how the company operates by asking them to explain their procedure for handling client requests, questions and emergencies.

Avoid the YES sayers.

When something sounds too good to be true it probably is. When interviewing your prospective technology partner be wary of anyone that says yes to every idea and request you have. If you want to be successful gravitate towards the companies that are not afraid to say No. You want a partner that is looking out for your best interests.

Technology Stack

If you are a seasoned technical expert and know exactly what the technology stack should look like for your product look for firms that specialize in that specific technology.

If you are not a seasoned expert then avoid “specialists” when identifying a technology partner. You want a flexible partner that will recommend the best technology stack for your project. If a company only works in a specific language like Javascript you may end up with a project that is less than the best because your partner only knows how to use certain tools.

Customer Service – The secret sauce

When evaluating a potential technology partner make sure to ask about customer service and request management. You are going to have issues, questions and emergencies. You need to make sure your team is there for you when the time comes. If the company works 9-5 Monday – Friday that could spell disaster. The internet never sleeps and when an issue does occur it will likely be on a Saturday at 11pm. Find a partner that offers 24 hours a day 7 days a week service. Professional development companies offer this service.

Always Ask for Recommendations

Don’t be afraid to ask any software development company you are interviewing to provide contact information for past clients. And don’t be afraid to contact them. You will learn a lot from talking to current and past clients.

Look for reviews. Look at reviews of the company on Clutch.co and other review websites. Google them.

If the company you are interviewing does not have any reviews online and cannot provide you with client referrals… RUN!

Pricing Matters

The internet is full of pricing strategies for custom software and everyone has an opinion.

When it comes down to pricing there are really two different types: Fixed Price and Time and Material based. They may have different names: package pricing, hourly billing, value pricing… Whatever the company calls their pricing strategy it is going to really just be one of two types.

The truth is depending on the pricing strategy you go with you could pay thousands more for your project! Use the descriptions below to choose the pricing strategy that fits your budget, comfort level and project.

When to demand a Fixed Price strategy:

Fixed price means that you are provided a single price to create your project. A fixed price should be provided alongside a scope document and detailed development estimate to ensure you understand what is included in the price.

Fixed price projects are perfect for smaller development projects, under $50,000, that are well understood. The project does not include any revolutionary technology or large unknowns. You need to know what you want before committing to a fixed price. If you change your mind frequently this pricing option can quickly grow.

Selecting the fixed price for this size of project will allow you to keep to your budget and ensure that the development company will maintain to the initial scope of the project.

You will change your mind about certain features and changes will inevitably come up mid project. Your development team should provide a way to address these changes by either swapping features or including them in a scope amendment.

When Time & Materials based pricing saves you money:

Time and Materials is a fancy way of saying “hourly billing.” You are essentially paying for every minute spent working on your project. Development companies that advocate this billing strategy will sell you on the idea that it is a “fair” billing practice. If a feature takes longer than normal you pay more but if a feature takes less time you pay less.

This can be great for very small projects or when you are working to vet and test new ideas. Sometimes it is impossible to scope a project or set of features before development. In that case the T&M model is a perfect strategy to save you money. When it comes to unknowns a development company will pad a fixed price as much as 25%. That’s 25% you could be saving with this model.  

This pricing model can also get completely out of hand as new features are developed and scope is added. You can quickly exceed your budget. It is also very difficult to set a budget when you are unsure how much a project is going to cost.

So which pricing model is right for your project?

At Digital Awesome our experience has taught us that there is no best pricing model for our clients. In nearly every project we employ both the fixed price and time and materials pricing.

For clearly defined features a fixed price model gives you the peace of mind that you will receive a working project within a set budget.

For new features, minor enhancements, maintenance and project planning the T&M model allows you to be flexible in priorities and only invest what you want over a period of time.

Protecting your Intellectual Property:

“How to protect your Intellectual Property while outsourcing?”

“How to feel safe when you’r outsourcing software development for your company?”

These are common questions people ask when they are working with a software development company. Usually these questions are asked after the deal is made when the buyer is starting to question how safe their ideas really are.

When working with an experienced, professional software development company these questions should be addressed at the very beginning. We’ve prepared a quick list of what you need in order to ensure your Intellectual Property is safe when outsourcing your development.

Country of Operation:

Before we get into the contracts and conversations you should have with your software development partner it’s important to address the elephant in the room regarding IP security. In some countries your contracts aren’t worth the paper they are printed on. If you are going to work with an offShore provider make sure that the country they preside in will protect your IP and enforce your contracts.

Don’t assume the company will uphold a contract that you cannot enforce. We have worked entrepreneurs who have had their IP stolen after paying tens of thousands of dollars to offshore development companies. Unfortunately for them there was no recourse.

Contract:

The services contract provided by your software development company should contain a clause that specifically states that Intellectual Property is owned by you. This is extremely important.

Non-Disclosure Agreement (NDA)

You may or may not think your idea is worth protecting to the level of an NDA between you and the service provider. However, a great software development company will provide one anyways.

The NDA protects your business model and codebase. It also ensures that the company you are working with will not share your information with an external vendor. If they plan to outsource the work then they will need the vendor to sign an NDA.

Non-Complete Agreement (NCA)

The NCA prevents the software development company from revealing your ideas and innovations to competitors. The NCA will ensure that the company building the software will not take the knowledge of the business application and build a competitive product.

Security

Ask the software development company how they plan to protect your systems, data and users from theft. You can have the greatest working software in the world and a simple security breach can not only destroy your company but you may also be held liable.

Make sure the software company you are dealing with has a security protocol in place for server access, codebase access, passwords, data and encryption policies.

The Outsourced Development Company Interview Guide.

Below are a few lists of questions that can help you find the best software development partner.

General Questions:

  • Explain the process you take when creating an application?
  • How do you communicate on the progress, plans and problems?
  • How do you ensure I am kept in the loop when there are issues?
  • Tell me how you handled a project in the past that went wrong?
  • What do you expect from me during the process?
  • How will you ensure that the product will match our markets expectations?
  • How will we communicate and collaborate during the project?
  • Will the developers assigned to my project work on other projects at the same time?

Technical Questions

  • How do you ensure software quality?
  • Will I own ALL of the source code?
  • Do you create technical documentation during the development process?
  • How will you ensure my data, code and users are protected?

Business Questions

  • What makes you more capable than any other software team to develop my project?
  • How easy will it be to scale the team up or down?
  • What projects have you developed that are similar to mine?
  • Could you provide testimonials and references from your current or previous clients?
  • What is your experience working in my industry?

It all comes down to Trust

At the end of the day you need to know that the technical partner you have chosen is going to have your back.

At Digital Awesome we have been working with entrepreneurs and small businesses as their technical advisers for years. We have a long list of successful partners and five star testimonials.

We know that our success is only possible when we help our clients succeed. We love building great software and exceeding our customers expectations.