What is Software Development Outsourcing?

The definition of software development outsourcing is hiring a software development company outside of the United States to reduce costs, or in instances when skilled local developers are unavailable. For most companies, the big ‘IT decision’ used to be whether to keep development in-house or outsource their software development efforts.  Now, the more common consideration is whether to offshore or nearshore software development. As more and more companies realize the myriad of advantages, they are opting for nearshoring. Traditionally, software development outsourcing provided a far better ROI than nearshoring but the tides are turning and the nearshoring talent is closing the gap, enabling agile software development outsourcing like never before.

To compare offshore outsourcing and nearshoring fully, we must first establish the varied benefits of each to look at why we are seeing (and will continue to see) a shift towards nearshoring.

A Brief History of Offshore Software Development

In order to understand software development outsourcing, it is imperative you know the history of offshoring. Offshoring, began with a desire to increase ROI. If a business is investing in developing software they want to make the most of that investment. If they spend more money on development than necessary, it diminishes the return. Thus, many companies historically looked to offshore locations such as India or Eastern Europe for software development when the cost of local or nearby talent impinged on ROI too significantly.

An additional factor that encourages outsourcing software engineering was time-to-market. The faster a product gets to market, the sooner a business gets a return on their investment.  When resources are limited nearby, offshoring provided the ability for a company to complete tasks on-time or ahead of schedule without exceeding the budget.

Offshoring or outsourcing is something that is common in virtually every industry because it is a great way to achieve projects more quickly and effectively.  It allows you to acquire talent and skills for a project that you may need but do not have internally.

Essentially, outsourcing is when a business hires a freelance individual or outside business for tasks or projects that would typically be completed internally.  As aforementioned, outsourcing like this is not a new practice in the slightest.  However, with the rapid rate technology changes and evolves, outsourcing is something often associated with technology because the demand for new technology often outpaces the available internal support staff’s capabilities.

Advantages of Software Development Outsourcing in Mexico

Quality of communication is a major factor in the success of any project or business relationship. When you dramatically improve the quality of communication with your outsourcing software partner, projects are often more successful, sent to market more quickly, and provide a better ROI. This improvement in communication is evident when you outsource to a nearshore country like Mexico, rather than countries on the other side of the globe like China or India.

In any given project there are many stakeholders. Each stakeholder has a unique investment and interest in the project, and when there is a stronger relationship between all stakeholders, development time and the quality of the end-product naturally improves.

More Quality Time with Software Development Outsourcing Partners

By nearshoring to Mexico, the opportunity for increased face-to-face time becomes more possible because onsite visits are more feasible. Not only is face-to-face time improved, by being in the same time zone it’s more likely that you’ll be working at the same time as your nearshoring partner rather than in completely different time zones which can create lag time in communication and completion of project tasks. As we all know, software development projects change often — and frequently without notice, so nearshoring better facilitates agile software development outsourcing.

Reduced Language Barrier by Nearshoring Software Development

People all over the world speak English as a second language, but because English is a very nuanced and complex language, there can be many things that are lost in communication. This can be particularly frustrating when communication is already difficult due to time zones and distance. While the first language in Mexico is not English, Mexican nearshoring partners are far more likely to be not only able to speak English, but able to speak it fluently.

Risks of Offshore Software Development Outsourcing

Traditionally, the most affordable and skilled talent for software development outsourcing was based in India, Eastern Europe, or China.  But, as many software companies (and companies in other industries) have found, there are some problematic barriers with outsourcing to countries such as India or China.

One of the first problems a business may encounter when outsourcing software development to India or China is that there may be communication problems.  These communication problems typically take on two forms: there is a language barrier and/or there is lag time because of the time difference when working with these distant countries. India and China also have very different societal norms and cultures and, while it is not always the case, these factors may influence the quality of the final product.

In addition to communication concerns, many companies may outsource in an attempt to improve ROI only to discover that there were no actual cost savings realized.  This could be because there were communication problems that resulted in a delay, because the software was not up to your business’ standards, is simply not high-quality, or a plethora of other reasons.

When outsourcing near or far, there are certain things that many companies would consider ‘deal breakers.’  These deal breakers are problems that arise at any point during a project that are clear indicators that the outsourcing relationship should be ended or significantly adjusted.

Software Development Outsourcing Deal Breakers:

  • Project Issues
  • Blame Assessment
  • Communication Problems
  • Technological Differences
  • Organizational Differences

If any of the deal breakers should arise, it is best to address them immediately.  Otherwise, you run the risk of costly development errors, frustrations, delays, and/or a low-quality final product.

Successful Software Development Outsourcing Means Beginning With a Software Requirement Specification (SRS)

By defining your business objectives, you are able to narrow down what you want the software to do which facilities agile software development outsourcing. How do you want the software development team to work, and what resources will be required to complete the project?  These are important questions to answer if you want to be successful in your communications with your software development outsourcing partner.

The SRS or Software Requirements Specification outlines what needs to be fulfilled by the development team in a way that is easy for software developers to understand exactly what is required of them.  Often, business-minded individuals that are not deeply entrenched in the software development world know what they want to achieve but they struggle to communicate it clearly to software developers.  This can lead to frustrating miscommunications at best and, at worst, a bad end-product.

For example, perhaps a bank wants to develop an app that their customers can use to conduct online banking actions safely and securely.  The app must be user-friendly and appealing but, because of the sensitive nature of the data, it must also be exceptionally secure while maintaining speed.  It also must work on a variety of devices from various manufacturers.  The above description is a common example of how a business might describe their needs to a software developer, but in reality, there is a lot lacking from the description that a software developer would need to know to successfully produce the desired result.  The last thing anyone wants is glitchy software, an app that doesn’t work, frustrated customers, compromised security, or for the project to simply miss the mark altogether.  It is an expensive waste of everyone’s time.

The solution to this problem is a thorough a SRS that is as highly detailed as possible.  This will provide software developers with the information they need while reducing ambiguity that could ultimately jeopardize the effectiveness of the developed software solution.  Ultimately, the SRS facilitates successful agile software development outsourcing. Many companies do not know where to start when writing an SRS. Fortunately, there is a standard SRS that is commonly used, known as the IEEE 830-1998 Standards.

IEEE 830-1998 Standards

The IEEE 830-1998 Standards provides an extremely helpful foundation on which any company can successfully build a thorough SRS. It is outlined by the IEEE Standards Association.  According to IEEE 830-1998 Standards, the SRS should address:

  • Functionality: Businesses should provide information about what needs the software must meet.
  • External Interfaces: A detailed description of all inputs and outputs that are made by users, hardware, and any complementary software.
  • Performance: Clearly set expectations on the speed, response time, and availability of the software’s functions.
  • Software System Quality Attributes: Detail the specific software system attributes that are indicators of quality. Provide details on the security measures, information correctness, or other maintenance considerations.
  • Design constraints imposed on an implementation: Outline any standards compliance rules or accounting & auditing procedures for the project.

How to Use an SRS

You may have been reading this and thinking…’wow, that is a lot of work!  Yes, yes it is.  Writing an SRS is very complex and if you do not have experience in technical writing it can feel like a massive undertaking.  But like any big undertaking, the best way to start is to break it down into smaller, more manageable portions and work on one thing at a time so that you do not get lost or overwhelmed.

Agile Software Development Outsourcing – SRS User Requirements

The best place to start is with ‘User Requirements.’  User Requirements is typically the easiest place to start, particularly for those that are new to writing an SRS.  This is because it deals with the needs of the end-user which are less technical and broader.  Anticipate what your end-user will need, expect, and want. And, do not be afraid to get input from other departments, such as the marketing or engineering department, when determining these needs.

Think about how your user will interact with the product and its features.  Depending on the software you are developing, consider how and when your user will be using it.  Is it a running app, a cooking app, or something else where the user may often need to be able to use it with only one hand?  Your software developers will need to consider that when designing where you place features on the screen and how easy it is to use with limited mobility.  Does the software need to sync with a device or wearable tech?  Can the application operate in the background with the user’s screen locked?  By thinking through details that are both large and perhaps seemingly small, you will be able to carefully craft a User Requirement description for your SRS that will help inform the software development team with specific, actionable items that they can implement which is critical in agile software development outsourcing.

Agile Software Development Outsourcing – SRS System Requirements

Well written System Requirements also play a critical role in agile software development outsourcing.  The System Requirements outlines all requirements on a system level including system architecture, system design, system integration, and more.  DZone provides a useful description of what exactly a well-written System Requirements encompasses, “System requirement specification or SRS frameworks software development, it documents every operation and dictates how software should behave, it can be as detailed as what a button should do and should be as complete and correct as possible. The purpose of a specification document is to describe the behavior as well as the different functionalities of an application or software in a specific environment.” [1]

All System Requirements should be linked to a User Requirement and should be able to be tested.  Ideally, the first page of your System Requirements should use API’s provided for social media to login for faster access.  Next, on the second page, there should be a detailed description of where the user can access their history from a database that compiles the information into a readable output.

While there should be an established SRS at the outset of any agile software development outsourcing project, it is likely that your SRS will evolve over time as consumer expectations and the technical environment change throughout the project. This is where it becomes critical that you have agile software development outsourcing because your team will need to be able to be highly agile and adapt when things change at a moments notice.

What is Nearshore Outsourcing?

Nearshore software development outsourcing is a form of outsourcing that utilizes resources closer to your location, such as Mexico, rather than traditional locations like China and India.  Nearshoring is rising in popularity because many (including Tiempo Development!) are realizing the many benefits of agile software development outsourcing by sticking closer to home.

While there may still be a slight language barrier when working with developers based in Mexico, it is typically far less so than when working with China and India.  Further, because the time difference is significantly less, businesses and software development teams are able to build stronger relationships through improved communication and reduced lag time.  And, make no mistake, the talent pool is there. They are ready and waiting to help you build the best possible software and get it to market faster.  Nearshoring also often provides better ROI because, in many cases, there is reduced lag time and communication issues that could lead to delays or problems with the end product. More often than not, nearshoring provides better talent resources that fully understand what is needed on a project.

STEM Talent Gap

It sounds surprising but the United States does not (currently, at least) have the STEM talent pool needed to support demand which is why many companies are forced to outsource to achieve projects in a timely manner while staying within budget.  Despite allocating additional funds to developing STEM talent in the US, the gap is still there and Mexico is more than willing to fill that gap with talented developers.

Stem Salary Gap US vs. Mexico – Maximizing ROI

Adding complexity to the issue is the significant STEM salary gap between the US and Mexico.  Despite having similar education levels, the demand is so high in the US that US STEM talent often earns a salary significantly higher than that of their Mexican counterparts.  Because of this, companies often opt to outsource and Mexico has poised themselves as an ideal alternative.

How Mexico Has a Shifting Economy That Facilitates Strategic Software Development Outsourcing Through Nearshoring

Software Development Outsourcing in Mexico

Better, more highly-educated developers in Mexico than the US?  Your next question may be – ‘How is Mexico able to produce highly-educated and extremely capable software developers at a faster rate than America?’  The answer is that Mexico has had a rapidly shifting economy over the last decade or so and during that time they have been adding many more STEM and technological schools. And, they are not just building more schools but educating more students and retaining those students in the career field in which they were educated.

Mexico, in recognizing an opportunity to position themselves as a global IT leader, made a distinct and powerful effort to educate more individuals in the technologies necessary for the field. And, that has positioned them well for the market we are in now and for the future as well.  Export.Gov, a resource for US businesses interested in export and participation in the global marketplace compiled by the U.S. Department of Commerce’s International Trade Administration in collaboration with 19 U.S. Government agencies, highlights exactly why Mexico has become an ideal nearshoring partner for U.S. companies, “Research and advisory firm Gartner ranks Mexico third globally for nearshoring and offshoring services, behind India and the Philippines. Mexico is also developing IT clusters throughout the country to offer IT, software development, call center, high-tech manufacture, and engineering services to domestic users and to countries in North America and Europe. The country is following the global trend towards a service-centric IT industry, where most technologies are offered under a service contract or lease. There is a growing interest in Software as a Service (SaaS), Infrastructure as a Service (IaaS), and Platforms as a Service (PaaS). The main driver for users to support this new business model is cost reduction in areas that are not mission-critical and represent costs without value-added. The data center market in Mexico was worth USD 2 billion in 2015 and is expected to grow 30 percent by 2020. Mexico is the second largest market in Latin America in terms of data center square footage with approximately 25 percent of the region’s overall data center surface and the leader in data center infrastructure investment.” [3]

Outsourcing Nearshore Offers Quality Talent

India, China, and the United States all have quality software development talent but most do not have the volume that Mexico has and usually not at the salary range that is average in Mexico.  It is cheaper, easier, and the best option when it comes to well-educated STEM talent to nearshore to Mexico.

Agile Software Development Outsourcing Best Practices – Protecting Intellectual Property

It can feel risky to loosen the reigns on a project and outsource software development to a foreign business.  Will their work be high-quality and up to your standards?  Will they be able to produce the work quickly enough?  Will communications be challenging leading to delays?  Will my intellectual property be protected? While many of those concerns are reduced or eliminated with nearshoring, there are always best practices that can help guide you when determining an ideal nearshoring partner.

  • NDAs
    • Any company that outsources their software development should always have a Non-Disclosure Agreement (NDA) within their contract. An NDA is a contract signed by both parties in which they agree not to disclose confidential information that they have shared with each other as a necessary part of doing business together.  This protects everyone involved which is particularly important when working with companies that may have different laws and regulations regarding intellectual property.  When writing the Non-Disclosure Agreement and making any necessary negotiations, it may be ideal to work with an attorney that is local to the country in which your outsourcing software development partner is based to ensure you are protected not only domestically but on a foreign scale as well.
  • WIPO
    • World Intellectual Property Organization (WIPO) is an organization that is a “global forum for intellectual property (IP) services, policy, information and cooperation. We are a self-funding agency of the United Nations, with 192 member states. Our mission is to lead the development of a balanced and effective international IP system that enables innovation and creativity for the benefit of all. Our mandate, governing bodies and procedures are set out in the WIPO Convention, which established WIPO in 1967.” Any members of WIPO agree to allow the policies of WIPO to supersede their own which can add additional layers of protection for all involved parties.
  • NAFTA
    • One of the distinct advantages of nearshoring to Mexico is that the United States has a very good NAFTA agreement with Mexico. Wired explains the favorable trade agreements we enjoy with Mexico and how we can use that to our advantage when partnering with the burgeoning tech hub in Mexico, “Prior to NAFTA, the high-tech industry in Mexico was limited to low-wage, labor-intensive assembly operations. But reforms initiated by the agreement opened a new era of investment in Mexico’s tech sector…Software companies and app developers, meanwhile, enjoy full protection by courts under very stringent copyright and patent laws…he existing tech industry base in Jalisco is already formidable, with firms such as IBM, HP, Oracle, and Latin America media titans Televisa and TV Azteca…Other advantages include tech-hungry venture capitalists, business advocacy organizations, hundreds of bilingual high-tech graduates joining the workforce each year, and sound telecommunications infrastructure. But most importantly, a half-day flight away from home and on US Central Time, Jalisco offers an enviable quality of life in a community that is home to nearly 40,000 American and Canadian expats.” [4]

Other Considerations When Outsourcing Software Development to Mexico

  • Are they headquartered in the US?
  • Do they provide personalized service yet have the capability to scale?
  • Are they an established business that won’t disappear?
  • What does the on-boarding process look like?
  • Do they have an agile development model for faster ROI?

Outsourcing has been a successful component of the U.S. economy for many years and nearshoring is becoming a superior option to offshoring, particularly for the IT industry.  Nearshoring facilitates agile software development outsourcing through improved communications, reduced lag time, superior ROI to offshoring alternatives, improved security and better recourse with intellectual property security, and much more.  It is no wonder that nearshoring is a trend in outsourcing and it is our belief at Tiempo Development that it is a trend that will continue in the years to come.

Get Better Results with Nearshore Software Development
Enjoy offshore advantages without flying half-way around the world to meet your team. 

Finding and hiring great developers is only the tip of the iceberg. Cost, quality, dependability and process are all critical factors. Companies that develop or rely heavily on software, turn to Tiempo Development for:

  • Cost-Effective Software Development Resources
  • Dedicated High-Performing Agile Teams
  • Commitment to Ultimate Client Outcomes
  • Fast Ramp Up and Seamless Integration
  • Expert Resources Available in Almost Every Technology; Java, Python, .NET, React, Angular, PHP, etc.
  • Headquartered in the United States

If we’re not 100% certain we can fundamentally improve your performance, we’ll help you find someone who can.

Get Ultimate Outcomes!

REFERENCES

  1. Author: Victor Osetsky for DZone on 6/29/18
  2. Author: Duncan Tucker for Nearshore Americas on 9/26/14.
  3. https://www.export.gov/article?id=Mexico-Internet-and-IT-Services
  4. Author: Bill Richardson for Wired on 2/4/16.