Straight Talk about Deal Breakers when Outsourcing Software Development

Outsourcing is a highly popular solution to software development in the United States, and it’s unlikely this trend will change in the foreseeable future. A report published by Microsoft projects that 1.4 million technology jobs will be open in 2020, but only 400,000 graduates in computer science will be available to fill them. However, this projected shortage of 1 million programmers by 2020 doesn’t include self-taught programmers or those with a degree in another subject.

Thirty-eight percent of the surveyed CEOs indicated their firm was currently outsourcing offshore. The decision to outsource is a highly complex one and requires the consideration of a number of factors. It’s particularly important to identify the red flags that indicate when software engineering outsourcing may not be the best choice for development. These issues may be specific to the particular project or the outsourcing firm being considered for the project. The client organization may also have a culture that makes an outsourced project especially challenging to complete.

Project Issues

Business Finance identifies several factors that can break an outsourced project from the start. A project that depends on effective communications or requires a specific operating environment is not a good candidate for outsourcing. The application requirements must be straightforward, well documented and extremely stable. The application should not be groundbreaking, meaning that it’s relatively simple and doesn’t require new technology. It should also be easy to break the application down into independent modules.

The internal goal for any software engineering outsourcing project should be well understood across the entire organization. These projects typically have more than one driving factor, but it’s essential for the project stakeholders to agree on what they are. The drivers for outsourcing projects commonly include cost savings, greater access to needed skills and shorter time-to-market. Any outsourcing project will need to overcome internal barriers to completing the project under these constraints, so that shouldn’t be considered a red flag in itself.

The client organization should also have previous experience with outsourcing that had generally positive outcomes, especially other projects of a similar size and type. Ideally, the client has already outsourced projects to the same vendor. Any bad experiences with outsourcing in the past will certainly increase the difficulty of obtaining approval for outsourcing a new project.

Blame Assessment

The inappropriate assessment of blame is common in outsourcing projects, but it’s particularly critical in offshoring. The common response to a problem encountered during project development is to trace its cause back to an individual, rather than examining the procedures and processes that created the environment in which the problem occurred. This failure to separate problems from people is a common cause of failure in outsourcing since organizational norms have a strong tendency to identify a scapegoat.

However, this practice leads to greater enforcement of organizational hierarchy, which is exactly the opposite result needed for agile software development. An increase in hierarchy reduces the direct communication that project managers receive from developers, especially with respect to independent thought. This environment can be fatal to an outsourced project, especially if it doesn’t have full-time coordination between the client and outsource provider.

The practice of blaming an individual also means the same problems are likely to repeat themselves with only slight variations. This is especially likely to occur when the members of an outsourced team are hired to solve one problem and are then expected to solve a different problem. Phil Fersht, CEO of HfS Research, says, “Too many of these engagements are geared up to meet tactical goals in the early stages, and the customers staff their teams largely with procurement and contract management skills.” He adds, “It’s not until a contract reaches a functioning operational phase…that…customers quickly realize they do not possess a lot of skills to move beyond functional.”

Communication Problems

Outsourcing involves using software engineers in geographically distant locations by definition, which routinely causes communication problems. These problems may generally be categorized as problems with language, time and culture, according to Outsourcing for Online Business.

English is the world’s business language, but it isn’t everyone’s native language. The ability to read English is generally easier than speaking it, especially when the topic is highly technical. A team member who doesn’t speak conversational English is less likely to speak in meetings for fear of saying something wrong.

A significant difference in time zones between client and outsourcer can also cause significant communication problems. An outsourcer on the other side of the world means there will be little time during which both parties are working. A verbal conversation generally requires the members of one group to participate in a teleconference after business hours, which places them at a social disadvantage. Nearshore software development is less likely to experience this type of problem since the outsourcer is in a similar time zone as the client.

National culture is frequently a barrier to effective communication when team members are from different countries, even when they speak the same language. People from some cultures have a greater willingness to accept blame than others, which increases the divide between team members. The ability to speak about problems openly is particularly important in an outsourcing project with critical outcomes or shifting requirements.

Technological Differences

Technology workers may appear to be in sync across the globe, but this isn’t always the case. Access to the latest technology may be limited on a regional basis due to issues such as education, licensing, experience and preference. Gaps in methodologies may be even greater, especially with respect to agile development. This methodology relies upon real-time collaboration and communication, which is often limited in outsourced projects.

The members of offshore development teams must address several issues related to technological differences, such as writing code that can be maintained to the required standard. The difference in time zones means the development team is operationally separated from management, which can limit the time available for programming oversight. Furthermore, the development team may not practice formal mentoring or code reviews, which are essential for an effective learning atmosphere. The development environment is particularly difficult to assess when a project manager can’t directly interact with individual team members.

Organizational Differences

Organizations in the U.S. tend to have a flatter hierarchy than their offshore partners. The independent thought and soft skills required by agile development are more challenging to achieve in an organization with a strong hierarchy. That doesn’t mean that an outsourcer can’t perform agile development, but it is an issue that must be considered and addressed before signing the contract.

An outsourced team also tends to have a greater aversion to risk than an in-house team, especially when a communication barrier separates that team from its client. The combination of a low communication efficiency and hierarchical culture can make members of the development team extremely reluctant to propose an alternative approach. They may feel they are taking a personal risk instead of working as part of a trusted team. Risk adversity issues may also stem from the general business practices of other cultures, especially with respect to the relationships between clients and vendors.

About Tiempo Development

At Tiempo, we are making the business of software development easier and more affordable with a unique combination of a nearshore business model, agile methodology, and advanced talent management. Our Development teams engineer powerful technologies that align with the goals and strategies of our customers for both their internal and public-facing development initiatives. Tiempo’s proprietary agile product lifecycle management framework, the Tiempo Quality System or TQS, is composed of principals and best practices that ensure productive client and team interactions. The result is highly efficient software development that supports companies in launching software releases sooner without draining resources. To learn more please visit us at: www.tiempodev.com or contact Tiempo Development directly.