A Strategy for Outsourcing Enterprise Software Development

Outsourcing software development projects is quickly becoming a critical part of any organization’s digital strategy.

It’s not just about slashing costs by sending work overseas, it’s about accessing the best talent for the job, keeping pace with change, and nailing digital transformation on all fronts.

Below, we’ll discuss what it takes to create an effective outsourcing strategy and what to consider as you start piecing together your plan.

Outsourcing as a Business Strategy

We’ve talked about the benefits of outsourcing throughout this series, so we won’t repeat ourselves too much this time around (you can read about them here if you missed our previous post).

The list of reasons a company might outsource software development is nearly endless.

Some companies focus primarily on achieving cost-savings while others seek a partner that can help them carve out a competitive advantage or secure complex, distributed networks. And another group may need help responding to customer needs and market conditions in real-time.

We’re also seeing more organizations move toward a multi-sourcing model where they’re outsourcing different functions or projects to different outsourcing partners, often spread across the world.

Regardless, building an effective outsourcing strategy—as opposed to contracting out work on an ad-hoc basis—requires some serious planning, both internally and with your outsourcing partner(s).

How Do You Know When It’s Time to “Get Help”?

The first step toward creating an effective outsourcing strategy is determining where there’s a need.

One of the biggest questions companies have is, how do you gauge when it’s the right time to bring in some outside supports? Unfortunately, the answer isn’t exactly straightforward. The best way to determine whether it makes sense to outsource is to analyze the current state of your business.

As a first step, meet with internal stakeholders to determine the following:

  • Where are you falling short of your business objectives?
  • What barriers do you face in achieving specific goals?
  • Are you trying to cut costs? If so, which expenses are costing your organization the most money?
  • What benchmarks/KPIs represent success?
  • What skills does your internal team lack?
  • Are sustaining engineering expenses preventing the company from investing in new product development?

Ultimately, it’s about figuring out what you need, where the gaps are, then deciding whether it makes sense to outsource or hire additional in-house developers.

Get Clear On What You’re Trying to Accomplish

Once you’ve figured out where you could use some extra support, establish some goals.

Make sure you have clear objectives and deadlines in mind before engaging potential partners.
The better you can explain your needs, the better the outcome. And the better you can explain your needs, the easier it will be to find a vendor that aligns with core goals.

Here are a few examples of why you might look toward outsourcing as a solution and how certain details might influence your choice of partner.

Supplementing Internal Resources

Many companies rely on outsourcing to extend their in-house teams. It’s a common strategy for big names like Apple and Google, as well as successful startups and incumbent enterprises seeking to modernize their business.

Some opt to supplement internal development teams, with in-house and outsourced teams collaborating as one cohesive unit on a single project.

Goals might include increasing bandwidth, meeting a deadline, accessing specialized skills, or even giving in-house staff an opportunity to learn from top talent (this might be a good idea for those looking to implement a mature Agile or DevOps practice but lack the expertise needed to make it happen).

In other cases, organizations outsource entire products, features, and functions, allowing in-house teams to focus on the core business, while outsourced teams work on experimental or secondary solutions.

How you plan on using the extra help plays a tremendous role in the decision-making process. If you’re looking for developers who can collaborate with your in-house staff, factors like English proficiency, cultural closeness, and time zone compatibility become a top priority. Here, you’re looking for external developers that essentially become part of your staff. However, if you’re looking for a partner that can independently tackle projects, communication is still critical. Time zone compatibility, however, is less of an issue.

Powering Digital Transformation

Companies are increasingly looking toward outsourcing to take advantage of AI, machine learning, Robotics Process Automation (RPA), the IoT, and other technologies that help them move faster and make better business decisions.

According to a 2019 report, by 2022, 80% of revenue growth will come from digital offerings and operations. But, as we all know, things have changed since 2019.

In the wake of the COVID outbreak, organizations are also leaning on outsourcing partners to help them meet new demands. It includes things like the move to remote work, emerging cyber threats, and new data privacy requirements. And while COVID has slowed down—or halted—businesses from all ends of the supply chain, it has only accelerated the push toward digital transformation.

In most cases, digital transformation projects are linked to a specific business goal. This means that you’ll need to really prioritize effective communication.

Language barriers make it harder to achieve the big-picture vision, making English proficiency a top priority. Distance might be an issue, but it depends on what you’re trying to achieve. Ultimately, you want to find a provider who understands your vision and can communicate requirements to the rest of the team.

You’ll also want to consider the level of involvement from internal employees required to carry out the transformation initiatives you’re targeting. Is it a particularly complex task? Does it require a lot of documentation/context?

Tiempo’s Director of Software Delivery, Francisco Ponce says, “the more specialized the position is, the more involvement the customer should have. But, for common skill sets and technologies, it’s a much better idea to let the partner handle the selection process; they have plenty of experience. In turn, the business leader can focus on other issues at hand.”

In other words, if you’re building a complex solution—particularly in areas like financial services, healthcare, or cybersecurity—you may want to be involved on a daily basis. Here, a nearshore company might work best. If you’re trying to build a basic e-commerce site, you might not need to be as involved day-to-day and can save a few bucks by partnering with an offshore team.

Finally, it’s important to remember that true transformation can’t happen without the right culture.
Digital transformation is driven by customers, their expectations and behavior, and how they align around business goals.

While transformations are powered by software, it’s important to note that contracts alone won’t help you compete.

Filling the Talent Gap

Outsourcing allows organizations to access skilled workers with specific skill sets that may be hard to find nearby or incredibly expensive.

For instance, if you’re trying to find top data scientists or blockchain experts in the US, you’re likely competing with big tech firms or well-funded startups for talent. Still, look for developers who can grow and evolve, particularly if you’re looking for a long-term engagement.

The skills that are in-demand right now may be obsolete in a couple of years. You want to find partners with the skills you need now but, more importantly, are eager to learn new ones that align with changing needs.

Tiempo’s Julio Plascencia recommends that companies look at “capacity to work with the customer, expertise in the business area of the company (not only IT), IT practices knowledge, certifications to show to the client, credentials of the consultants assigned to work with the customer, reputation in their community as a company.”

Compare Different Outsourcing Models

Once you’ve determined the “what” and the “why” behind your decision to outsource, decide which outsourcing model makes the most sense in terms of cost, communication, collaboration, etc., for delivering the desired outcome.

Compare the cost and time spent on different options—in-house, nearshore, offshore. How much it will cost to use in-house vs. outsourced teams? (We explain outsourcing models in more detail here.)

You’ll also want to think about what you want from a partner.

Are you looking for a one-off engagement or a long-term relationship? In general, outsourcing “one-off” projects isn’t the best strategic move. However, in some instances, it makes sense: if you’re building a prototype, are testing new vendors, or need access to a skill/resource you likely won’t need again.

That said, most successful outsourcing strategies focus on the big-picture.

Tiempo’s Angel Moreno notes that “paying for a development team service instead of an employee on payroll is a lot easier to handle since it allows the company to focus on core activities. The development department is just a bill at the end of the month.”

Additionally, long-term service providers get to know your team and, over time, develop a deep understanding of your brand’s goals. In other words, they’ll create more value for your business for years to come.

Figure Out How You’ll Manage Outsourcing Teams

There’s more to building an effective outsourcing strategy than weighing the pros and cons of nearshoring vs. offshoring.

You’ll also need to think about how to structure your teams based on where members are located as well as the level of collaboration and complexity of the project.

Here’s a look at some different distributed Agile models designed to facilitate Agile best practices across a variety of outsourcing workflows.

  • Co-located. Independent teams work simultaneously from the same site (think different departments within an organization). You might work with an outsourcing provider that offers two or more teams working on separate projects. That way, if you have multiple teams working on different features in the same app, they can work together to create a seamless experience for end-users.
  • Distributed. Independent teams work at separate locations. Here, you might have multiple outsourcing partners working out of different countries, remote employees, and in-house staff.
  • Hub. In the hub model, most team members work from one location, while some workers are remote. Here, you might have an internal team collaborating with a smaller outsourced team with an in-house project manager leading the charge. Or, you might appoint a team leader within the outsourced team and collaborate with that one person regularly, allowing them to communicate expectations to the rest of the team.
  • Remote. Fully-remote teams have become the norm post-COVID, making it more difficult for workers to collaborate even if they’re in the same time zone. In this case, it may make more sense to use more asynchronous tools rather than forcing everyone to collaborate in real-time. You might schedule smaller blocks of group work among those in similar time zones.

If you’re using a multi-sourcing strategy (i.e., you’re working with several teams/outsourcing providers in different locations), you’ll also need to think about how you’ll manage multiple partners, teams, and projects so that they work together within a single business strategy.

Make sure you assign an internal point person (or people) to each outsourcing team and focus on bringing their contributions together internally.

What Shouldn’t Be Outsourced

On a final note, Tiempo expert Henry Martinez emphasizes the importance of understanding what types of projects to outsource and where to send them.

He says projects tend to fall into three main categories:

  • Strategic: Traditionally, companies were told to steer clear of outsourcing anything that created a sustainable competitive advantage (IP, algorithms, proprietary insights) to prevent IP theft. Now, companies outsource all kinds of strategic projects to accelerate innovation, avoid technical debt, and power digital transformation efforts. The key here is partnering with companies in countries with strong IP laws and taking extra precautions to safeguard sensitive information.
  • Tactical: Some companies inadvertently (or through acquisitions) become technology laggards, and their technical debt increases (meaning their engineers are too busy maintaining existing products to take on additional work). Due to current market realities, companies in technical debt often end up outsourcing their newest product development tasks, then do some technology-seeding/staff conversion to catch up. It’s important to select a partner that understands that process (and the fact that your in-house team has very little free time) and can run the entire development cycle (including decision-making and hand-offs).
  • Value Engineering: Obvious candidates for outsourcing are anything involving commodity-type engineering work (think—language translation or manual QA tasks). Those projects are neither strategic nor tactical, and in those cases, your primary goal should be finding a cost-effective partner that can turn around error-free code quickly with little involvement from your end.

Wrap Up

Global outsourcing strategies are complex and often hard to manage, especially if you’re working with multiple partners and remote, distributed teams. As such, it’s essential to build a strategy focused on one goal at a time. From there, figure out what kind of partner you’re looking for and how to engage them to maximize ROI.

Tiempo’s nearshore business model provides cost-effective access to high-performance teams with a laser focus on client outcomes. Contact us today to learn more about working with us.