, University of Victoria
, Infosys Technologies
Pages: pp. 17-19
Globalization of innovation and markets has dramatically impacted software development. Today, more software projects are run in geographically distributed environments, and global software development is becoming a norm in the software industry. Overcoming time and distance, many organizations have distributed software development across geographies to capitalize on global resource pools, attractive cost structures, and round-the-clock development to achieve cycle-time acceleration and cater to local markets.
Over the past decade, research and practitioner reports have revealed globally distributed software development's unique nuances, complexities, and challenges. These range from economic, technical, organizational, and cultural issues to those arising from different time zones, languages, and geographical locations. Furthermore, although it's true that a body of knowledge on global software development has been crafted over time, the art and science of organizing and managing globally distributed software development is still evolving. These issues motivated us to present this special issue.
Global software development as a discipline has grown substantially richer through practice-influencing research and proven practices themselves. However, there's still a significant understanding to be achieved, methods and techniques to be developed, and practices to be evolved before it becomes a mature discipline. One of our main objectives has been to assess the gap between the state of the art and the state of the practice and to present a set of articles that can inform and advance global software development.
Despite the challenges and complexities involved in organizing and managing globally distributed software development, this phenomenon's pace has been remarkable. Global software development seems to have become a business necessity for various reasons, including cost, scarcity of resources, and the need to locate development closer to the customers. In fact, it is fast becoming a pervasive business phenomenon. Therefore, effective strategies and practices to successfully organize and manage global software development become critical.
With the intensification of globalization and the resulting growth in globally dispersed software development, the need for understanding the engineering and management approaches necessary for successful global software development has only become more pronounced. Also, over the years, the approaches and practices involved in organizing and managing global software development have undergone refinement, and new, effective practices have emerged. We continue to discover not only the complexity of the global software development phenomenon but also advances in knowledge management and requirements engineering practices, as well as supporting tools, as presented in this issue's articles. Aside from this special issue, a growing number of events are addressing global software development, from international conferences such as the International Conference on Global Software Engineering (ICGSE 06, www.icgse.org) and the International Conference on Management of Globally Distributed Work (GDW 07, www.globalwork.in/ICMGDW2007/index.html) to workshops at various international conferences.
The five articles presented here meet our goals of having the potential to inform and advance global software development and pointing to new investigation avenues.
In "A Practical Management and Engineering Approach to Offshore Collaboration," James Cusick and Alpana Prasad distill their US-based-company experience in managing offshore collaboration in the past 10 years with various partners in China, the UK, India, and Japan. They share key practices and insights that can help you effectively leverage cross-shore resources.
Although global software development leads to a round-the-clock innovation engine, it also substantially complicates knowledge management. In "Managing Knowledge in Global Software Development Efforts: Issues and Practices," Kevin C. Desouza, Yukika Awazu, and Peter Baloh present lessons from their research into global software development organizations' knowledge management practices. Specifically, they discuss knowledge management strategies, offer advice on setting up a distributed knowledge management system, and provide actionable insights for capturing knowledge.
Effective requirements engineering is a key challenge in global software development, and the problem gets aggravated when software development becomes a multisite, multiparty affair—a rising trend. In "Overcoming Requirements Engineering Challenges: Lessons from Offshore Outsourcing," Jyoti M. Bhat, Mayank Gupta, and Santhosh N. Murthy use their experiences to present a framework based on best practices for requirements engineering in such software development settings. Oriented in the people-process-technology paradigm, their framework presents proven practices in four key areas: shared goals, shared culture, shared processes, and shared responsibility.
In dealing with global software development, we need a structured conceptual framework with which to understand the various aspects of distribution and their impact on global software projects' performance. In "Distribution Dimensions in Software Development Projects: A Taxonomy," Dorina C. Gumm identifies four dimensions of distributed software development: physical distribution, organizational distribution, temporal distribution, and distribution among different stakeholder groups. The proposed taxonomy promises benefits to researchers and practitioners in analyzing and classifying globally distributed projects. To demonstrate the taxonomy's application, Gumm describes a case study of distributed software development that used the requirements engineering process as a lens for analyzing project distribution. Some findings indicate that the organizational distance within the project team and between team members and users, as well as between different user groups, is the biggest challenge—even greater than the physical distance.
Drawing on their work with global software teams, Vibha Sinha, Bikram Sengupta, and Satish Chandra present a tool for collaboration in distributed requirements management and discuss its salient features in "Enabling Collaboration in Distributed Requirements Management." The ongoing communication between on-site business analysts and offshore development teams is a reality in global projects, and tool support for effective discussions around requirements—as well as for managing requirements changes across multiple sites—is limited. Sinha and her colleagues propose EGRET ( Eclipse-based global requirements tool), the prototype of a collaborative requirements management tool, to support communication and requirements management across distributed teams.
We also present a Point/Counterpoint department that features the views of two senior industry executives, Sharad Sharma and Girish Seshagiri. They debate whether global software development has paid off and whether it has indeed become a business necessity.
Given global software development's growing importance, robust models, methods, processes, and tools are required to effectively and efficiently organize and execute global software work, especially the complexity of such work is growing. Although significant advances have taken place in this regard, much still needs to be done to assure predictability, efficiency, effectiveness, and consistency in global software development. This special issue is an effort in that direction with the hope that the readers of IEEE Software will find the contents useful.