Offshore software development is a fairly recent event in the history of outsourcing. According to The Globalization of Software R&D: The Search for Talent, a paper published in 1996 by Stanford University for the Stanford Computer Industry project, outsourced software development providers first appeared during the mid-1980s to early 1990s, when corporate information systems (IS) departments were in the midst of downsizing due to political reasons and a general misunderstanding of the importance of information technology (IT). Even then, offshore providers offered low rates due to wage differentials.
Beginnings of the Software Development Offshoring Industry From the mid-80s to the early 90s, companies began to adopt client/server architectures to reduce hardware costs, which required new skills. Rapid technological changes and the rise of the internet continued to increase demand for relevant skills as the new millennium approached. Companies were forced to find talent in other areas and work with service providers locally or offshore.
Fast internet connections powered other tools and facilitated remote design, development, testing and administration. As emerging markets were exposed to new technologies through the internet, people in areas like Russia and Eastern Europe acquired development skills and improved their English proficiency, reinforcing the offshoring trend.
India has led the software exporting countries from then up to today. India's population and its higher education system allow it to produce thousands of highly-skilled software engineers every year. For example, 1250 companies in India exported software (including CAD/CAM and enterprise resource planning software) in 1999 and 2000 alone. Companies also turned to Ireland and Israel for offshore software development, and more recently to Russia, China, and Eastern Europe.
Modern Offshore Software Research & Development
The authors of the paper Offshore Software Development: Is the Benefit Worth the Risk? said that offshore development can be divided into four general categories: sponsoring foreign professionals with employment visas, subcontracting development work to a local or offshore consulting firm, subcontracting recruitment of software engineers to an offshore company that sends the workers to the company's locations, and establishment of development operations in offshore centers.
Today, outsourced software development & research remains a development trend, as well as in-house agile development. There is pressure to work with outside experts to improve software quality, business flexibility, and scalability. Service providers also bring expertise to the table that may be too expensive to build in-house. A study of companies that outsourced software development offshore showed patterns in their experiences. The authors believed that offshoring "matured" through four stages: domestic sourcing only (stage 1), ad hoc sourcing (stage 2), proactive sourcing (stage 3), and strategic sourcing (stage 4). The authors expect that most companies in which IT is a core component of products and services or a significant source of competitive advantage will likely move towards stage 4 outsourcing.
A 2011 survey by ExecutiveBrief involving about 300 software industry business leaders and development professionals showed that the priority for majority (86 percent) of respondents is new product and application development, with approximately 50 percent doing some degree of outsourcing.
Majority of outsourcing projects (32.5 percent) are done both onshore and offshore, while 34.1 percent are purely offshore engagements (20.3 percent single-sourced and 13.8 percent multi-sourced). The study showed that companies outsourced almost two thirds (68.7 percent) of development work to India, while the rest are farmed out to Latin America, Eastern Europe, Southeast Asia, China, Russia, Romania, Ukraine, Australia/New Zealand, Canada, and other countries.
The ExecutiveBrief study showed that more software development platforms are being added. Internet or web platforms account for the majority (66.5 percent), followed by software-as-a-service or cloud, enterprise applications, desktop applications, mobile/handheld, embedded, and other platforms. The respondents said that the greatest software development trends potentially impacting their business are SaaS or cloud and mobility.
Agile Software Development
More than a third (33.3 percent) of companies surveyed in the ExecutiveBrief study performed development work exclusively onshore. An article published on Microsoft Developer Network reported that agile software development is the reigning onshore software model, followed by iterative and waterfall models. With limited budgets and pressure to deliver high-quality products, the agile method proves beneficial in dynamic business environments.
The hallmark of agile methods is flexibility or continuously evolving requirements and solutions through collaboration. The agile software development manifesto states that individuals and interactions, working software, customer collaboration and responsiveness to change are valued over processes and tools, comprehensive documentation, contract negotiation and following a plan.
Agile methods are well-suited to internet-based companies, allowing them to do more with less and release products with limited budgets and small teams. However, agile software development is not one-size-fits-all, and it works best for small teams in rapidly changing environments. It is essential that the teams are co-located or located in the same area to reduce development time.
In a larger corporate environment, it is more common to find distributed development teams that may be located on different continents. To make agile methods work with distributed teams, the teams must work as a single global entity where a member in any location can participate in the work. The offshore software development & research model must also encourage communication, collaboration and flexibility. Outsourcing contracts must therefore be flexible in terms of materials and time used, and teams must have shared common goals.
To remove barriers among engineers, developers, managers and stakeholders, big companies may establish centers in offshore locations where there is an abundance of talented people. Successful offshore software R&D partnerships are characterized by better affinity between the developers and the client rather than between developer and service provider.
Under agile development, architecture-based methods appear to work best, according to a paper published by Hamburg University. Architecture-centric development focuses on design and maintenance that emerges from the perspective of software architecture. The architecture dictates the assignment of work to teams, configuration management, and documentation. Software architecture also allows developers to maintain control over a large, complex system.
Offshore Software Development Trends in the Past 10 Years
In the mid- to late-1990s, offshore companies that were mostly based in India started bidding on routine software development projects in the United States. This trend took off as Y2K approached and companies needed to prepare their information systems for the turning of the century. As companies relied more and more on offshore resources, onshore consulting firms started to mine overseas locations for resources to remain competitive.
Meanwhile, Indian companies started leveraging U.S.-based resources to work with their clients directly. The Indian companies were then able to bid on higher-value projects and move up. These onshore and offshore companies continued to grow, and majority of them were engaged in software consulting and project-based software R&D that used waterfall development methodologies.
In the early 2000s, project-based offshore software development was typically fixed-price and fixed-scope engagements, where most of the requirements could theoretically be determined ahead of time and the service provider could estimate an accurate bid. In reality, it was impossible to determine all project requirements up front. What happened was buyers were forced to pay more as system requirements changed and were added to the project. During this time, organizations learned from software development disasters that while the waterfall approach was effective for some projects, it certainly was not applicable for all of them. Agile software development in a global development and delivery environment was born and became the new standard for many companies.
From India-Only Software Development Offshoring to Global Sourcing
In the early days of offshore software development & research, many companies transferred work to a single location, often in India, due to the availability of skilled programmers and developers, wage differentials and potential for huge savings. While Canada, Ireland, and Israel were attractive destinations due to the level of skill of their developers, India offered the best skills for the lowest cost. In 2005, India was the largest offshore software R&D and engineering provider, with $3.9 billion in revenues, according to Software Development: Globalization and Its Implications, a paper published by the National Academy of Engineering.
In the mid- to late-2000s, organizations started to expand their horizons and establish development centers in multiple locations, although majority of these companies continued to outsource mainly to India and low-cost centers in China and Asia, Eastern Europe, and Latin America. Asia became an ideal location not only because of cheap labor, but also because of a larger pool of talent and resources, and the easier localization of software applications.
Instead of establishing offshore centers right away, startups and larger organizations worked with service providers in India to test the waters and learn how the local government can facilitate setting up subsidiaries. In time, companies established local offices and extended their labor force. With multiple software developers across the globe working in different time zones, companies were able to extend the workday (follow-the-sun development) and even work 24/7. As teams in the West end their day, teams in the East come to work and pick up where the Western teams left off.
Strategic Outsourcing of Software Development
In the early 2000s, companies often selected a service provider based on the amount of resources they had for a project, whether the project was amenable to being offshored, and whether the service provider was a good fit in terms of the company's goals. This tactical approach has since shifted to a more strategic one. Lower costs remain the primary driver for offshoring software R&D, engineering, and programming. However, buyers began to realize that offshoring could transform entire organizations into efficient, more productive entities. Ad hoc projects grew into highly-managed initiatives, and buyers started assigning services to people with the right skills, regardless of location. It's common in the late 2000s and the past five years for companies to combine offshoring with local sourcing and near-shoring, and the trend continues today. Many companies now perform intensive evaluation of the impact of offshoring software development before selectively outsourcing development to multiple trusted providers and building relationships with new vendors.
Routine Programming to More Complex Development
Established corporations and startups in the U.S. initially offshored routine programming work only "both in-house software development and software services" to India (mostly Bangalore). As more companies started outsourcing over time, the sophistication of offshored development work also increased. In 2001, 68.9 percent of India's software export were routine programming and maintenance of existing applications. In 2005, this percentage dropped to 58.5 percent.
The entry of foreign firms doing sophisticated software development and increased high-end projects undertaken by domestic firms (such as Wipro) led to decreased routine programming work. Software engineering, product development and research and development also increased from 8 percent in 1999 to 23 percent in 2005, according to a Nasscom study. By the late 2000s, application testing was on the rise, followed by development of new application technologies and components. By 2007 for example, India's Tata Consulting Services (TCS) derived less than half of their third-quarter revenue from first time application development.
Decentralized Software Development and Delivery
In the early years of offshore software R&D, many organizations assigned each location to a project, and the team in that location was responsible for delivery. Global teams thus worked independently of each other. As companies expanded globally, organizational distribution of software development became increasingly decentralized. Multiple teams began collaborating when working on modules or components that were integrated into other components that culminated in a final product.
The late 2000s saw the expansion of global development and delivery (GDD). Initially, only a few companies were willing to source technology, capabilities, and labor abroad, but it has become widely adopted in all industries. According to IBM's Global Software Development and Delivery: Trends and Challenges, an estimated 80 percent of software projects are now global, and GDD is the new normal for most software publishers and companies that depend on software.
Flexible Engagement Models
Providers that offer flexible engagement models are more attractive to buyers. Flexible delivery allows them to scale up or down easily and make the most of the money they spend. Service providers are shifting towards fixed-price, outcome-based pricing from traditional time and materials-based pricing. When combined with agile methods and lean UX, fixed-priced contracts allow companies to adapt more easily to changes and increase time to market.
Software Development Outsourcing in the Philippines
Learn more about business process outsourcing and the Philippines as an outsourcing destination. You can also get more information about software development outsourcing by visiting our Software Development page.
IS OUTSOURCING RIGHT FOR YOUR BUSINESS?
Talk to an expert today. Contact Sourcefit to learn more about the possibilities and opportunities of building your dedicated team of professionals in the Philippines.