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.\nFirst do your homework to see if the results you\u2019re 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.\nToo 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 \u201cvendor\u201d is wrong. Instead, they should be viewed as your partner in development. More about that later.\nShould outsourcing always make me want to pull my hair out?\nMany companies accept substandard outsourcing performance because quite frankly, they don\u2019t know what they don\u2019t know. The executive mindset is usually something like, \u201cWell, that\u2019s just how outsourcing works\u2026 poorly!\u201d They don\u2019t feel empowered to make improvements, especially if they were not part of the decision to outsource or they didn\u2019t 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.\nCost savings will always be a factor, but most companies turn to outsourcing today because they just can\u2019t 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\u2019t fit that description, then your unsatisfying outsourcing relationship will contribute to a many more headaches down the road.\nPurchasing your outsourcing vendor\nToo 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.\nHiring of a software outsourcing company for cost savings alone often leads to having an excessive number of junior developers on your team. What\u2019s 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 \u201cpower distance\u201d 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.\nMeasurements do matter!\nHere are some metrics you can use to measure your existing software outsourcing relationship:\n\nNew features per sprint (or month)\nWork units (use cases, stories, etc.) per sprint\nDelays in meeting releases\nMentoring time for junior engineers\nAmount of rework\/repeat bug fixes\nAverage time for bug fixes\n\nThere\u2019s 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.\nReplacing your vendor with a partner\nHiring 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\u2019s 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.\nHere\u2019s what to look for in a new software outsourcing partner company:\n\nExcellent recruiting and training \u2013 a well-defined interviewing and onboarding process with metrics for candidates, speed of hiring and retention\nCompany culture of innovation \u2013 with an engineering\/problem-solving mindset\nPartner\/team size ratio \u2013 your team is 5 percent to 20 percent of your partner\u2019s total full-time employees (FTEs)\nExecutive commitment \u2013 at a partner company that is big enough to scale, and small enough to care\nLocation and time zone \u2013 easy to travel, desired workday overlap\nAcceptable rates \u2013 the global cost of outsourcing is in the $20 to $50 per hour range across most offshore locations\n\nWhat\u2019s this all mean?\nUse 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\u2019s unfeasible, then now you know what to look for in a true partner when it\u2019s time for you to divorce your existing outsourcing vendor.