SciELO - Scientific Electronic Library Online

 
vol.11 número3Uso de Diagramas de Estado UML para la Modelación del Desempeño de Programas ParalelosPareo de Colores mediante Búsqueda de Series de Tiempo en Bases de Datos de Color índice de autoresíndice de assuntospesquisa de artigos
Home Pagelista alfabética de periódicos  

Serviços Personalizados

Journal

Artigo

Indicadores

Links relacionados

  • Não possue artigos similaresSimilares em SciELO

Compartilhar


Computación y Sistemas

versão On-line ISSN 2007-9737versão impressa ISSN 1405-5546

Comp. y Sist. vol.11 no.3 Ciudad de México Jan./Mar. 2008

 

Potential and Actual Collaboration Support for Distributed Pair–Programming

 

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, e–mail: alberto_moran@uabc.mx

2 Ciencias de la Computación, CICESE, Ensenada, México, e–mails: favela@cicese.mx, romero@cicese.mx, cbperez@cicese.mx

3 Code Services, Ensenada, B.C., México, e–mails: hnatsu@codeservices.com.mx, orobles@codeservices.com.mx

4 Departamento de Computación, CINVESTAV, México D.F., México, e–mail: 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 collaboration–transparent 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 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.

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 03–10, 2003, Portland, Oregon, pp. 244–254.        [ 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. 208–220.        [ Links ]

3. Beck, K., Extreme Programming Explained, Embrace Change, Addison–Wesley, 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 Single–User Architectural Design to PAC*: a Generic Software Architecture Model for CSCW, Proceedings of CHI 97, ACM publ., pp. 242–249.        [ 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. 38–58.        [ 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 3–7 (1992) 27–35.        [ Links ]

9. Herbsleb, J.D. and Mockus, A. (2003). An Empirical Study of Speed and Communication in Globally–Distributed Software Development. IEEE Transactions on Software Engineering, 29(3), 2003, pp. 1–14.        [ Links ]

10. Herbsleb, J.D. and Moitra, D., Global Software Development. IEEE Software. 18(2), (2001), 16–20.        [ 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. 6–8, (2001), 125–133.        [ 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 01952–8091, Vol. 19, No. 3/4, 2004, pp. 184–194.        [ 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, 81–88.        [ 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. 261–271.        [ 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 22–26 (1994) 23–34.        [ 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), 25–29        [ Links ]

21. Williams L. and Kessler R., All I Really Need to Know about Pair Programming I Learned in Kindergarten. CACM, 43(5), (2000), 109–114.        [ Links ]

22. Williams L., Kessler R., Cunningham W., Jeffries R., Strengthening the Case for Pair Programming. IEEE Software, 17(4), (2000), 19–25.        [ Links ]

Creative Commons License Todo o conteúdo deste periódico, exceto onde está identificado, está licenciado sob uma Licença Creative Commons