International software development refers to software work undertaken at locations that are separated geographically across national boundaries through real-time (synchronous) coordination and asynchronous interaction. Some of the activities involved in this work include communication for exchange of information, coordination of groups and activities in a way that enables them contribute to the objective, and control of groups to ensure that they adhere to goals and policies. It also involves the control of various artifacts including quality, visibility, and management.
Today, international software development is a very common practice among large companies. According to Mohagheghi (2004), 40 percent of all Fortune 500 companies use international software development, also known as Global Software Development (GSD). Out of these, 185 have chosen to outsource their international software development to India alone (Mohagheghi, 2004). Moreover, more than 50 nations are involved in GSD (Carmel, 2001).
Some of the internationally renowned companies that are famous for engaging in GSD include IBM, British Telecom, Alcatel, British Airways, and General Electric. Each of these companies has chosen to move certain aspects of their software development processes to countries like India and Ireland. To put this trend of international software development into perspective, it is also worthwhile to point out that 80 percent of the total output in the Irish software industry is exported (Carmel, 2001).
The aim of this paper is to discuss the various project management challenges and risks affecting international software development. The risks involved as well as the ethical issues raised in this practice are also examined. The thesis of the paper is that countries need to work together in order to succeed in the work of international software development. These aspects are discussed in the context of different methods of international software development, including international joint ventures and outsourcing.
Methods of international software development
There are four main methods of international software development. The first method is intra-organizational approaches, which also encompass ventures bringing together companies that are legally related. Examples of companies that have already engaged in this method include Lucent technologies, Siemens, Ericsson, and IBM. The second approach is outsourcing or inter-organizational development. This method entails the use of IT infrastructure, embedded software, maintenance, data centers, and software applications. Thirdly, companies may prefer to use non-organizational or Open Source Software such as programs for programmers, and Operating Systems such as Linux. Lastly, international software development may take the form of Services or various components supplied over the Web such as pay-per-use services, recent component markets, and Application Service Providers (ASP).
Intra-organizational approach or coordination between legally related companies
For companies that adopt this approach, the objective is to derive success in complex software development projects while at the same time maintaining organizational cohesion. The organization tends to have a strong sense of ownership as far as the resulting software product lines are concerned. However, in this process, even in this environment of organizational proximity between legally related companies, the challenges involved are closely related to those of companies that engage in other approaches to international software development such as inter-organizational coordination. These problems are normally organized around organization, architecture, and process.
Challenges relating to efficiency and effectiveness are also common in the intra-organizational approach. These problems mostly arise because these companies tend to rely too much on integration-centric approaches. To deal with this problem, these organizations need to switch to composition-oriented strategies.
The intra-organizational approach is best understood in the context of the contemporary trend in which many companies are keen to develop a software ecosystem as a gradual replacement to the traditional software product-line in efforts to improve sustainability. For this ecosystem to exist, a platform for software development needs to be established. Internal developers use this platform to build products.
Additionally, the intra-organizational approach may also create room for a community of external developers operating outside the organization but with a legally-related corporate entity. These external developers build software products using the same platform in addition to extending the products the company releases. In this approach, a community perspective is adopted, whereby external developers, domain experts, and users get access to the platform. This requires a community-centric approach to collaboration and coordination. In this situation, whereas an intra-organizational approach is adopted in the software product line, the software ecosystemâ€™s scope tends to be broader in the sense that external developers are involved, extensions are provided, and parties can provide contributions.
In distributed development being undertaken in an intra-organizational company context, one of the most critical factors for success in various projects is the presence of regular, informal communication. Regular, informal communication fosters the product development process by improving coordination and motivation. According to Lindqvist (2006), the leader plays a critical role in ensuring that transparent project priorities have been put in place. He also ensures that iterative development methods are being employed, complete with regular deliverables between production sites. These regular deliverables are viewed as critical elements of success in this approach.
One of the large corporations that have adopted the intra-organizational approach to software development is Ericsson Microwave Systems. Ericsson Microwave Systems is a subsidiary of Ericsson AB Telecom Corporation. The company has already established several sites both across Sweden and internationally. The largest site is Gothenburg, which has about 1600 employees (Lindqvist, 2006). Most of the projects that the company undertakes are complete in a co-located environment within this main site. However, in some cases, the projects undertaken are very large and involve more than 100 participants. Such large projects may be carried out in two sites.
In the intra-organizational software development approach, some of the critical factors in terms of the level of distribution include temporal distance, geographical distance, and social-cultural distance. When the temporal distance is low, no time-zone differences between various sites exist. Co-workers are able to work in flexible hours. At Ericsson Microwave Systems, co-workers enjoy the element of flexibility in work times even though the company has set in place recommended working hours (Lindqvist, 2006).
Geographical distance encompasses the distance between software development sites. Social-cultural distance refers to the extent to which two software development sites share social-cultural links. For example, sites that have been in existence for a longer time tend to have a richer social-cultural heritage. For this reason, they tend to assimilate smaller development sites (Lindqvist, 2006).
The culture of the organization greatly influences the challenges that arise. It influences the pattern of behavior of the people involved in the software development process, thereby affecting the overall effectiveness of the project. For example, the participants may be operating in a culture where phone conversations or decisions to make impromptu visits to the development site are relied on only when something is seriously wrong with the development process. In such an intra-organizational context, efforts should be made to ensure that there is constant communication at all times. This creates a situation in which the problems that exist at the organization are not underestimated. Without continuity in communication, the quality of the work may be poor, thereby jeopardizing the overall success of the project.
Inter-organizational approach or outsourcing
Â Â Â Â Â Â Â Â Â Â Â Software development projects that employ a global inter-organizational approach are becoming common. One of the most critical elements of the inter-organizational approach is collaboration (Paasivaara, 2003). Companies that adopt the inter-organizational approach need to ensure that the practices and processes they have put in place support collaboration. According to Paasivaara (2003), some of the most common collaboration practices include frequent deliveries, creation of peer-to-peer links, and milestone synchronization.
Just like in the intra-organizational approach, the inter-organizational approach requires proper planning as far as the issue of problem-solving communication is concerned. Problem-solving communication is particularly important at the beginning of the project even though it tends to be ignored (Paasivaara, 2003). For inter-organizational projects to succeed, two-way communication is critical especially during project progress monitoring. Moreover, efforts should be made to build and maintain working relationships by frequently traveling to development sites, holding face-to-face meetings, and supply of organizational charts.