Chapter 10. Managing Global Development

10.1 Chapter Objectives

After reading and thinking about the concepts and case studies presented in this chapter, you will be able to do the following:

• Understand the impact of global software development on software project management

• Identify key issues and decisions involving the management of global development in the chapter case studies

• Use the chapter concepts to suggest feasible solutions to the problems faced by the case study stakeholders

• Recognize the importance of managing global software development

10.2 Context

Global software development typically refers to software collaboratively developed by one or more project groups whose groups members are located in different buildings, geographical areas, countries, or continents. The geographically dispersed group members may be working on the development of one or more interacting software systems and may consist of people from one or more organizations. Global development can go across companies as well as countries or cultural boundaries. The concepts distributed software development and remote or virtual software development teams also pertain to the collaborative development of software by people in different geographical locations, but they do not highlight the fact that the people may be globally separated. In the case of telecommuting, team members may be dispersed as they work in their homes but still be located in the same geographical area.

The demand for global software development continues to grow as companies search globally for economic benefits such as low-cost or specialized skilled labor; localities where the tax, regulatory, or other governmental policies are favorable to their businesses; better access to markets; and so on. Global software development frequently involves outsourcing, or contracting professionals from outside the company to perform software development. The outsourced people may work independently or be associated with another company. Outsourcing usually involves distributed software development. When deciding whether to outsource software development or maintenance, decision makers must weigh the costs with respect to the benefits.

For example, chief information officers frequently decide to outsource their computing infrastructures to reduce cost, to optimize service, to transform to new technologies, or to improve operational efficiency through the best use of resources (especially if the organization itself is global). Sometimes the cost savings do not outweigh the challenges posed by offshoring. CIOs must consider issues related to training, governance and compliance, politics, turnover, geographic and time zone differences, required skill sets, and custom code that needs support. Making decisions to outsource computing infrastructure to an offshore site requires you to consider many factors (Overby 2008).

Managing global software development has become a ubiquitous, inevitable, and challenging management issue for organizations that develop or maintain software. In particular, global software development makes project management more challenging. The geographical, time zone, and cultural differences of globally dispersed project stakeholders complicate communications and collaboration. The added complexity makes it difficult to handle the project management areas discussed in this book. Project activities that require high degrees of communication and coordination are most challenging. Front-end project activities such as eliciting requirements, architecting software systems, and negotiating and planning projects are difficult to accomplish when the software stakeholders are geographically separate and culturally different.

For a specific example in the area of managing plans, let’s consider the development of task breakdowns and task assignments in the context of global software development. When developing a task breakdown, project managers need to consider task granularity as well as task cohesion and coupling. Smaller tasks increase the opportunity for tasks to be executed in parallel across distributed development sites but also increase coupling between related tasks. Maintaining the cohesive wholeness of smaller tasks being performed at different sites requires adequate communication and coordination, two factors that are complicated by distributed software development. Making decisions about task breakdowns and task assignments involves tradeoffs between the benefits of global software development and the added complexity of managing coordination of globally distributed tasks.

The management areas and activities discussed earlier in the book are the same for global software development projects, but additional factors influence the decisions that are made in these areas. To understand the complexity added by global development, you can look at some decisions in each management area that are more complex when the software project members are globally dispersed. For each management area, the project manager needs to consider how the global distribution of the team impacts the activities and decisions for that area. Table 10-1 outlines for each management area some example decisions that are impacted by global software development.

Table 10-1: Impact of Global Software Development on Decisions by Management Area

image

image

image

As you probably noticed, many of the decisions in Table 10-1 are related to managing global communications, collaboration, and coordination. Best practices, such as the following, can facilitate effective communications and collaboration for global software development efforts:

• Establish trust across sites by being even more responsive to remote colleagues than to local ones.

• Set up liaisons at each site to facilitate cross-site communication practices.

• Establish etiquette for answering e-mail and voice mail messages in a timely way. Plan for travel early in the relationship between sites for people to meet and plan (Atkins et al. 2001).

Addressing the coordination problem that makes global software development challenging, Wagstrom and Herbsleb (2006) present an approach to systematically determine developers who need to coordinate their work and who therefore require more communication. This information can help project managers target and facilitate communications that are critical to project success.

In addition to nontechnical decisions related to communication and collaboration, project managers must make technical decisions such as the following that emerge in a global software development environment:

• What technologies will be used to facilitate voice and video communications (telecommunications) as well as collaborative work between geographically separated project members?

• What technologies will be used to store and share information across globally dispersed teams?

• When considering the use of commercial software components versus the development of custom components for a software solution, how does the opportunity to develop components globally factor into the decision?

Managers of global software development also need to pay particular attention to decisions about the software development and project management processes used across globally distributed sites. Global standardization of processes accompanied by localized process control helps ensure uniform productivity and quality across distributed development sites. Researchers have analyzed factors that enhance or hinder communication, coordination, and control for global software development with respect to geographical, temporal, and sociocultural differences (Ågerfalk and Fitzgerald 2006).

Two other research studies investigate the impact of process control on the success of global software development projects. Lee et al. (2006) discuss a survey of managers of global software development projects. They found that successful projects establish strategies for flexibly coping with challenges such as geographical and time separations early in the project along with agreements about processes that are be followed. Successful global software development projects exhibit both flexibility in coping with the challenges of software development and disciplined adherence to process agreements. Ramasubbu et al. (2008) empirically studied the effect of software process improvement initiatives on offshore software project productivity and quality. They found that investments in structured processes and the corresponding process-based learning activities can help improve offshore project performance.

Many authors have written about issues related to global software development and the management of globally distributed software development teams. See Carmel (1999), Carmel and Tjia (2005), Hussey and Hall (2007), Karolak (1998), and Sangwan et al. (2006) to acquire general background on global software development. For articles in the Communications of the ACM about global software development, globally distributed projects and organizations, and offshore outsourcing, reference Gupta (2009), Desouza and Evaristo (2004), Lee et al. (2006), and Wagstrom and Herbsleb (2006), as well as other related articles in Communications of the ACM (2006). For a discussion of the effect of cultural, geographical, or time differences on decision making within organizations and projects, explore Bourgault et al. (2008), Brett (2001), Espinosa et al. (2007), Shore (2008), and Wang and Liu (2007). More specifically, Damian (2007) discusses stakeholder needs in global requirements engineering (GRE) and offers practical advice, based on industrial empirical studies, for managing the challenges associated with GRE.

As noted earlier, this chapter does not introduce new project management activities. Rather, it illustrates how project management activities and decisions discussed in prior chapters have additional challenges as well as potential opportunities when a software project involves global development. It shows how factors such as communication, culture, collaboration, and storage and sharing of information within a global development context are inputs to project decisions made with consideration of scope, time, quality, and cost.

10.3 Case Studies

The case studies in this chapter focus on project management issues that particularly affect global software development. The first case study, “Globally Distributed Team: FibreNet Project,” highlights issues of communication, collaboration, and trust when project teams are globally distributed. The second case study, “Managing Global Software Development at FibOptia,” looks at problems specific to global software development in managing process, product quality, and cost. Read these case studies to better understand the challenges of managing global software development.

10.4 Summary

Global software development is a ubiquitous and critical element of the global computer, software, and information technology industries. Managers worldwide face decisions that are more complex because of the impact that global software development has on communication, collaboration, and coordination across globally distributed project teams. Factors such as cultural differences, geographical and time separation, trust, and the limits of communication technologies affect the ability of a global project team to conduct the dialogue needed to achieve project objectives in a collaborative way. Failure to plan for communication, collaboration, and coordination at the beginning of a project and then to follow the agreed-upon protocols for how these should be accomplished frequently results in projects in which team members who are geographically separated have problems working and making decisions together on project tasks.

The case studies in this chapter focused on project management issues and decisions that affect global software development. The first case study, “Globally Distributed Team: FibreNet Project,” highlighted issues of communication, collaboration, and trust for a globally distributed team. More specifically, the case study revealed challenges associated with sharing information and making software decisions in a global development environment. The second case study, “Managing Global Software Development at FibOptia,” focused on problems and decisions regarding how to manage process, product quality, and cost in a global software development environment. The senior software manager in this case also needed to decide how to establish trust among a globally distributed team.

Managing global software development starts with an evaluation of decisions regarding how to handle communication, collaboration, and coordination within a global environment.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset