Servicios Personalizados
Revista
Articulo
Indicadores
- Citado por SciELO
- Accesos
Links relacionados
- Similares en SciELO
Compartir
Computación y Sistemas
versión On-line ISSN 2007-9737versión impresa ISSN 1405-5546
Comp. y Sist. vol.11 no.3 Ciudad de México ene./mar. 2008
Potential and Actual Collaboration Support for Distributed PairProgramming
Soporte a Colaboración Potencial y Real para Programación en Pares Distribuida
Alberto L. Morán1, Jesús Favela2, Raúl Romero2, Hiroshi Natsu3, Cynthia Pérez2, Omar Robles3 and Ana María Martínez Enríquez4
1 Facultad de Ciencias, UABC, Ensenada, México, email: alberto_moran@uabc.mx
2 Ciencias de la Computación, CICESE, Ensenada, México, emails: favela@cicese.mx, romero@cicese.mx, cbperez@cicese.mx
3 Code Services, Ensenada, B.C., México, emails: hnatsu@codeservices.com.mx, orobles@codeservices.com.mx
4 Departamento de Computación, CINVESTAV, México D.F., México, email: ammartin@cinvestav.mx
Article received on July 31, 2007
Accepted on October 30, 2007
Abstract
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 collaborationtransparent applications which do not support these features.
Keywords: Pair Programming, Distributed Software Development, Collaboration Awareness, Actual and Potential Collaboration, Empirical Evaluation.
Resumen
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 colocalizados 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 colocalizados 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 colocalizados. 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.
Palabras clave: Programación en Pares, Desarrollo Distribuido de Software, Conciencia de Colaboración, Colaboración Potencial y Real, Evaluación Empírica.
DESCARGAR ARTÍCULO EN FORMATO PDF
References
1. Abrahamsson, P., Warsta, J., Siponen, M.T., Ronkainen, J., New directions on agile methods: a comparative analysis, Proceedings of the 25th International Conference on Software Engineering, May 0310, 2003, Portland, Oregon, pp. 244254. [ Links ]
2. Baheti, P., Gehringer, E., and D. Stotts. Exploring the efficacy of distributed pair programming, Proceedings Extreme Programming and Agile Methods XP/Agile Universe 2002, August 2002, p. 208220. [ Links ]
3. Beck, K., Extreme Programming Explained, Embrace Change, AddisonWesley, pp. 190, 2000. [ Links ]
4. Bly S., Harrison S. and Irwin S., "Media Spaces: Bringing People Together in a Video, Audio and Computing Environment", Communications of the ACM, 36(1), January 1993. [ Links ]
5. Calvary, G., Coutaz, J., and Nigay, L: From SingleUser Architectural Design to PAC*: a Generic Software Architecture Model for CSCW, Proceedings of CHI 97, ACM publ., pp. 242249. [ Links ]
6. Cockburn A. and Williams L., The Cost and Benefits of Pair Programming. Addison Wesley. (2001). [ Links ]
7. Ellis, C.A., Gibbs, S.J., and Rein, G.L., Groupware: Some issues and experiences, CACM, Vol. 34, No. 1, pp. 3858. [ Links ]
8. Gaver, W., Moran, T., Maclean, A., Lövstrand, L., Dourish, P., Carter, K., Buxton, W.: Realizing a Video Environment: EuroPARC's RAVE System. In: Proc. CHI'92, ACM Press, Monterrey CA (USA). May 37 (1992) 2735. [ Links ]
9. Herbsleb, J.D. and Mockus, A. (2003). An Empirical Study of Speed and Communication in GloballyDistributed Software Development. IEEE Transactions on Software Engineering, 29(3), 2003, pp. 114. [ Links ]
10. Herbsleb, J.D. and Moitra, D., Global Software Development. IEEE Software. 18(2), (2001), 1620. [ Links ]
11. Kircher M., Jain P., Corsaro A., and Levine D., Distributed Extreme Programming. Extreme Programming and Flexible Processes in Software Engineering, Italy, May, (2001) [ Links ]
12. Morán, A. L., Favela, J., Martínez, A. M. and Decouchant, D., Document Presence Notification Services for Collaborative Writing. In Proc. of CRIWG'2001. IEEE Computer Press. Darmstadt, Germany, Sept. 68, (2001), 125133. [ Links ]
13. Morán, A. L., Favela, J., Martínez, A. M. and Decouchant, D., On The Design of Potential Collaboration Spaces, in "Current Approaches for Groupware Design, Implementation and Evaluation", Borges, M., Haake, J. and Pino, J. (Eds.), The International Journal of Computer Applications in Technology (IJCAT), ISSN 019528091, Vol. 19, No. 3/4, 2004, pp. 184194. [ Links ]
14. Natsu, H., Favela, J., Morán, A.L., Decouchant, D., and Martinez, A.M., Distributed Pair Programming in the Web. In Proc. ENC'03, IEEE Comp Society, Mexico, 2003, 8188. [ Links ]
15. Sanders, D., "Student Perceptions of the Suitability of Extreme and Pair Programming", in Extreme Programming Examined M. Marschesi, and G. Succi, D., Wells and L. Williams (eds.) Boston, MA, Addison Wesley, 2002, pp. 261271. [ Links ]
16. Stephens, M. and Rosenberg, D., Extreme Programming Refactored: The Case Against XP, Apress, pp. 432, 2003. [ Links ]
17. Stotts, D., Williams, L., Nagappan, N., Baheti, P., Jen, D. and A. Jackson, Virtual Teaming: Experiments and experiences with distributed pair programming, Proceedings of the Third XP Agile Universe Conference (Springer LNCS 2753), pages 129 141, August 2003. [ Links ]
18. Tang, J. C., Isaacs, E. A., Rua, M.: Supporting Distributed Groups with a Montage of Lightweight Interactions. In: Proc. of CSCW'94, ACM Press, Chapel Hill NC (USA) October 2226 (1994) 2334. [ Links ]
19. Warsta, J. and Abrahamsson, P., Is Open Source Development Essentially an Agile Method?, 3rd Workshop on Open Source Software Engineering, Portland, Oregon, 2003. [ Links ]
20. Whitehead E. J., Collaborative Authoring on the Web: Introducing WebDAV. Bulletin of the American Society for Information Science, 25(1), (1998), 2529 [ Links ]
21. Williams L. and Kessler R., All I Really Need to Know about Pair Programming I Learned in Kindergarten. CACM, 43(5), (2000), 109114. [ Links ]
22. Williams L., Kessler R., Cunningham W., Jeffries R., Strengthening the Case for Pair Programming. IEEE Software, 17(4), (2000), 1925. [ Links ]