Software Consultancy Landscape
Published: 2024-01-24 04:03:10

# Who should read this guide?
This guide was specifically written for small and medium sized companies based in the United States that are struggling to understand the software consultancy landscape or struggling to choose the right software consultancy partner. This guide was also written for startups without technical programming experience who are looking to outsource part or all of their software development needs.

# Introduction
Hiring a software development company may be one of the hardest and most important parts of any business. For a small company it could mean making or breaking their business. For medium sized companies it could mean losing hundreds of thousands, or millions of dollars. For a startup it could mean losing an investor because the MVP has critical bugs or wasn’t delivered on time.

The ultimate goal of hiring a software development company is to find the right team for the project. Each project is unique and each development team is unique. This means that for each new software project, the company should reevaluate their consultancy options and make the best decision for that instance. 

This article will cover the types of software development companies to choose from, the pros and cons of each type, and who should hire that type of company.

In the world of software development consultancy there are three major types of companies. Each type of company has its pluses and minuses. No one type of company is inherently better than another, but within each type the differences could be huge. It is the responsibility of the company to evaluate their software needs, budget, and research into different consultancies to find the best option. Below are the three major types of software development consultancies.

- Onshore Company
- Offshore Company
- Hybrid Company


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/l6584s7h0zrhmg5xdtgi.png)

# Onshore Company
An onshore company is a development company that is located in the same country as your company. For this article that country will specifically be the United States. An onshore company can be further classified down to either local or non-local. A local company is defined by any company that is within driving distance. Conversely, a non-local company is defined by any company that is not within driving distance, and would require a flight to physically meet.

Onshore development companies are known for their customer support, development punctuality, great management, top code quality, and of course higher cost. The average hourly cost of an onshore development company is between $100-$200 an hour. Most companies simply can’t afford that price tag. Many large companies (Fortune 500, etc.) at some point will outsource part of a project or all of a project to an onshore company. Some companies may partner for longer periods of time, depending on if software is a core competency or not.

Onshore companies can range in team sizes of 5 developers in a small office to a full blown agency of 200+ employees with project managers, customer support specialists, developers, etc. Most people think that a larger company directly means the software delivered is better. While that may be the case in many situations, due to more vetted processes, specific management teams, etc, it is not the rule. There are many amazing smaller development teams that simply consist of a project manager and a core development team. [Evercode Labs](https://evercodelabs.com) strives to keep the teams small, with every team having one project manager and a handful of expert developers. I feel this is the best approach since the teams are focused, synergize well, and avoid work politics, which ruins productivity.

Another factor to consider with onshore development companies is if it’s local or non-local. The company could be either local (i.e. in your city or state) or  non-local (out of state, not in reasonable driving distance). No matter if the company is local or non-local, you will receive essentially the same deliverable and product. The biggest difference between local and non-local companies is that with local companies you are able to meet them in person without having to pay for a flight and hotel. If your company has chosen to hire an onshore company for your software development, I recommend going with a local company. I strongly believe that the relationship between your company and the consultancy will be much better when you are able to physically meet the team. Over the years, technologies such as Slack and Zoom have made working remotely with a team much easier and more effective. But I still believe that the personal connection and relationship that a company and its software development team create while working locally contribute to a better final product. Prices could very well differ between local and non-local onshore companies. For example, hiring a software development company from San Francisco will cost a lot more than hiring a company from Minneapolis. How else will the San Francisco consultancy pay for the high cost of living for its employees?  The quality of the software will be identical, but the final price won’t be.

## Who should use an Onshore Company?
Companies with a relatively large budget of >$100k should consider outsourcing to onshore companies. Furthermore, if a company requires the highest quality of code, then it is wise to strongly consider hiring an onshore resource. Since onshore companies are known for their solid management teams, it would also be wise for a company where software development is not a core competency to consider this path.

## Local or non-local company?
I recommend always going with a local company, if an onshore company is chosen. That being said, if a local company becomes too expensive, then a non-local company in a cheaper state will be a second recommendation.

## Onshore Company Pros

### Higher Quality
It is well known that onshore companies have some of the best development teams and deliver some of the best software in the world. Of course, that is not the rule, there are many amazing and well known offshore development companies too. These well known companies also charge quite the dollar.

Onshore companies are known for hiring some of the best talent from some of the top universities in the country. The rigor of American universities in UI/UX, software architecture, and project planning translate into top of the barral deliverables.

### Communication
Better communication between a company and a hired consulting firm directly translates into a better final software project. Hiring an onshore company provides the best and clearest communication, especially if they are local. Solid communication provides a clear development process.

In the modern business world there are many useful tools (Slack, Zoom, Skype, Jira, etc.) which bridge the gap between companies and provide a great collaboration experience. While communication between companies has increased to a point where all development can be done online, nothing beats working in the same time zones.

### Stronger Relationships
Working with an onshore company provides a stronger relationship between both companies. Especially if the company is local. While the innovations within the collaboration space have created a globalized ecosystem for development, nothing builds a relationship better than in person meetings, business dinners, and casual nights out.

Better business relationships lead to better software deliverables.

### Better Understanding of Localized UI/UX Design
Depending on the scope of the project, choosing a development team might be harder than first planned. Onshore companies are experts with their local UI/UX design patterns, and understand local users problems and app flows better than offshore companies. UI/UX design patterns between the Americas, Asia, Middle East, and anywhere else in the world could differ drastically. For example, in the Middle East most languages are right to left, and in China green means stop while red means go.

Onshore companies will have an inherent knowledge of their local landscape, which gives the software a more natural feel to the users. On the other hand, great companies will have experts in all countries, but it is still an important aspect to take into account.

## Onshore Company Cons

### Cost
Due to the higher cost of living in the United States the hourly rate will be higher compared to the other types of development companies. Prices will be around 3-4 times higher compared to offshore companies, and around 2-3 times more expensive for hybrid companies. Even between different regions in the United States there could be differences of up to 2 times (San Francisco vs. Minneapolis).

The higher prices are also due to a more robust and fuller company consisting of project management, human resources, marketing, etc. Furthermore, the cost of renting office space to house all employees can also be much higher than offshore companies.

### Project Start Time
Larger onshore companies have thorough processes that they need to follow, which could increase the project start time.

Furthermore, one of the main goals of onshore companies is to keep as much of their resources “off the bench” to keep profits high. This essentially means all resources are locked up in projects and any new projects will be put respectfully prioritized.


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gyy9l1cn2b2tkedia5e9.png)

# Offshore Company

An offshore company is a development company that is not located within the country your company is in. Some of the most well known countries are India, Ukraine, Bulgaria, Brazil, and Mexico. Offshore companies are known for their low development costs, which is great for budget conscious companies. On the other hand, they have also been known for their lower quality deliverables. This isn’t true for all offshore companies, but has been a big enough problem to build a reputation up.

If a company has decided to choose an offshore company for its development, it is recommended they have very detailed requirements,  a solid vision of the final deliverable, and an experienced inhouse management team. Furthermore, doing extensive research on the companies reputation, past projects, and management team will also minimize the risk of lower quality development.


## Who should use an Offshore Company?
Startups are a great candidate for offshore development. Most startups have a tight budget and have some room for mistakes. A startup that is looking to produce an MVP or add additional features to an initial release should also consider offshore development. Keep in mind that detailed requirements and solid management is a must to cross a project across the finish line.

Offshould should be considered if a project is less than $40K, since the capital risk is low.

Larger firms can also utilize offshore development if the requirements are thought-out and the management team is experienced. It is especially beneficial if someone on the management team speaks the offshore’s native language, since that can help iron out any uncertainties or ambiguities. 

## Offshore Company Pros

### Lower Cost
Offshore development tends to be cheaper compared to onshore and hybrid companies, and could go as low as 10% of onshore price. This is due to a combination of factors including, but not limited to, lower cost of living, lower cost of education, and lower barrier to work.

### Project Start Time
Along with lower costs, offshore development tends to have larger resource pools which directly translates into more available resources to quickly hop on new projects

## Offshore Company Cons

### Time Difference
Depending on what country a company decides to outsource too, the time difference could be a major factor in a project's success. The bigger the time difference between companies the harder it is to have solid communication. Without strong communication between companies a project will have a difficult road to completion. 

If a company chooses to offshore to China, then they will need to overcome a 12 hour time difference. This will be quite a challenge when one company ends their workday and the other starts their work day. Companies closer to American time zones will have an easier time. For example, Mexico, Brazil, or anything in South America. Companies in Europe also have relatively easier time differences.

### Communication
English is usually the second language for most offshore development companies, which will add an additional communication barrier between companies. Some offshore companies are more fluent in English than others.

In this new globalized world, it is rare to find a company that doesn’t speak at least some English.

### Lower Quality
Offshore companies have been known for their lower quality work. Of course, this is a stereotype, since there are amazing offshore resources out there. Lower quality work can be primarily traced back to lower detailed requirements, communication barriers, significant time zone differences, and cultural barriers. This can all be minimized with research and thoughtfulness.


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1ltlsql6lhtr2clporml.png)

# Hybrid Company
A hybrid company is a development company that is partially located within the United States and partially located offshore. This type of outsourcing company can also be either local or non-local. A hybrid development company is the best of both onshore and offshore with minimal cons.

The internal structure of a hybrid company is different from company to company, but primarily consists of the management team located onshore and the development team located offshore. Some companies may structure their teams to have developers both onshore and offshore, like [Evercode Labs](https://evercodelabs.com) or [MentorMate](https://mentormate.com/) . The most successful hybrid companies have management that speaks English fluently as well as fluently the language of the offshore country.

Hybrid companies have been the latest trend with startups, since the development quality is high, but for a much lower price. This is due to management being able to eliminate the common barriers of offshore companies, while also capitalizing on the lower cost of offshore development.

There has also been a rise in small and medium sized companies that want to outsource parts of their products to hybrid companies. These companies know they can fully transfer requirements and trust the management to be able to seamlessly transfer those requirements to the offshore team.

[Evercode Labs](https://evercodelabs.com) has structured the company in such a way. I have found having management that speaks both languages provides a clear path for developers offshore and reduces ambiguities. Our management fluently understands the US culture, nuances, and language, while also understanding the language and culture of our offshore country, Ukraine. Most of the management team was born in Ukraine, lived there for many years and have now built a life in America. They are also experts in their field, graduating from well known American universities, such as the University of Minnesota. We see this as the cornerstone to providing the best of both onshore and offshore, while also minimizing the cons. [Evercode Labs](https://evercodelabs.com) also has onshore developers who are both fluent in English and Ukrainian.

## Who should use a Hybrid Company?
Companies that are budget conscious but also want high quality code. Since hybrid companies prices are between onshore and offshore prices, it provides great cost to code quality benefit.

If a company has specific UX/UX requirements. Hybrid companies have a better understanding of local UI/UX design patterns compared to fully offshore outsourcing. Many hybrid companies have UI/UX designers that are onshore.

## Hybrid Company Pros

### Lower Cost
Hybrid companies have prices usually in the range of $35-$75 per hour. Development has the potential to be on par with onshore companies, but at a significant discount. The company outsourcing the work will have the added benefit of not having inhouse developer management.

### Communication
Since hybrid companies have management that is onshore, fluent in English, and a fluent understanding of American culture, it provides seamless communication on the same level as an onshore company. For all intents and purposes management can essentially be considered onshore.

### High Quality
Offshore developers are not inherently worse programmers compared to onshore developers. There are many experienced offshore developers, many work for the big companies. The reason why hybrid companies have high code quality is because the management has fluency in both spheres and is able to seamlessly transfer design and requirements. 

### Understanding of Localized UI/UX Design
Hybrid companies understand the local UI/UX design patterns since their designers are mostly on onshore. Of course, some hybrid companies could have their designers offshore, so it’s something that should be discussed if it is a concern.

## Hybrid Company Cons

### Project Start Time
As with onshore development companies, hybrid companies also want to minimize as much “on the bench” as possible. Hybrid companies have a larger talent pool offshore, but usually not as large as fully offshore companies.

### Time Difference
Depending on what country that hybrid company has their developers located, it could potentially cause time conflicts with a companies inhouse developers. This downside is minimized with management being onshore, thus being able to answer questions and transfer any information to the development team.

# Conclusion
For founders and executives navigating the landscape of software consultancy is a challenge. With the right knowledge it’s possible to understand what the right choice is for your company, project, and budget. Every company will come to a different decision and ultimately a different outcome. The choices of exactly what company to choose are endless and unique to each company. Feel free to contact me [here](https://yaroslawbagriy.com/) and I'll help the business decide what path to take.