Programación en pareja en Vineti

imagen

Ha pasado casi un año desde que me mudé a Moscú para vivir y trabajar en Ereván. En esta historia, te contaré no sobre mi vida en esta maravillosa ciudad (hace mucho frío aquí), sino sobre cosas más mundanas. A saber, sobre las prácticas que aplicamos al desarrollar nuestro producto en Vineti.

Si aún estás interesado, entonces bienvenido a cat.

En Vineti, utilizamos una metodología de programación extrema y utilizamos activamente la programación de pares. Cuando llegué a Vineti, la programación extrema era algo nuevo y desconocido para mí, pero después de un año de desarrollo en este estilo, puedo decir que escribir código para mí se ha convertido en algo no demasiado conveniente y productivo.

Cuando hay una persona a tu lado que observa cuidadosamente lo que escribes, el código es extremadamente legible. Además, en el proceso de redacción del código, se lleva a cabo la capacitación y la transferencia de conocimiento entre los participantes del proceso, y esto, desde mi punto de vista, se lleva a cabo de la forma más efectiva.

Ocurre que aquellos que no han usado este enfoque antes en la práctica experimentan vergüenza e incomodidad, porque tienes que comunicarte constantemente con tu pareja y escribir el código bajo estrecha supervisión, pero con el tiempo pasa y entiendes que la pareja está aquí, para ayudarte, no lastimarte.

Ventajas del enfoque


Las ventajas de la programación de pares en comparación con el enfoque estándar son varias, pero, desde mi punto de vista, lo más importante es la transferencia constante de conocimiento sobre el código de la aplicación entre los participantes en el proceso. Puede construir pares y rotaciones (cambio de ingenieros participantes) para que cada ingeniero tenga un conocimiento completo de todas las partes de la aplicación. Esto es especialmente importante si necesita mantener una base de código grande.

La siguiente ventaja es un proceso de aprendizaje bastante efectivo. Puede emparejarse para que los más experimentados siempre se combinen con los ingenieros menos experimentados. Para el desarrollador senior, la regla es "si quieres saber algo bien, trata de enseñarle a otro". También existe la oportunidad de fortalecer sus habilidades de comunicación, ya que tendrá que explicar mucho y con frecuencia.

En Vineti, utilizamos TDD en el proceso de programación de pares, lo que nos permite dividir inicialmente una tarea grande y compleja en partes pequeñas y pensar en la arquitectura de la solución antes de escribir el código. Además, para resolver problemas complejos, contar con un socio con el que pueda discutir el enfoque elegido para resolver el problema y analizar su optimización en el proceso de trabajo sin la necesidad de planificar reuniones adicionales dentro del equipo ayuda mucho.

Y finalmente, la programación de pares está bien combinada con la metodología TDD . En Vineti, generalmente un ingeniero escribe pruebas e intenta describir tantas situaciones como sea posible. El segundo ingeniero escribe el código de característica, cuando el primer ingeniero le dice cómo simplificar el código, implementando así un círculo de refactorización rojo-verde.

Desventajas


Las desventajas de este enfoque, probablemente atribuiría la complejidad de configurar el proceso en sí mismo y la necesidad de una selección adecuada de los participantes en parejas, lo que requiere esfuerzos adicionales del líder del equipo y una comprensión profunda de las habilidades y hábitos de todos los miembros de su equipo.
Si hablamos del factor humano, es importante que los ingenieros que actualmente están emparejados para el período de trabajo conjunto tengan un modo común de venir a la oficina, almorzar, etc. Esto no siempre es fácil de hacer y es necesario formar pares teniendo esto en cuenta.

Mantener un estándar común


Una de las condiciones para la programación efectiva de pares es la presencia de un enfoque estricto y más estandarizado para escribir código dentro de los comandos. Por ejemplo, usamos eslint, más bonito, rubocop para que el código tenga el mismo estilo en el proceso de escritura. Como entorno de desarrollo, utilizamos VS Code y el terminal iTerm c zsh. Esta estandarización le permite rotar rápidamente a los ingenieros en pares mientras minimiza el período de adaptación.

En mi opinión, las parejas deben rotarse después de completar una tarea. Esto proporciona la rotación efectiva más baja posible. El cambio de rol puede ocurrir en un día, pero esto queda a discreción de un ingeniero más experimentado en un par. Es importante no dejarse llevar, no tratar de resolver todos los problemas usted mismo, ya que la ausencia de un cambio de rol puede afectar negativamente la efectividad de la pareja en su conjunto.

Programación en pareja con San Francisco


Personalmente, tuve la experiencia de programación remota de pares con un colega de la oficina de Vineti American, para esto utilizamos el complemento Live Share para VS Code. La experiencia es interesante, pero esta situación tiene varias desventajas en comparación con la programación estándar de pares. El primero es la falta de comunicación personal directa. En mi caso, esto también es una gran diferencia en las zonas horarias. Tuve que escribir código después de casi un día completo, lo que, para mí personalmente, fue muy agotador.

Cómo adaptarse a la programación de pares


Trate de usar la experiencia de otras compañías y eventualmente desarrolle su enfoque dentro de la compañía. Desafortunadamente, la opción ideal, conveniente y que funciona para todos, no existe.

Tampoco estoy seguro de que esta metodología sea adecuada para todas las empresas. Por ejemplo, si solo tiene 3 desarrolladores en un equipo, obviamente no podrá obtener muchos beneficios de la implementación de la programación de pares. O, si tienes demasiado sobrepeso en el equipo, será muy difícil para ti construir buenas parejas.

Source: https://habr.com/ru/post/471138/


All Articles