You’ve made up your mind: it’s time for you to hire a dedicated development team to speed up your game. But first things first. Before talking to potential providers, you need to understand your needs and define your broad requirements. This way, you already have a good idea of what you want even before starting the selection process.
If you’re not in the mood for reading though, you can check out this podcast instead.
If you're more of a visual learner, however, you can totally check out the rest of the article. Or you can do both.
I. Don’t start researching providers before you understand your struggles
The first thing to do isn’t to look it up to providers on the internet right away. Instead, consider this as a time for introspection. What are you struggling with the most? What made you look into outsourcing in the first place? What challenges do you expect the external provider to help with?
The answers to these questions will help you understand and identify your pain points which will help you better express your needs when you talk to providers.- This will then also help increase your chances of receiving relevant, constructive answers from them right away.
In addition, you should also look into the specific areas of your business that you expect to improve. Do you need to...
- Speed up hiring and have more software developers join your team?
- Access a specific set of skills that aren’t available locally?
- Fix your high staff turnover (by hiring outsourced developers from a stable company with better employee retention)?
- Cut your development costs?
- Get some technical advice?
There’s no better way to start than by formulating your main issues and naming your pain points. Take a paper and write them down. These pain points indicate where you will need the tech partner to help.
II. Picture your ideal software development provider
Searching for the right provider can feel like looking for a needle in a haystack: you know what you’re looking for (if you’ve properly identified your pain points as discussed in section I), but the range of options is so vast that you just don’t know where to start. It can easily get overwhelming.
Luckily, there are a number of factors that you can (and should!) evaluate to determine where your preferences lie, and can help you understand what makes one provider more suitable for your needs over another. Here are 4 general questions that can get you started and trigger reflection on some important considerations.
1. What collaboration and engagement model do you want?
No two business partnerships are the same. Remember that outsourcing is a strategic choice, not a simple hand-off of duties to a third-party. Take the time to describe how you envision the collaboration.
Are you looking for a simple staff augmentation company that only provides the strict resources you need, or one that really understands the software development industry and can act as a business partner with more substantial involvement in your project? Are you looking for help on a short term project, or do you plan to build a solid partnership with a provider who supplies a dedicated development team for the long run?
Again, getting the answers to these questions would provide some clarity on your software development needs and point you in the right direction.
2. What technologies do you need them to cover?
Make sure you pick professionals who are knowledgeable about the programming languages and technologies you’re working with. If they are well-versed with these, chances are, they also have senior engineers who have mastered your preferred technology.
Working with an outsourcing company that is on the same wavelength with you in terms of languages and technologies raises the bar on many levels. Plus, it also ensures that they’re able to fill in the gap in your team in case someone leaves.
3. Where do you want your partner to be located?
If you look only at the price tag, well, obviously, you’ll want to outsource from the country that offers the cheapest rates. But believe me, that would be a big mistake. Choosing the country from where you decide to outsource is not just about saving a buck; it will also help determine other important facts such as:
a) Time zone. If teams have to work together during the day, overlapping time zones (such as Australian companies outsourcing to the Philippines) makes the collaboration a lot easier.
b) Cultural accessibility. You need to genuinely understand each other, and I’m not just talking about speaking the same language here. I’m talking clear communication, common values, and transparency.
4. What company structure are you targeting, and what do you expect from the people behind it?
In most cases, you want to partner with a company that is big enough and with a wide talent pool such that it can accommodate your needs fast, but small enough to still genuinely care about you. An organization of this size can also guarantee easy access to their top management if ever things don’t go the way you want.
In my opinion, this may be one of the most important things to consider, especially when you want to entrust them with a vital part of your business. That’s why you need to be able to get to know the people behind the company—their background, their experience, and get a feel of whether they can be there for you in critical times and not just when the contract is about to be signed. There’s nothing more painful than being stuck in the maze of hierarchy.
III. Prepare clear talking points and requirements
Another crucial thing to do before even starting your search for a software development company is to list down all the current pain points in your organization, and what you would need from a provider. You would have covered these in sections 1 and 2, but don’t just think it over in your head, put them all down on paper and use this as your base reference when meeting with potential companies.
Now as mentioned above, there are a hundred ways you can explore to outsource software development. And depending on the type of outsourcing model you’re eyeing, you will need to provide other different pieces of information.
Let’s say you want to outsource a specific project that has a clearly defined final goal. In that case, you want to define all the requirements of the outlined tasks. That means preparing a detailed document that shapes the scope of work with clear deliverables and measurable objectives — expected features, user stories, etc.
On the other hand, if you’re looking to hire a team of in-house-like developers to support you in the long run, having a detailed list of expected features for a single specific project would be pointless. But writing down how you envision the collaboration, your conditions, expectations, and preferences, is absolutely necessary to avoid misunderstandings down the road.
Whichever collaboration model you’re choosing, the goal remains the same at this stage: prepare the groundwork for your future discussions with software development companies so they will know where you’re going. Don’t worry if you don’t know how you’re going where you’re going: business analysts will help you here. Just explain your business model and list down the expected results of your app or product, and your outsourced partner should be able to advise on how to achieve the desired goals. Ambiguity is inevitable in software development, but an Agile setup makes it manageable.
If what I’ve mentioned here sounds self-evident to you, great: you’re probably all set to start the actual research and evaluation work already. But I know from experience that these preliminary steps aren’t obvious for everyone, and this is exactly where the problem lies—failure to lay down the proper foundations first could cost far more down the road.
The payoff for doing good preliminary work to clarify your needs and intentions guarantees that you’re on the right track for a healthy collaboration with greater chances of success. It can take some time, but it is a lot less work than dealing with the misunderstandings and the ensuing consequences later on!
If you feel ready for the next step, check out this article: 4 ways to properly list (and shortlist) potential software development outsourcing firms to examine further.