摘要:En la programación en pares una técnica de desarrollo de software que forma parte de la Programación Extrema (XP) dos desarrolladores trabajan uno al lado del otro, en una sola computadora, para producir conjuntamente un artefacto. Se ha reportado que la Programación en Pares permite el desarrollo de software de mayor calidad en la mitad del tiempo que requiere a un sólo programador. Los programadores en pares deben estar co-localizados debido a que requieren una comunicación continua y fluida. Sin embargo, la globalización de la industria del software, y el crecimiento del desarrollo de software de código abierto son tendencias que motivan la necesidad de dar soporte a la Programación en Pares Distribuida. Para que la programación en pares distribuida sea efectiva, el soporte debe facilitar no sólo la colaboración real en pares, si no también el establecimiento de pares de colegas distribuidos, y de una manera oportunística y flexible. En este artículo presentamos el editor colaborativo COPPER, desarrollado usando el Modelo de Espacios Colaborativos, para dar soporte a la programación en pares, tanto para la colaboración real, como para la Colaboración Potencial; la conciencia de oportunidades para la colaboración cuando un colega distribuido está disponible o trabajando en un archivo de interés común. También presentamos los resultados de una evaluación empírica de las características de la herramienta que dan soporte a la colaboración real. La evaluación considera tres condiciones de trabajo diferentes: pares co-localizados usando una sola computadora, pares distribuidos usando una aplicación en modo compartido, y pares distribuidos usando una herramienta conciente de la colaboración. En los tres casos los sujetos usaron el editor colaborativo COPPER. Los resultados apoyan nuestra hipótesis de que los pares distribuidos pueden encontrar la misma cantidad de errores que sus contrapartes co-localizados. Sin embargo, no se encontró evidencia de que los pares que usaron los servicios de colaboración real tuvieran una mejor comprensión del código, como se había establecido en otra hipótesis. De manera global, de acuerdo con los comentarios de los participantes en la evaluación, COPPER mejora la Programación en Pares Distribuida, en formas sutiles pero significativas, al permitir el trabajo concurrente y al mantener de mejor manera la conciencia de las acciones concurrentes realizadas por el par, en contraste con aplicaciones que no soportan estas características.
其他摘要:In Pair Programming a software development technique that is part of Extreme Programming (XP) two developers work side by side, on a single computer, to jointly produce an artifact. It has been reported that Pair Programming can be accounted for the development of higher quality software in half the time it required a single programmer. Pair programmers are meant to be collocated since they require continuous and fluid communication. However, the globalization of the software industry and the growth of open source software development are trends that motivate the need to support Distributed Pair Programming. For distributed pair programming to be effective, its support should facilitate not only actually collaborating in pairs, but also the pairing of distributed colleagues in an opportunistic and flexible manner. In this paper we present the COPPER collaborative editor, developed using the Collaborative Spaces Model, to support pair programming during actual collaboration, and for potential collaboration; awareness on the opportunities for collaboration when a distributed colleague is available or working on a file of common interest. We also present the results of an empirical evaluation of the actual collaboration features of the tool. The evaluation considered three different working conditions: pairs collocated sharing a single computer; distributed pairs using application sharing mode; and distributed pairs using collaboration aware facilities. In all three cases the subjects used the COPPER collaborative editor. The results support our hypothesis that distributed pairs could find the same amount of errors as their collocated counterparts. However, no evidence was found that the pairs that used actual collaboration awareness services had better code comprehension, as we had also hypothesized. Overall, according to comments from evaluation participants´, COPPER improves Distributed Pair Programming, in subtle but significant ways, by allowing concurrent work and better maintaining awareness on the concurrent actions of the pair, in contrast to collaboration-transparent applications which do not support these features.
关键词:Pair Programming; Distributed Software Development; Collaboration Awareness; Actual and Potential Collaboration; Empirical Evaluation;Programación en Pares; Desarrollo Distribuido de Software; Conciencia de Colaboración; Colaboración Potencial y Real; Evaluación Empírica