How to Find the Right Software Development Outsourcing Companies
This is the second post in our series on outsourcing software development. In the first post, we covered how outsourcing software development can help you overcome a talent shortage, long hiring cycles and high costs. Here, we help you find the right outsourcing partner.
So, you want to build software. Google, Apple, IBM and every software startup and app development agency do too. And they’re all engaged in furious international battles to find and recruit skilled software developers. With today’s high demand for talent, building the right team is harder than ever.
Hundreds of companies offer outsourced software development. Some are in the U.S., some in Central and South America, others in Eastern Europe or the Philippines. A significant majority are in India. These companies come in all sizes — from local, 10-person boutiques to international, billion dollar behemoths and everything in between. What makes selecting a partner difficult is that most outsourcing companies claim similar capabilities and experience.
So, how do you find just the right partner for your business?
Start by taking an inventory of your needs and placing parameters that will let you narrow your search. (Short on time? See the TL:DR — Too Long Don’t Read — summary at the bottom).
There are several factors you should consider when searching for a partner:
- Current IT gaps (which helps identify your needs)
- Long-term need vs short-term, fixed-scope activity
- Developing internal software vs. software products for the market
- Would you consider offshoring?
- Size of the outsourced development partner relative to your company and project budget
- The intricacies of your industry
- Considerations specific to outsourcing companies, such as:
- Management and process strengths
- City location
- Churn rate and training
- Learning culture
- Intellectual property approach and legal protection
- Intangibles and company culture
What IT Gaps are You Trying to Address?
Once you’ve identified there’s more work than people available to do it in your organization, you can start analyzing your situation. Capture your needs and priorities, and review them with your existing internal team in mind. You’re looking for the best match between potential outsourcing projects and existing skill sets and bandwidth. The items left over are your gaps, and the requirements of those gaps are a key input to your outsourcing partner selection. Once you’ve identified your IT gaps, you can drill down further and define which technology stacks you need help in, whether they’re established stacks, such as Java, .Net and LAMP, or more specialized technology skill sets.
For example, you have a portfolio of existing software systems you’re continuing to improve and you have a number of new applications you need to build in the coming year. Your team can handle some, but not all of that work. Through your analysis, you allocate your resources and end up with two gaps: resources to address bug fixes from feature enhancements and QA/testing for the new applications under development. With these gaps identified, you can establish the technology stacks you need help with and move to the next decision criteria.
Long-Term Need vs Short-Term, Fixed-Scope Activities
You know what gaps you need to fill, now it’s time to decide whether your gaps represent a long-term need or something that can be addressed in a fixed-scope manner. Long-term needs are best solved through a retainer agreement, so you’re effectively hiring a team of resources, but you’re doing it through an outsourcing company. In this approach, having the right people on your team from a relationship perspective is critical. You’re going to be working with them day in and day out, over the course of months or years, so knowing they can fit into your internal team is a high priority. In this case, you want to interview the potential team members yourself, you need to understand their individual skill sets, both technical and inter-personal. If you’ve determined you have a short-term need, then interviewing resources isn’t as important as getting the requirements and T’s and C’s of the contract. The resourcing is left directly to the outsourcer to figure out, because they need to make sure they can deliver the project on time, on budget and on scope.
Augmenting, a Proven Approach
At GlowTouch, we’ve seen the best results when technology companies augment a strong internal IT team with an outsourced team. In this case, the internal team manages the outsourcing partner, and everyone works together, pushing toward the same goals and contributing to regular product discussions. The outsourced team becomes an extension of your internal business and emotionally invests in it. This arrangement also provides the flexibility to increase or decrease team size and reassign resources to tasks as needed. Since software product development is an iterative process, having flexibility in managing resources allows you to respond to market demands effectively.
If you simply outsource a one-off project with a fixed scope, you often end up with a rigid structure, unable to adjust the development process and team in response to market demands. And outsourcing the entire process with no internal IT team to oversee the process often just doesn’t work, especially for more complex projects.
Internal Software vs. Market Software Products
Market-launched software products and internal-use applications often have different purposes, end users, design standards, user experiences and development processes. Launching market software products requires a product mindset, an understanding of your customer (the end user), recognition of the importance of a great UI and a strong ability to think critically and creatively, not just perform rote tasks. It’s often a higher standard to meet. If you’re building a software product for the external market, select an outsourcing partner that’s either built their own market products or specifically worked with software product companies on external software applications.
Size Matters — And Budget Too
Is your budget $20,000, $1 million or $10 million? The answer will instantly narrow your search by thousands of potential partners.
Let’s discuss a scenario where a $20 million revenue company wants to outsource software development on a budget of $100,000. Should it select a billion-dollar outsourcing company, a local, 10-person development shop or a mid-size outsourcing partner?
A $100,000 project will be insignificant for the billion dollar company, and as a result the client likely won’t get the desired attention. In addition, they’ll be dealing with a company that’s significantly larger than them, so if things get tough, the advantage is on the side of the outsourced vendor. On the other hand, the project will likely be too big for a company with just 10 people whose time is already split between multiple clients. The right partner would be big enough to handle the project as defined and have room to manage expanding scope, but small enough to provide hands-on management and individual client attention. In this example, the mid-size company — maybe a $10 million to $50 million firm — would be the best fit.
The right partner must not only have the technical chops but also the relevant industry experience and product understanding to develop your software. For example, if you’re building a healthcare product, you’ll want a partner who’s worked in healthcare — preferably across a number of different areas, understands HIPAA regulations and what they mean to a software company, and knows how to navigate the intricacies of the overall healthcare industry. Not every outsourced development company will have expertise in your specific domain, so you need to check and ask for case studies and reference customers too.