Is your software outsourcing relationship on autopilot or even worse, in danger of crashing? It might be if you have outsourced for an extended period of time with the same service provider. Being in autopilot mode can be okay if you are moving forward in the right direction and getting good results.
First do your homework to see if the results you’re getting are measuring up against industry standards. If they are falling short, take corrective action and consider the benefits of switching to a different service provider.
Too often I see larger companies suffer from poor software outsourcing results, which stem from a rushed vendor selection. Often the choice was based solely on price without careful consideration of engineering excellence, cultural fit or the location of the outsourcing company. Even calling the company you hire to develop your software a “vendor” is wrong. Instead, they should be viewed as your partner in development. More about that later.
Should outsourcing always make me want to pull my hair out?
Many companies accept substandard outsourcing performance because quite frankly, they don’t know what they don’t know. The executive mindset is usually something like, “Well, that’s just how outsourcing works… poorly!” They don’t feel empowered to make improvements, especially if they were not part of the decision to outsource or they didn’t participate in the selection of the outsourced company in the first place. In fact, managers who have had outsourcing thrust upon them may feel completely unmotivated to make it work and exhibit passive-aggressive behavior towards the whole endeavor.
Cost savings will always be a factor, but most companies turn to outsourcing today because they just can’t hire enough developers locally. However, many are discouraged from considering outsourcing at all because they think it means hiring a bunch of relatively inexpensive developers who are hard to manage in some exotic location. But the concept of hiring cheap developers is not outsourcing! Outsourcing is hiring a company that can deliver a service better than if you could hire those local developers. If your software outsourcing company doesn’t fit that description, then your unsatisfying outsourcing relationship will contribute to a many more headaches down the road.
Purchasing your outsourcing vendor
Too often companies turn their efforts surrounding hiring a software development company into a purchasing process. They attempt to negotiate the cheapest deal possible, and as a result, nearly guarantee that they will receive poor service, inexperienced developers and poor quality software. Companies should approach hiring a software outsourcing company with the same mindset they would use to hire their own internal staff.
Hiring of a software outsourcing company for cost savings alone often leads to having an excessive number of junior developers on your team. What’s excessive? Well, if you have one senior developer and the rest are junior (to keep the cost low), then you are likely going to see subpar results. The junior developers are often too intimidated to challenge the senior staff and are even less likely to speak with you, the client, because of a high “power distance” that exists in some cultures. In contrast, high performance teams have a good mix of junior, intermediate and senior members who communicate and work together well.
Measurements do matter!
Here are some metrics you can use to measure your existing software outsourcing relationship:
- New features per sprint (or month)
- Work units (use cases, stories, etc.) per sprint
- Delays in meeting releases
- Mentoring time for junior engineers
- Amount of rework/repeat bug fixes
- Average time for bug fixes
There’s no single set of numbers to aim for but you should see steady improvement in productivity over time. If you are doing agile development with your outsourced team, then Atlassian recommends a few additional agile metrics.
Replacing your vendor with a partner
Hiring an outsourced software development team is like hiring employees. The outsourced team is your team. Therefore, it pays to be fair and equitable to the team you hire. You want your outsourcing partner’s developers to be people you can work with over time, to produce successful apps that will benefit your company. And you should expect to pay for that service, the same way you pay for production from your internal employees.
Here’s what to look for in a new software outsourcing partner company:
- Excellent recruiting and training – a well-defined interviewing and onboarding process with metrics for candidates, speed of hiring and retention
- Company culture of innovation – with an engineering/problem-solving mindset
- Partner/team size ratio – your team is 5 percent to 20 percent of your partner’s total full-time employees (FTEs)
- Executive commitment – at a partner company that is big enough to scale, and small enough to care
- Location and time zone – easy to travel, desired workday overlap
- Acceptable rates – the global cost of outsourcing is in the $20 to $50 per hour range across most offshore locations
What’s this all mean?
Use the metrics and other aspects of the relationship presented here to review the performance with your outsourced software development partner several times per year. Doing this as part of an agile retrospective for a major release is a good idea. Think of your software outsourcing company as a partner. Like a marriage, sometimes the relationship can get stale. A stale and uncaring software outsourcing relationship is like a marriage without communication. Do what you can to keep the relationship fresh. If that’s unfeasible, then now you know what to look for in a true partner when it’s time for you to divorce your existing outsourcing vendor.
This article is published as part of the IDG Contributor Network. Want to Join?