Background: Distributed Pair Programming can be performed via screensharing or via a distributed IDE. The latter offers the freedom of concurrent editing (which may be helpful or damaging) and has even more awareness deficits than screen sharing. Objective: Characterize how competent distributed pair programmers may handle this additional freedom and these additional awareness deficits and characterize the impacts on the pair programming process. Method: A revelatory case study, based on direct observation of a single, highly competent distributed pair of industrial software developers during a 3-day collaboration. We use recordings of these sessions and conceptualize the phenomena seen. Results: 1. Skilled pairs may bridge the awareness deficits without visible obstruction of the overall process. 2. Skilled pairs may use the additional editing freedom in a useful limited fashion, resulting in potentially better fluency of the process than local pair programming. Conclusion: When applied skillfully in an appropriate context, distributed-pair programming can (not will!) work at least as well as local pair programming.
All software projects face the challenges of diverse distances -- temporal, geographical, cultural, lingual, political, historical, and more. Many forms of distance even affect developers in the same room. The goal of this book is to reconcile two mainstays of modern agility: the close collaboration agility relies on, and project teams distributed across different cities, countries, and continents.In Agile Software Development with Distributed Teams, Jutta Eckstein asserts that, in fact, agile methods and the constant communication they require are uniquely capable of solving the challenges of distributed projects. Agility is responsiveness to change -- in other words, agile practitioners maintain flexibility to accommodate changing circumstances and results. Iterative development serves the learning curve that global project teams must scale.This book is not about how to outsource and forget your problems. Rather, Eckstein details how to carefully select development partners and integrate efforts and processes to form a better product than any single contributor could deliver on his or her own. The author de-emphasizes templates and charts and favors topical discussion and exploration. Practitioners share experiences in their own words in short stories throughout the book. Eckstein trains readers to be change agents, to creatively apply the concepts in this book to form a customized distributed project plan for success.  The importance of communication and trust in the context of global virtual teams has been noted and reiterated in the information systems (IS) literature. Yet precisely how communication and trust influence certain outcomes within virtual teams remains unresolved. In this study, we seek to contribute some clarity to the understanding of the theoretical linkages among trust, communication, and member performance in virtual teams. To this end, we identify and test three proposed models (additive, interaction, and mediation) describing the role of trust in its relationship with communication to explain performance. In testing the relationships, we note that the concepts of communication and trust are inherently relational and not properties of individuals. Thus, we argue that a social network approach is potentially more appropriate than attribute-based approaches that have been utilized in prior research. Our results indicate that the "mediating" model best explains how communication and trust work together to influence performance. Overall, the study contributes to the existing body of knowledge on virtual teams by empirically reconciling conflicting views regarding the interrelationships between key constructs in the literature. Further, the study, through its adoption of the social network analysis approach, provides awareness within the IS research community of the strengths of applying network approaches in examining new organizational forms. Coordination is important in software development because it leads to benefits such as cost savings, shorter development cycles, and better-integrated products. Team cognition research suggests that members coordinate through team knowledge, but this perspective has only been investigated in real-time collocated tasks and we know little about which types of team knowledge best help coordination in the most geographically distributed software work. In this field study, we investigate the coordination needs of software teams, how team knowledge affects coordination, and how this effect is influenced by geographic dispersion. Our findings show that software teams have three distinct types of coordination needs-technical, temporal, and process-and that these needs vary with the members' role; geographic distance has a negative effect on coordination, but is mitigated by shared knowledge of the team and presence awareness; and shared task knowledge is more important for coordination among collocated members. We articulate propositions for future research in this area based on our analysis. Nowadays, distributed development is common in software development. Besides many advantages, research in the last decade has consistently found that distribution has a negative impact on collaboration in general, and communication and task completion time in particular. Adapted processes, practices and tools are demanded to overcome these challenges. We report on an empirical study of communication structures and delay, as well as task completion times in IBM's distributed development project Jazz. The Jazz project explicitly focuses on distributed collaboration and has adapted processes and tools to overcome known challenges. We explored the effect of distance on communication and task completion time and use social network analysis to obtain insights about the collaboration in the Jazz project. We discuss our findings in the light of existing literature on distributed collaboration and delays.  Abstract We conducted an industrial case study of a distributed team in the USA and the Czech Republic that used Extreme Programming. Our goal was to understand how this globally-distributed team created a successful project in a new problem domain using a methodology that is dependent on informal, face-to-face communication. We collected quantitative and qualitative data and used grounded theory to identify four key factors for communication in globally-distributed XP teams working within a new problem domain. Our study suggests that, if these critical enabling factors are addressed, methodologies dependent on informal communication can be used on global software development projects. Distribution of development processes has become common as a side effect of globalization. Working in a distributed setting brings challenges inherent to distance. The Software Engineering community has been investigating these challenges for over a decade, and issues regarding communication, coordination, and trust are frequently reported in literature. However, a few studies discuss solutions for these challenges. Frequently, best practices are described in a general context. In this paper we report our findings from a systematic literature review that aimed at identifying reported challenges and the proposed solutions to solve such challenges. In a time that distributed development has established its roots, it is important to move towards solutions to well-known problems. Our report aims to establish a baseline of problems that still need solutions. This baseline brings awareness to the global software engineering community. We finish discussing the implications for furthering the body of knowledge in the field.