With a highly-competitive software development market, it’s becoming increasingly harder to find engineers to work along and develop great apps. In light of this issue, many startups and enterprises are turning to look at alternatives to hiring, being nearshoring one of the most common practices.
Opting for developing an application with a virtual team, as your sole — or complementary — design and development crew is certainly different from having your engineers in-house. However, a few choices might considerably ease these hurdles, and it’s fairly common to see successful products built within this model, such as:
Skype, which was outsourced to Estonia in its early days (source)
Alibaba, which first outsourced its development to a US firm (source)
Being in touch with this market for quite a while, and having experienced many success and failure cases in the business of apps and outsourcing, I’ve decided to write this post to provide some important points that ought to be taken into account when choosing a virtual team.
1. Choose a team that is located in a country with overlapping work hours
Although remote, it is fundamental to have a sense of proximity with the team you’re working with. Being able to quickly assess your teammates via Slack or Hangouts helps the project flow with ease, and enables both ends to feel more secure about what they’re working with. Therefore, it’s essential for them to have some overlapping working hours, so that one of the sides doesn’t have work at uncomfortable times, generating unnecessary stressful situations.
2. Your virtual team should speak your language and value communication
It’s paramount to be able to get clarity on what’s being worked on. Besides using tools like JIRA or Trello to get an overview of the project’s progress, it’s also a good idea to choose a team that you’re able to reach out to individually, and that’ll be able to quickly respond – in your language – with a status update.
3. Make sure you’re being asked the right questions and being included in the process
Building software is a complex task and requires lots of planning and iterating. If you’re not familiar with this environment, you might even need guidance on which questions to ask, and you want to be sure you’re extremely included in this process, to make sure your application evolves and remains loyal to your vision and goals.
4. Be careful with miraculous estimates
Similarly to a building, a piece of functioning software can be developed in several ways. Some quick & dirty, some well-architected and scalable. If you’re estimating your project with several companies, and one of them stands out for being too fast, be extra careful — they’re probably not worrying about how your product might grow and evolve in the future.
5. Lower prices might be interesting, but they’ll turn out to be expensive in the long run
Software developers’ and designers’ work quality is highly-related to how satisfied they are with the work they do – and how much their compensation is. Some companies work in a production-line system that is very cheap (and provide the worst working conditions to their developers). Similarly to #3, be careful: you probably won’t get a great product by working with dissatisfied people in poor conditions.
6. Value companies that want to participate in the success of your product
Some companies charge for their work on a pure hourly basis, and won’t necessarily leverage the business experience they’ve gathered throughout time when working on a new product, since they wouldn’t benefit from its success. When choosing a virtual team, try to find people that are willing to get part of their compensation proportionally to the product’s success (or in form of stock options, for example), so that you’ll be sure they’ll make every effort to build the best product they can.
Wrapping Up
All in all, there’s no magic rule: you should find a company that is willing to team up with you and work towards the same vision. If you have any questions, or any other tips, feel free to leave them in the comments section.
Progressive rock lover, programming languages aficionado, full-stack web/mobile developer and pentesting enthusiast. Legend says he's never lost a Pokémon battle.