Sevilla, Viernes 13 de Marzo del 2020. El Presidente del Gobierno declaraba el estado de alarma debido al maldito Covid y la Junta de Andalucía decidía cerrar todos los colegios. En la oficina todo el mundo andaba como loco, mi hermano me escribía que se iba a ir Tahilandia, nadie estaba centrado en el trabajo. Sobre las 15:00 se nos informaba de que el Lunes comenzariamos a teletrabajar desde casa hasta nueva orden, pero ¿Estabamos preparados?

Durante la pandemia he tenido oportunidad de Teletrabajar en dos empresas hasta ser “Full – Remote” para otra. Durante este tiempo he podido ver quienes estan preparados para trabajar desde casa y quienes no. En mi primera empresa usabamos Skype (mas tarde slash) para las comunicaciones, en la segunda y tercera Teams.

Cuando comence a Teletrabajar, nunca poniamos la camara, no nos veíamos la cara y yo tenía una sensación de soledad increible, más adelante me cambie a Wata, y ahí siempre poniamos la camara, hablabamos, nos reiamos y en 7 meses interactúe mas con mis compañeros que en 1 año y medio en la anterior. Ahora que soy “Full-Remote”, ponemos la cámara, hacemos eventos, nos reímos y aunque trabaje a más de 2000 km de mis compañeros tengo mucha mas sensación de cercanía. ¿Pero no ibas a hablar de herramientas para hacer Pair – Programming? Sí, a eso voy. En esta última empresa he descubierto que es hacer “Pair – Programming”, no es solo compartir codigo, es desplegar, ver logs, hacer dashboard, ….

Pero, ¿Que es pair-programming? El pair-programming es una técnica de desarrollo en que dos programadores crean una nueva funcionalidad y, para ello, trabajan en un solo ordenador. Esta técnica tiene las siguiente ventajas:

  • Dos personas tienen mejores ideas que una.
  • Es Mas eficiente.
  • Se cometen menos errores.
  • Hay una transferencia de conocimiento.
  • Se comparten habilidades.

Para ello existen tres estilos para hacer pair programming:

  • Ping-Pong: Me parece el estilo más divertido y, sobre todo utilizando TDD, uno de los integrantes hace un test, el otro lo resuelve y añade un nuevo test y, así, continuamente.
  • Desectructurado: Esta forma es desarrollar como nos apetezca, iremos hablando y desarrollando las nuevas funcionalidades un rato en un ordenador y otro en otro. Esta es la forma ideal de desarrollar cuando ambos son senior y se tiene el mismo conocimiento del codigo.
  • Driven Navigator: Este estilo de programar me parece el más adecuado cuando uno de los desarrolladores es “novato ” en el equipo o es un “junior”. De esta forma uno de los desarrolladores dirige el desarrollo del otro y va adquiriendo experiencia y conociendo los productos.

Si quieres más información te recomiendo leer estos dos articulos de dzone: https://dzone.com/articles/what-is-pair-programming y https://dzone.com/articles/what-is-pair-programming-advantages-challenges-tut

Las herramientas que he usado en mayor o menor medida son:

  • Teams: Esta es la famosa herramienta de Microsoft para comunicación. La verdad es que lo usamos a diario para comunicarnos. Tambien la hemos usado como herramienta de pair-programing, compartimos la pantalla y uno trabaja como driven y otro como pollas.
  • Drovio: La primera herramienta de pair-programing que he probado. Ofrece una serie de características limitadas por un precio competitivo. Nos permite controlar la pantalla de la otra persona y poco más. Funciona muy bien pero la usabilidad es limitada. Si se comparte la pantalla con dos o más personas empezamos a tener problemas de Lags.
  • Intellij: La primera vez que utilice esta herramienta fue hace un año y medio y no permitia ni chatear con tu compañero, ni con hablar con él pero si te permitia con trabajar con facilidad viendo el codigo de la otra persona. En la ultima versión con la que estuve trabajando habian mejorado muchisimo la experiencia de usuario y ya nos permitia interactuar con facilidad.
  • Tuple: Esta es la herramienta que usamos en la actualidad en mi empresa. La verdad es que tenemos problemas de lag por la vpn de la empresa. Sin embargo me ecanta esta herramienta, nos permite controllar el ordenador de la otra persona y va bastante fluida, podemos pintar la pantalla de la otra persona para indicar que cambios debe realizar o para dibujar algún tipo de idea. Me encanta esta herramienta.

Y como bonus os dejo la entrada de wata sobre como empezar a aplicar el pair-programming: https://wata.es/como-aplicar-pair-programming-al-inicio-de-un-proyecto/?lang=es

Last modified: 28/08/2022