Outsourced Software Engineering TeamLet’s get started by saying that a partnership with a vendor of outsourced software engineering team isn’t a marriage and we’re better off not thinking of it that way in the context of “compatibility” between teams. There are many online resources for matching clients needing help and vendors providing resources – which are said to be in part based on compatibility, but which in the end come down a choice between qualified teams that are available to participate in the project in hand and the price they were willing to accept for their work. Those marketplaces and the process they embody are richer than they were a few years ago, but still – they come down to simple labor arbitrage. How much will it cost to resource a specific basket of technical skills and experience that can begin work when they are needed and will continue to be available throughout the project?

So, if we believe what we see in these applications, we would simply say that compatibility is generally defined in the market as:

  • Technical Skills
  • Work Experience
  • Availability
  • Stability
  • Cost, Cost, Cost

I’m emphasizing cost because we all know that given options, if a team meets four points out of the five, we’re usually willing to consider a price advantage as an offset for say – a little less in the work experience category if the cost is substantially lower than competing vendors. The willingness to exchange cost for resource requirements depends a lot on the perceived value of the completed work. If a project is considered to be of high strategic value and tied to core business needs, then the pressure on cost will be lower and the emphasis on getting a solid mix of skills, experience, stability and availability will increase.

But – Is that All We Care About? Do I really need an Outsourced Software Engineering Team?

When you consider the value of an outsourcing relationship, especially in the case of an outsourced software engineering team that can carry a lot of responsibility and value, what else should be on your list of factors to consider for contractor compatibility? In addition to the soft skills of human interaction – let’s consider what risks you should expect your outsourcing vendor to mitigate for you and what compatibility really means:

  • Real Cost – If we step away from just evaluating the cost/hour of the resources in the team – what is the total cost of engagement (TCE) of the outsourced team to the project? What costs is the outsourced team offsetting or absorbing as part of their responsibility or the responsibility of the vendor, that you would otherwise have to bear? What additional costs are you incurring because of the relationship? There are costs that are usually not accounted for within a project – like the cost of electricity during a heat wave or the cost of replacing workstations that are not up to specification for a team that can cause serious complications if there aren’t allowances for contingencies within the expected project overhead on the vendor side. Your cost of travel and travel time to a distant team can be significant but something you haven’t considered in your budget before the project began. These issues and more are not part of a resource-based, cost-per-hour calculation, but they are part of the real cost of an engagement none the less.


  • Stability – The stability of individuals on the team is one aspect to consider, but really that’s a retention issue. Within this focus, we should be concerned about the stability of the vendor and the local and national institutions they depend on? No matter how dependable the resources on your team might be, if they aren’t paid by their employer on time, in the amounts they expect – they will defect to a more stable environment. If the local and national government institutions do not offer the kind of business environment, infrastructure and/or political situation that is conducive to global outsourcing and technically-based businesses – it can make it much harder to maintain consistent business operations on the vendor side. On one hand, this is a part of the trust relationship you should have with your vendor partner, but on another – it is part of what you should evaluate in any outsourcing situation, no matter where they are located (from Asia to next-doorare) or what their past history indicates. A vendor that is open about their situation and is stable at all levels should be available to you for visits to their facilities as needed. They should let you know if there are problems they are facing that could impact their service – even for a very limited period of time. No situation is perfect all the time, but what you need is a clear, honest assessment of risk if there are problems so you can mitigate them on your side if necessary.


  • Legal and Security Environment – Your intellectual property (IP), protection from theft and the level of security provided is what comes to mind first for this point. Beyond the standard contract language required to protect your assets, international agreements and treaties (like NAFTA), standards (both legal and technical) are important to consider as well. It does no good to specify data encryption if the local environment is easily compromised by unknown individuals wandering through. No matter how good the legal protections, once the physical environment is compromised, your data and IP are at risk. In addition, you should be able to trust that your vendor is complying with local laws and requirements to ensure that issues do not arise from enforcement actions or other situations out of your control. Again, this is part of the stability of your vendor, but it is an important consideration just the same.


  • Infrastructure – Virtualized infrastructure is now relatively inexpensive and ubiquitous, so we shouldn’t have to be as worried as we once were about local servers and technology. There is a valid concern for the speed, stability and security of network access both locally and to the internet. The suitability and maintenance of workstations, printers and office equipment are also of concern. If maintenance issues are not attended to, if hardware (monitors, CPUs, network systems, etc.) are not maintained by dedicated IT, the risks for downtime and lower productivity of your team rise. The building infrastructure that supports your team is also a factor. Do they have an environment where the temperature, air circulation, noise, lighting, distraction and cleanliness are conducive to their work environment? Do they have good access to water, facilities for eating (away from their workstation), transportation, parking and all the other amenities that remove obstacles to their reliability and availability?


  • Real-Time Availability – It is easy to expect that your team will have regular working hours when you can expect to reach them and collaborate with them. But if they are several time zones away from your working hours or their usual working hours are broken up by long lunch breaks or late starts, your team may find themselves communicating with long delays over email or through intermediaries. For clients in the US, with outsourced teams in Asia, it isn’t unusual to find a 10-12 hour offset between teams. There are many stories of client team members who have to get up at 2am to discuss issues with their outsourced team on a regular basis. Experience suggests that you need at least a three-hour overlap between teams to avoid serious productivity losses when issues need to be cleared. However, this really depends on the nature of the project and the work being done. If a lean/agile methodology is being used with incremental development and stakeholder involvement in an evolving product, a three-hour overlap may not be enough to assure the development team isn’t sitting on its hands waiting for an answer, or isn’t spending hours or days going down the wrong path before they can be called back. In the case of a maintenance project involving minor changes to an existing application, the time offset may not be as critical. Every project, every team has its own needs and expectations. In agile software development, and product development in particular – the closer teams can operate together, collaborating in real time, the better the results and productivity will be.


  • Human Resources – It is easy to understand the cost and risk your vendor takes for the recruitment of the skilled resources you need. It is their ability to take this responsibility off your shoulders that is a big part of the value of the outsourcing relationship. But just as important is the training, education, incentives, assessment and benefits that contribute to the retention of your team over the long run. Most teams are composed of relatively young professionals that are starting families and the responsibilities of family life. Do they have any health benefits? Are childcare options available at a reasonable cost in their area? Are family emergencies considered important to their working life? These are issues that should be taken care of by regular policies and programs in the vendor partner organization. If they are not clearly addressed and transparent to members of your team, they can create unexpected delays or downtime. No one can assure that problems won’t happen or that an individual won’t decide that they would like to take an option to live in another city or change their career in some way – but vendors can make it much less likely and have contingency plans in place that can mitigate problems when they do happen.


  • Cultural Compatibility – Language, organizational culture and hierarchy, local customs and societal norms, knowledge of other cultures and work patterns – all these areas and more are part of cultural compatibility but are often ignored in the basic evaluation of a proposed team. Initially, language might be considered a recruitment concern that assures resources can actually communicate in the language of their clients with confidence and fluency. But over time, language skills require maintenance and reassessment alongside other soft skills that create an open, collaborative environment. Culture is an important issue in project team cohesiveness and the willingness of individual team members to step forward, ask questions, contribute ideas and share experiences. When used productively, cultural differences can be a huge asset because they can bring forward different points of view that a small, isolated team may not see. But when they produce unspoken barriers and moments of uncertainty – they can also create unexpected holes in communication and understanding. Does your outsourced team share cultural references to movies, foods, and sports with your team? It may seem like a small thing – but they don’t, how can they know what you mean when you say, “I’m gonna go shoot some baskets” or “I feel like crashing” or “Let’s bail on this idea?” It may seem silly, but phrases like these creep into our conversations all the time without considering how they sound to someone who is not aware of the references and how to apply them. Without an understanding of culture, they can stifle a conversation because some people in the team suddenly don’t know where the discussion is going or what they should say in response. Generally, language, the arts (books, movies, TV, etc.) and travel remove a lot of barriers, but it is also true that the closer geographically teams are, the more likely they are to share a common point of view and understanding.

These areas form the core of the compatibility concerns between teams and the areas you should be aware of when you consider an outsourced team for a project. It takes time and conversation to arrive at an understanding of how a team might work. In the end, it is always wise to consider visiting the workplace of your outsourced team wherever they are. You can learn a lot more in a couple of days on site than you can in weeks of conference calls and emails. How comfortable are you discussing and evaluating vendors on compatibility? It can be hard to get started into the discussion, but when you consider the downside of having blind spots in this area – the time is worth the effort.

Scio is a provider of nearshore, outsourced engineering teams for software development. We’re aware of and deal with the compatibility issues involved in forming project teams, so we structure our teams, services and engagements in ways that make it easier to engage and work together seamlessly. We have experience across many industries and many project sizes. If you are interested in hearing more about how our approach could benefit your next project – Contact Us.