Building a software product with a software development agency is often challenging for businesses. But it doesn't need to be, as long as you prepare for it.
When hiring the right software development company, you're looking for the right team for the right project and at the right time. How do you make all these factors align when launching a new project?
In this article, we focus on the key best practices for hiring a particular type of outsourcing vendor: a nearshore software development company. Read on to learn how to make the most of your partnership with a nearshoring vendor.
What is a nearshore software development company?
Nearshoring is an interesting alternative to offshoring.
It's a type of software development outsourcing where you delegate the task of building software to a team located in a neighboring country and possibly even the same time zone.
Most of the time, nearshoring is more cost-effective than developing software in-house, and it's an excellent option for staff augmentation if you need some extra talent for your team.
Benefits of hiring a nearshore team:
- Scalability – You can scale your team up and down to match the unique needs of your project. For example, you might need some developers now, but in a month, the situation might be different. By teaming up with a nearshore partner, you get just the resources you need.
- Massive time savings – Nearshoring allows finding skilled talents through a vendor who builds the team for you. That way, you don't have to go through the recruiting process yourself and dedicate time to finding suitable candidates.
- Easy communication – When hiring a team of nearshore developers, you will experience little to no difference in time zones. The outsourced team will be working on similar timelines and within the same hours, which accelerates its reaction time and helps in quick communication.
- More time for mission-critical tasks – By outsourcing the development of your product to another team, you gain more time to work on the big picture and make sure that your business is moving towards its key priorities.
Engagement models in nearshoring
A software development outsourcing company usually allows choosing from several engagement models. And here's the tricky part: you need to choose the right model for your project at a given time, taking into account its future development. However, it's smart to enter into negotiations knowing what sort of models are out there.
Fixed price nearshoring model
This model assumes that you have a complete requirements specification and a fixed budget.
You expect your provider to be 100% responsible for delivery within the set budget and timeframe.
This model works well for smaller projects where all the functional and non-functional requirements are clearly defined. The scope of the project needs to be known and visible for the fixed price model to work. Any changes applied to the project will risk affecting the fixed price that you agreed on before starting the project.
Time & Materials nearshoring model
This model has no fixed budget. As its name suggests, you will be paying for the time and resources the vendor will involve in realizing your project. Before getting started, you need to agree on hourly rates based on the overall skills and experience of the resources engaged in your project.
The outsourcing provider will take full responsibility for the delivery's quality. This model works well for projects with scopes that are hard to predict, and it's impossible to estimate the number of changes.
Dedicated development team / Team extension nearshoring model
When choosing this model, you may retain more project management control as the team will be working under your supervision. You will gain direct access to each team member.
In both variants, the outsourcing provider performs all of the recruitment tasks for your project. In team extension, you're often the one to screen and interview candidates before they become part of the team.
The vendor is also responsible for managing all of the administrative and infrastructure aspects of your collaboration.
In essence, what you get is a team of developers who are fully dedicated to your project without any retention obligations or employer commitments.
By picking the right candidates, you can build a team that matches your company culture, workflows, and development methodologies.
This model is a good match for long-term projects that have changing scopes or require full developer involvement. The pricing for a dedicated development team or team extension involve monthly payments that depend on the size of your team. These payments include the developer's salary and the outsourcing vendor's service fee.
How to hire the right nearshoring company
1. Create a shortlist of candidates
If you're just getting started in software development outsourcing, you're probably confused as to where you should start looking for the best company for your project. Your first step is getting references.
Personal recommendations are followed with a lot of trust, so references from your peers will remain one of the best ways to find a software development partner. If someone in your industry can recommend a company that builds great software solutions, feel free to put it on your shortlist.
Alternatively, you can use B2B directories like Clutch to look for software companies that match your requirements. You can also use a search engine like Google to start looking for the right type of development team. Companies out there are competing to gain your attention, so it's likely that you're going to find more than you need.
But before you list the company on your shortlist, you need to verify whether it's a good fit for your project.
2. Verify the company's fit
You will find hundreds, if not thousands, nearshore outsourcing providers out there. One internet search will instantly offer you hundreds of websites. But how can you be sure that these companies meet your standards and are a good partner material?
Here are things you need to check:
Check out the company portfolio
Take a look at the company's case studies section or portfolio and read the descriptions of their projects. Pay attention to details such as:
- tech stacks,
- team sizes,
- delivery timelines.
Note whether the company has any experience in building software for your industry.
In general, large development agencies have a lot of expertise in projects delivered for various industries while smaller firms focus on niche industries, products, or technologies. But don't write off a company because of its small size – this could be an advantage. Instead of hiring a jack of all trades, you could go for more focused services and relevant expertise.
Read client testimonials
The company you hire needs to have a proven record of successfully developed projects. Ask agencies for client testimonials.
Unless some of these clients came under a non-disclosure agreement, don't hesitate to get in touch with them personally and ask them how their collaboration:
- Were they successful?
- Were there any downsides to working with the company?
- Would they recommend it as a potential partner?
Remember to also check out the company's Clutch profile for client reviews.
Clear the legal aspects
If you're building software for a highly regulated industry such as fintech or healthtech, you might be dealing with sensitive data. That's why it's best to pick a partner operating under a particular jurisdiction that will ensure that you're both on the same page in terms of product development's legal aspects.
One example of that is hiring a company working under the US or EU jurisdictions. Then you can be sure that the company follows the same procedures and works in line with regulations such as the GDPR.
Verify technical capabilities
Every development agency has a specialty and offers more expertise in particular technologies. Make sure that this expertise aligns well with the requirements of your project. Before signing the contract, make sure that the company isn't taking on something that is just too big for it.
Assess the company's communication style
Communication is an essential aspect of a successful development process. If the company doesn't know how to handle communication with their clients, the internal communication practices might also be lacking. You need a partner that you can trust. Companies should be able to answer your questions promptly and honestly. How well an agency communicates with you upfront shows how things might go down if the project becomes difficult.
Check what's happening at the company
Agencies operate in a particular way that can impact your project. Here are a couple of red flags you should be looking for when assessing the current happenings in the company:
- key talent departures,
- cash flow problems,
- partner disagreements.
These events aren't going to be communicated to you directly, so read between the lines to understand what's happening inside the company. Don't be afraid to ask probing questions; after all, you need a trustworthy partner.
3. Get quotes from 3 to 5 companies
The next step is getting quotes from the companies on your shortlist. The quote's quality will show you the professional attitude and experience of the agency. In order for the provider to be accurate, you need to send them a clearly defined scope for your project.
Get a few quotes to evaluate and compare them. Large price differences might mean that you don't have enough clarity in the scope of your project or that the company in question might be proposing to deliver less than you expect.
You can be honest and tell a provider that you're talking to some other companies. Be clear about how you will be making your decision. Clarify where particular estimations or costs come from, and don't be afraid to ask questions. Lean on the salespeople to help solve your problems and come up with creative solutions. After all, getting hired is their priority.
4. Start with a pilot project
You never know how collaboration will go unless you try it. Sometimes placing a team staffing request and looking at the quality of candidates will help you to understand whether a potential partner is worth your attention. Why not collaborate on a pilot project and see how it goes? Test-drive a nearshoring company before dedicating your entire project to its teams.
5. Contract and negotiations
To team with a software development agency, you need to sign some important contracts:
Non-disclosure agreement (NDA)
Make sure that the NDA is mutual and doesn't include any obligation other than secrecy. These are pretty straightforward and a standard in the industry.
Master services agreement (MSA)
The master services agreement is a contract that includes many clauses that will apply to the overall relationship between your company and the provider. This is the place that leaves you with room for negotiation. Here are the most important items that you should be negotiating:
- Payment terms – This is obviously the most powerful and important item on the contract. If you offer to pay earlier or in larger deposits, you might be able to negotiate great discounts. Remember, a software development firm is a cash flow business. Cash in the door is always a good bargaining chip.
- Non-compete clause – It's good to keep this clause in most contracts because you don't want the software company working on your project and then going to a competitor and using all the experience and know-how to sell the same team. You're building a proprietary piece of technology, so don't be afraid of negotiating a multi-year non-compete clause in place to protect your software.
- Non-solicitation clause – This clause is standard. Consider removing it if you need an open door to hiring the product team in the future.
- Intellectual property – Make sure that you will own all the IP of the product. Everything created by the nearshore development team should be considered as a work product and become your ownership at the end of the work. Be careful about any plug-ins or modules that the team includes in your product. Make sure that you know who owns these parts of your software.
- Portfolio use – If you're a large company hiring a boutique software development agency, you can negotiate the price down by offering the company to allow using your software in their portfolio. If this isn't a case and you're not dealing with anything proprietary, it's also good to let the software development agency use your work for their portfolio. The team working on it will be more motivated to go above and beyond in working on the project. Moreover, this can also serve as a free advertisement for your software. If there's something confidential in your product, you need to give the final approval on all public information around it.
We hope that this guide helps you to hire the best nearshoring partner on the market. If you're looking for more insights, keep a close eye on our blog, where we share expert advice on outsourcing software development.
If you're on the lookout for a reliable nearshoring partner, get in touch with us. Our team has years of experience in delivering projects for different industries and verticals.