How to Outsource Web App Development: Ultimate Cheat Sheet by RubyGarage
- 6425 views
- 17 min
- Sep 09, 2021
In-house or outsourced? is one of the hottest questions when it comes to developing web applications. On the one hand, clients fear that an outsourced team won’t be sufficiently involved, skilled, motivated, or controlled to succeed. On the other hand, clients have doubts about the higher costs of in-house development, recruiting woes, and other matters of varying importance.
In this article, we consider the issue thoroughly. You’ll learn what software development outsourcing is, as well as its types, pros, and cons. Then, we’ll debunk some outsourcing-related myths and give you a cheat sheet on how to successfully outsource web app development.
What is software development outsourcing?
There are many definitions of outsourcing, so let’s make things clear.
Software development outsourcing is using an external contractor to complete software development activities rather than an in-house team.
Types of software development outsourcing
We can classify web development outsourcing as onshore, nearshore, or offshore. This classification is based on the geography of the contractor in relation to the client.
When a contractor is located in the same country as the client, this is called onshore outsourcing.
Pros and cons of onshore outsourcing:
+ No time shift
+ No or relatively few cultural and language barriers
− Lower cost-saving potential
If the web development outsourcing service provider is located in the same or close time zone as the client but somewhere in a nearby country, it’s nearshore outsourcing. This option is quite popular.
Pros and cons of nearshore outsourcing:
+ No or little time shift
+ Few cultural or language barriers
− Some cost-saving potential
All other cases are offshore web development outsourcing. This means the contractor can be located anywhere outside of the client’s time zone.
Pros and cons of offshore outsourcing:
+ The most cost-saving potential
+ Can find the best fitting team
− Time difference can be huge
− Cultural and language differences can also be huge
Why do companies outsource web development?
Now, let’s identify and analyze the reasons for outsourcing. Each company may have its own main logic for outsourcing, but there are several reasons that are particularly common.
Businesses almost always run non-core operations less efficiently than core ones. Moreover, these non-core operations are often run only once but may require heavy preparation.
For example, an automotive parts manufacturer is probably quite efficient at designing and manufacturing motor vehicle parts that they produce en masse. But developing an ERP system isn’t a task they’ve done before or are going to do in the future. That’s why hiring specialists, planning, developing, and delivering an ERP on their own would likely be too costly for the manufacturer. And when the system was finished, the specialists would no longer be needed.
Reducing costs was the primary goal of web development outsourcing for 70 percent of Deloitte Global Outsourcing Survey 2020 respondents. What’s interesting is that the share in 2016 was just 59 percent. You may look at older research and compare.
Achieve greater flexibility
For a number of years, focusing on core activities was the second most important reason why companies chose outsourcing, but now flexibility is the new runner-up. Being ready for any changes is what today’s businesses really need to stay competitive.
For service providers, this means readiness for changes, the possibility of providing fast deployment, Agile processes adoption, the use of modular architectures, etc.
Shorten time to market
In our article on reducing time to market for digital products, we showed that a shorter time to market (TTM) often costs the same as a longer one. At the same time, it almost always leads to higher revenue.
Most startups understand these findings more or less clearly. The world is changing faster and faster, which requires faster actions from businesses to outperform competitors.
These are only the top three reasons for companies to outsource. This list has changed significantly over the last couple of years. But outsourcing itself is still maintaining its popularity. Now, we’ll uncover the roots of this popularity.
Benefits of outsourcing web development
Based on data from Glassdoor.com, the average salary of a senior Ruby on Rails developer across the US is $110,000.* In Eastern Europe, it’s half or less. But you also need to consider other essential costs you will incur when hiring in-house: rent for office space, work equipment, insurance, etc. The cost savings of outsourcing for US-based companies can easily be multi-fold, but more often the savings are between 20 percent and 75 percent.
* Data current as of September 2021
When you outsource, the contractor takes on part of your risks as their own. A fixed price model allows you to put up most of the risks on the contractor’s side, while the time and materials model distributes risks between both parties.
No hiring hassles
If you want to build your own team, you must:
- Establish the hiring process
- Find candidates
- Convince them to work on your project
- Successfully onboard your new specialists
- Mentor them and encourage their professional development
In the case of outsourcing, you’ll avoid all these unpleasant actions.
Get the expertise you lack
Software outsourcing opens the door to finding almost any expertise from all over the globe. Outsourcing specialists can provide you with non-trivial ideas thanks to their fresh and unbiased looks. Moreover, an international team can be helpful when it comes to developing globally-oriented software.
Focus on essentials
The best outsourcing strategy is to focus on those things that you’re able to do better than others. All other duties are better outsourced to achieve the top possible performance.
Once you’ve hired an outsourcing team, you’ll have more time to do the things no one else can do for your project better. Business modeling, market or competitor analysis, generating and validating hypotheses — do the important things your development outsourcing team doesn’t.
Employ the best talent
When choosing the outsourcing team that’s appropriate for your web application development project, you can consider the best companies from all over the world. Catch this opportunity and find the best possible talents for your budget. You may even reinforce your team in the middle of a process by adding experts when necessary.
Micromanagement isn’t a good thing when it comes to software development outsourcing. But sometimes, having the leverage to fire specialists fast can be useful.
Develop and deliver rapidly
The number of websites released worldwide every year is huge. This means that you must hurry up with your release to have a better chance of success. Time to market is critical for market penetration and revenue.
If your outsourcing team is reliable enough, they can cover all known risks so you can be more or less calm during the development process.
Weaknesses of web development outsourcing
The team isn’t fully under your control
The issue with insufficient control lies in a level of transparency lower than in a case of developing in-house. As the client, you rely on a team that’s located far away and is supervised by someone who is not your own employee. For those new to outsourcing, this can make it hard to track progress and stay on the same page with the team.
Time zone differences
For offshore outsourcing, the difference between time zones may be from 1 to 12 hours. In most cases, the time zone difference is one of the greatest challenges when working with an outsourcing team. To eliminate serious delays in communication, clients usually prefer contractors with a time difference of fewer than four hours.
More effort required to ensure security
When you entrust a contractor with your corporate secrets, there’s some risk of a data leak. This doesn’t happen in most cases, but a certain number of unreputable contractors exist.
Commitment can be rather low
Don’t think outsourced developers will fall in love with your web application from the first glance. The truth is that they shouldn’t, but they should at least be positive about your product. When team members don’t like the product they’re working on, they will likely show low performance and high turnover.
It’s your duty to ensure your team that your product is worth the effort. Share your mission and values with the team during your first meeting.
Myths associated with web development outsourcing
The world of software outsourcing is full of myths and prejudices. Below, we’ve detailed and busted the most common myths.
Myth #1 — Outsourcing is for big businesses only
IT outsourcing really started in the last decades of the twentieth century in the form of onshore enterprise-oriented service businesses. Then, with the development of the internet and globalization, this business model evolved step by step, turning into an offshore type of service.
Since the first IT outsourcing companies arrived on the market, the average value of outsourcing contracts has dropped many times over, making outsourcing services accessible to small and medium-sized businesses (SMBs). The growing popularity of outsourcing among SMBs was also inspired by the launch of freelance marketplaces like Elance and ODesk (now both merged into Upwork with approximately 145,000 core clients who spend at least $5,000 per month each).
Myth #2 — One bad attempt means it’s not worth trying
If a team fails in their first outsourcing attempt, the myth is that they will fail again and again. However, we’re sure that everybody deserves a second chance. And a company that’s trying its hardest to stay competitive will definitely do all it can to take advantage of an opportunity.
The overwhelming majority of famous and successful IT services companies have at least one story of failure in their portfolio. That means they all got second chances and used them successfully.
Myth #3 — Intercultural communication is a nightmare
There are strong assumptions among non-development companies that communicating with people from other cultures is painstaking. But the challenge is greatly exaggerated. Yes, sometimes it’s not so easy to agree on terms with people whose culture is completely different.
But almost all communication issues you can encounter are addressable. Remember that the contractor, no matter where they are from, is first of all an IT company. And professional IT culture is more or less similar everywhere.
Myth #4 — There will be major language issues
Many IT companies across the globe use English as an official working language. And if one of these companies looks for clients globally, they will definitely speak English.
Well, sometimes the issue is really existing. But it’s quite easy to identify that there is a problem at the very beginning. In troubled teams, salespersons usually have much higher English proficiency than engineers.
So, if your negotiant speaks English poorly, don’t expect the remaining team will do it better. In a case, the salesperson sounds fine, ask for a meeting with the team and try to speak with each engineer. You’ll definitely understand the real situation.
Myth #5 — I’m the only one who can do it
This misbelief is quite common among startups and other small companies. Initially, founders do everything with their own hands. Next, when the company sees its first success and begins to grow, deputizing turns out to be rather hard. Just force yourself to start entrusting things to others. If you don’t, your tasks won’t ever be finished.
Myth #6 — Both the quality of service and results will be poor
This point is also about the ability to trust others. If you have serious problems with trust, try to involve an independent third party at the contract signing stage for assessment and control.
Just consider: there are tons of highly successful software outsourcing companies globally with a more or less long operational history. If these companies delivered the software of poor quality at least occasionally, they definitely being fallen into bankruptcy due to ruined reputations.
Myth #7 — Outsourcers will use my personal data
This concern is pretty obvious: There is always a chance of personal data being stolen. But let’s think rationally about this. The potential profit from your personal data for a contractor is usually low or even absent. The reputational harm to your contractor, if a data breach were detected, would be many times higher than any possible profit. So unless your data is a treasure map or a Perpetuum Mobile design specification, you don’t have to concern yourself with this.
How to outsource web app development: A cheat sheet by RubyGarage
We’ve formed a cheat sheet that will help you choose the right web application development contractor. This cheat sheet has been proven on dozens of projects, so you can use it confidently.
1. Determine whether you need outsourcing in the first place
This step is for thinking twice and then deciding whether it’s worth outsourcing in your specific case. Above, you can find two detailed lists of the benefits and weaknesses software outsourcing can bring to your business. You also can read our article related to the topic. Weigh your options carefully and only then make a decision.
A good example of a situation when outsourcing is highly recommended is when your office is located in San Francisco. First, salaries in the Bay Area are fairly high (~$129,000 for senior PHP developers, for example). Second, there are collateral costs: $87.18 USD on average per square foot of office space per month results in a shocking $108,000 per employee per year. That 20 to 75 percent savings estimation we mentioned before now looks too conservative.
Other signs you should consider outsourcing are:
- A lack of required specialists in your country or city
- You and your team having insufficient experience within the required technology or business niche
- Having serious doubts about the success of your project if you develop it in-house
2. Specify what to outsource
It’s not obligatory to outsource your web app from scratch to delivery. The development process is divided into several semi-independent stages. Here are the stages we differentiate between at RubyGarage:
- Business & functional requirements engineering
- UI/UX design
- Backend & frontend development
- Testing & delivery
Most often, the development and testing stages are outsourced. To outsource any stage of the development process, you must have a set of artifacts to give your new team before. The next point is about these artifacts.
3. Set clear goals and requirements
First of all, you should detail what goals you want to achieve as a result of developing your web application. Your goals must correlate with the needs of your business, whether they are to solve issues or catch opportunities (e.g. to cut spending or generate more revenue).
For example, your goal might be:
- Launch an application with a required list of features no later than six months from the development start.
As for requirements, you should analyze the business needs and goals you set, then develop a vision statement for your web application, form the scope of your app, and prepare a requirements specification.
At each stage, different forms of requirements are common. During the development stage, both backend and frontend teams require functional specifications in the form of epics, user stories, or scenarios. In addition, an important source of requirements, especially for the HTML/CSS team, is a set of UI/UX mockups.
4. Calculate the budget and time
Once you understand the scope, next you should clarify the time required to finish your web application as well as the approximate budget. Remember that your numbers at this stage will be rough.
5. Choose the right team
This stage consists of several steps.
Choose the type of outsourcing. Now that you understand the difference between onshore, nearshore, and offshore outsourcing, just choose the option that’s most appropriate for your situation.
Choose a suitable outsourcing destination. Once you’ve chosen the type of outsourcing, geography is the next step. For onshore outsourcing, the contractor should be in the same country as your company. For nearshore outsourcing, select countries in your time zone with a developed software outsourcing market and acceptable average rates. Offshore outsourcing makes it possible to select a team with the highest possible skills match, coupled with low time zone difference, and the most attractive rates.
Form a list of candidate teams. You can use different sources to find candidate teams. We recommend using Upwork (the biggest global freelance marketplace), Toptal (a marketplace with high-skilled experts), Clutch (the most famous global directory of software development vendors), and LinkedIn (a professional social network with a huge B2B database).
- Evaluate teams. To make a long list short, you should analyze teams and find those that look better.
- First of all, check out portfolios. The right teams should have already completed projects that are similar to yours. Case studies must also be insightful and clear. Finally, try to clarify if the projects from a company’s portfolio were actually released.
- Look for references. Don’t hesitate to ask for references from past clients. Real references can tell you a lot about a client’s level of involvement, challenges you can expect, etc.
- Test knowledge of English. You must understand how well team members can communicate in English and avoid teams with communication difficulties.
- Choose the right team. Now you can compare the teams that have successfully passed your evaluation.
6. Manage your outsourcing team efficiently
It isn’t enough to choose the right team. You also have to manage it well. Below are the most important things you must pay attention to.
Employ an Agile methodology. Today’s web application development must be change-friendly and built around incremental delivery (initial release + regular updates). This is why we highly recommend using any of the Agile methodologies.
Agile benefits include:
— Efficient planning involving all development team members
— Self-sustaining teams containing all roles required for planning the development process and following the plan
— Freezes the time and budget, keeping the scope changeable
Launch an iterative process based on Scrum. If you hire in-house, your engineering staff is likely to be used to working with an Agile methodology. Most outsourcing companies also follow either Scrum or another Agile methodology.
Pay attention to schedule overlaps. An optimal schedule overlap is four hours per workday or more. But consider the schedule based on your preferences: some teams have only two overlapping hours and it’s enough for them.
Video calls are better than audio. To feel the presence of your team, arrange your daily meetings using video conferencing rather than audio. As a result, your team will be better motivated and involved.
Avoid micromanagement. Don’t try to control each and every aspect of the team’s work. It’s better to give the team a bit more freedom. If the team is formed correctly, the results will be satisfying.
Invest in the team. Help the team improve their skills and share knowledge and insights.
Meet in person. Even hordes of online meetings cannot take the place of face-to-face communication. Plan at least one offline meeting with the team. It will help you build much stronger relationships and achieve far better team performance.
Invest in communication. You should clearly understand that communication with the development team is important for your app’s success. During the current remote work boom, salaries are often the main reason why developers choose a project to work on. Always find time to speak with your team.
Here are our key takeaways:
- There are three types of outsourcing: onshore, nearshore, and offshore.
- Outsourcing is a way to cut development costs, make the development process more flexible, and reduce time to market.
- Outsourcing has more benefits than drawbacks.
- There are plenty of myths about outsourcing web application development, but we’ve busted the biggest.
- Use the cheat sheet above to avoid mistakes and reduce risks.
Web development outsourсing is using an external contractor to complete software development activities rather than an in-house team.
The main points are:
- To reduce costs
- To achieve greater flexibility
- To shorten time to market