Lessons learned by participants of distributed software development

The maturation of the technical infrastructure has enabled the emergence and growth of distributed software development. This has created tempting opportunities for companies to distribute their software development, for example, to economically favourable countries so as to gain needed expertise or to get closer to customers. Nonetheless, such distribution potentially creates problems that need to be understood and addressed in order to make possible the gains offered. To clarify and understand the most difficult problems and their nature, a survey of individuals engaged in distributed software development was conducted. The purpose of this survey was to gather and share lessons learned in order to better understand the nature of the software development process when operating in a distributed software development environment and the problems that may be associated with such distributed processes. Through a clear appreciation of the risks associated with distributed development it becomes possible to develop approaches for the mitigation of these risks. This paper presents the results of the survey, focusing on the most serious problems raised by the respondents. Some practical guidelines that have been developed by industry to overcome these problems are also briefly summarized. Copyright # 2005 John Wiley & Sons, Ltd.

[1]  Audris Mockus,et al.  Challenges of global software development , 2001, Proceedings Seventh International Software Metrics Symposium.

[2]  Pierluigi Ritrovato,et al.  GENESIS: A Flexible and Distributed Environment for Cooperative Software Engineering , 2003, SEKE.

[3]  Rafael Prikladnicki,et al.  Global software development in practice lessons learned , 2003, Softw. Process. Improv. Pract..

[4]  Piyush Maheshwari,et al.  A distributed software project management tool , 1999, Proceedings. IEEE 8th International Workshops on Enabling Technologies: Infrastructure for Collaborative Enterprises (WET ICE'99).

[5]  Ian Gorton,et al.  Issues in co-operative software engineering using globally distributed teams , 1996, Inf. Softw. Technol..

[6]  Pierluigi Ritrovato,et al.  Generalised environment for process management in cooperative software engineering , 2002, Proceedings 26th Annual International Computer Software and Applications.

[7]  W. W. Royce,et al.  Managing the development of large software systems , 1970 .

[8]  Larry Press Software export from developing nations , 1993, Computer.

[9]  Mary Beth Rosson,et al.  Effectiveness of elicitation techniques in distributed requirements engineering , 2002, Proceedings IEEE Joint International Conference on Requirements Engineering.

[10]  Christof Ebert,et al.  Surviving Global Software Development , 2001, IEEE Softw..

[11]  Z. Milosevic,et al.  Supporting business contracts in open distributed systems , 1995, Second International Workshop on Services in Distributed and Networked Environments.

[12]  K. Subramanian,et al.  Leveraging Resources in Global Software Development , 2001, IEEE Softw..

[13]  Even-André Karlsson,et al.  Daily build and feature development in large distributed projects , 2000, Proceedings of the 2000 International Conference on Software Engineering. ICSE 2000 the New Millennium.

[14]  Daniela Damian The Study of Requirements Engineering in Global Software Development: As Challenging as Important , 2002 .

[15]  Dennis Heimbigner,et al.  A generic, peer-to-peer repository for distributed configuration management , 1996, Proceedings of IEEE 18th International Conference on Software Engineering.

[16]  Richard H. Thayer,et al.  System and Software Requirements Engineering , 1994 .

[17]  Fred Niederman,et al.  Facilitation issues in distributed group support systems , 1993, SIGCPR '93.

[18]  Audris Mockus,et al.  An empirical study of global software development: distance and speed , 2001, Proceedings of the 23rd International Conference on Software Engineering. ICSE 2001.

[19]  Carlo Ghezzi,et al.  Design and implementation of PROSYT: a distributed process support system , 1999, Proceedings. IEEE 8th International Workshops on Enabling Technologies: Infrastructure for Collaborative Enterprises (WET ICE'99).

[20]  J. Herbsleb,et al.  Global software development , 2001 .

[21]  Frank Maurer,et al.  A concept for supporting the formation of virtual corporations through negotiation , 1999, Proceedings. IEEE 8th International Workshops on Enabling Technologies: Infrastructure for Collaborative Enterprises (WET ICE'99).

[22]  David F. Redmiles,et al.  Supporting Global Software Development with Event Notification Servers , 2002 .

[23]  Piyush Maheshwari,et al.  Task and team management in the Distributed Software Project Management Tool , 2001, 25th Annual International Computer Software and Applications Conference. COMPSAC 2001.

[24]  Christof Ebert,et al.  The Top Risks of Requirements Engineering , 2001, IEEE Softw..