Pair programming en tiempos de cuarentena

Como desarrollador en Biko he tenido la oportunidad de trabajar e interactuar con mis compañeros de maneras muy dispares debido a los diferentes modelos de conciliación que he seguido. Inicialmente comencé trabajando en remoto desde la Universidad en la misma ciudad, para después empezar a trabajar desde la oficina, para volver a irme a trabajar en remoto (ahora sí en otra ciudad), para después volver a la oficina, para terminar de nuevo en casa por la cuarentena.

Aparte de esto, actualmente me está tocando liderar un equipo de desarrollo en el que prácticamente la mitad de los integrantes están en la otra esquina de la Península, así que el trabajo con ellos siempre es en remoto. Esto nos obliga a buscar la forma de hacer equipo en la distancia y evitar perder todo lo bueno de trabajar codo con codo.

Además, por todos es sabido que a los desarrolladores nos encanta trabajar en equipo e interactuar con nuestros compañeros. Pasar un día sin el contacto de otro programador hace que el día sea vea gris y se nos hace muy cuesta arriba. Perder la posibilidad de hacer pair programming, sin la posibilidad de mirar desde detrás de tu compañero su pantalla, por encima del hombro, mientras le das indicaciones sin que atine ni una para terminar con un “¡Aparta que que lo hago yo!”.

(nótese la ironía) 😀

Por suerte para mí y para ti, ¡podemos seguir haciéndolo!

Pair programming

Desde hace mucho tiempo en Biko usamos una práctica conocida como pair programming. Si te interesa saber en qué consiste y qué ventajas proporciona, únicamente tienes que seguir leyendo. 

El concepto del pair programming es muy sencillo. Consiste en dos desarrolladores trabajando en un único ordenador. Mientras uno de los desarrolladores va escribiendo el código, el compañero va revisando lo que hace, y ayudándole a llegar a la mejor solución posible.

Esta idea de tener a dos trabajadores en un único equipo puede hacer que pienses que se va a penalizar el rendimiento y que van a sacar adelante la mitad del trabajo, pero no es así. El tener 2 personas pensando juntas en el mismo problema ayuda a encontrar la mejor solución más rápido y, durante la ejecución de la misma, se reduce el número errores debido a que la labor de uno de los integrantes consiste únicamente en revisar el trabajo del otro compañero. ¡En cuanto se engrasen las tuercas de la pareja de programadores pueden sacar incluso más trabajo que trabajando de forma individual!

Por otro lado, el trabajar en equipo facilita el traspaso de conocimiento tanto del proyecto en sí, como de habilidades de desarrollo. Por un lado, ambos desarrolladores han llegado conjuntamente a la solución, por lo que conocen el por qué de la misma. Además ambos ven y revisan el resultado final, por lo que el código generado deja de ser un silo de conocimiento de un único desarrollador. Por otro lado, al desarrollar codo con codo, hace que ambos desarrolladores compartan su conocimiento, ayudando así a mejorar profesionalmente. Ambas ventajas tienen un impacto muy positivo en el rendimiento del equipo a medio y largo plazo.

Y por último y posiblemente la más importante de todas… ¡Se hace equipo! (o como diríamos habitualmente “team building”). No hay nada más efectivo para aumentar la moral y el rendimiento de tu equipo que tener un buen ambiente de trabajo en el que el compañerismo está presente en cada uno de los miembros.

¿Y cómo hacemos esto desde nuestra casa?

La verdad que para ver la pantalla de nuestro compañero tenemos un gran número de herramientas que nos permiten compartir escritorio pero… ¿Qué te parece si te digo que puedes agregarle una nueva dimensión al pair programming y convertirlo en una sesión colaborativa?

Para esta sesiones de pair programming 2.0 el editor de código Visual Studio Code pone a nuestra disposición la extensión Visual Studio Live Share. ¿Y qué nos ofrece esta extensión?

  • Editar de manera dinámica y colaborativa el código a tiempo real
  • Realizar seguimiento de los miembros de la sesión
  • Llamadas de audio
  • Sesiones de depuración en grupo
  • Compartir servidores y terminal al resto de miembros

Si con todas estas ventajas a la hora de colaborar en remoto no te libras de tener que respirar el mismo aire que tus compañeros de equipo, no sé que lo hará.

¿Has probado alguna otra herramienta de pair programming?