Revisiones de código efectivas en 5 pasos fáciles

Las revisiones de código son una de esas cosas que o realmente amas o realmente odias.

Cuando se hacen bien, pueden aumentar dramáticamente la calidad de tu código y enseñarte muchas buenos hábitos. Las revisiones mal hechas, por otro lado, pueden hacer que sientas terror cada vez que tratas de subir tu código GitHub.

Aunque la actitud y experiencia de tu equipo son las cosas que tienen el mayor impacto en la calidad de las revisiones, hay algunos métodos para aliviar un poco el dolor. Los siguientes son algunas de las mejores maneras de aprovechar al máximo tus revisiones de código.

Limita el número de revisores a 1 o 2 personas

Hay un fenómeno sociopsicológico muy interesante llamado difusión de responsabilidad: una persona tiene menos probabilidad de tomar responsabilidad por una acción cuando otros están presentes. En el contexto de una revisión de código, podría traducirse aproximadamente como mientras más gente reciba una solicitud para la misma revisión de código, menos probable es que revisen el código a fondo.

No sucede porque somos programadores perezosos a quienes no nos importa la calidad del código. Cuando sabes que hay otros desarrolladores inspeccionando el mismo código, te sientes confiado de que ellos atraparán las cosas que se escaparon de tu radar. Como resultado, en lugar de obtener una o dos revisiones a fondo, terminas con varias mediocres.

La mejor manera de combatir este fenómeno es restringir el número de revisores: dos como máximo. La gente se toma las cosas mucho más en serio si sabe que carga con la responsabilidad completa de revisar la calidad de tu código.

Toma distancia emocional de tu código

Es importante para nosotros los desarrolladores desapegarnos de nuestro trabajo.

Es más fácil decirlo que hacerlo: nuestros programas son pensamiento materializado, algo profundamente íntimo. Las críticas dirigidas contra nuestro código pueden sentirse como un ataque a un aspecto muy personal de nosotros mismos.

Aún necesitamos hacer el esfuerzo de manejar las críticas como una oportunidad para mejorar, no como un ataque personal. Las revisiones de código tienen el objetivo de asegurar que nuestro código esté en la mejor forma posible. Integrar esa crítica es una gran oportunidad para mejorar tu arte y aprender de otras personas.

Hazte un favor a ti y a tu código y quítalo del pedestal.

Establece para qué es la revisión de código

Es útil establecer algunas metas estándar para cada revisión de código. Deberías reunir a tu equipo y discutir cuáles son las características más importantes que el código debería cumplir. Seleccionar las más importantes y descartar todas las demás es un ejercicio importante con varias ventajas:

  • Te ayuda a concentrarte en los aspectos más importantes de la calidad del código.
  • Las revisiones de código tienden a ser más cortas y enfocadas.
  • Ponerse de acuerdo con el resto del equipo sobre qué buscar en el código ayuda a prevenir desacuerdos más adelante.
  • Es un buen momento para refrescar el conocimiento sobre principios de diseño y calidad de código.

Otro aspecto importante a discutir es el uso de herramientas de análisis estático de código. Hay muchas maneras de hacer cumplir la calidad del código y usar una herramienta de análisis estático, configurada para las necesidades particulares del equipo, puede permitir que el revisor se concentre en aspectos más importantes de la solución.

Cuando hay acuerdo sobre cómo se conducirán las revisiones, documéntalo y colócalo donde todos en el equipo puedan verlo. Puede haber desacuerdos, pero tener un conjunto codificado de reglas siempre es una ventaja. En la mayoría de los casos, referirse al documento es suficiente para reducir la tensión de una discusión. Si el documento necesita ser revisado y cambiado, es mucho mejor hacerlo sobre una base que ya existe.

Establece qué está fuera del alcance de la revisión de código

Tan importante como decidir para qué es la revisión de código es elegir qué cosas están fuera del alcance. Un caso típico es delegar algunos aspectos estilísticos básicos a herramientas de análisis estático. Trabajando juntas, el sistema de control de código fuente puede aprovechar tales herramientas para prevenir que el código sea enviado a revisión si viola algún estándar.

También es importante para decidir quién es responsable por los problemas si algo sale mal. Una vez, tuve un colega que se enojó mucho porque no detecté un bug en su código. La suite de pruebas corrió y no reportó un problema, y como no era un bug que pudieras encontrar fácilmente leyendo el código, atraparlo en una revisión era poco probable.

Encontrar bugs definitivamente debería sacarse del alcance de una revisión de código. Si puedes encontrar uno, eso es genial, pero los revisores no deberían ser responsables de cada bug en el código.

Proporciona retroalimentación útil

La retroalimentación debería ser empática y útil. Muestras empatía al no atacar al autor y hablar sobre el código de manera objetiva. Es más útil proporcionar consejos sobre cómo mejorar el código o explicar por qué piensas que hay mejores maneras de hacer las cosas. Las revisiones de código no deberían ser una competencia sobre quién encuentra más problemas en una línea de código, debería tratarse de asegurar que estamos produciendo el mejor código que podemos. Comparte tu conocimiento de manera constructiva, todos en el equipo (y finalmente tus usuarios finales) estarán agradecidos.

El objetivo es ayudar al equipo

El objetivo de las revisiones de código no es hacer tu vida más difícil, es la mejora de la calidad del código. Puede parecer un poco cansado al principio, pero una vez que te acostumbres a las revisiones regulares puede incluso ser divertido. A largo plazo, disfrutarás los beneficios de trabajar en una base de código mejor y mejorar tus vínculos con tus colegas.

Revisa a menudo, y revisa bien.

Qué hacer a continuación:

  • Comparte este artículo con amigos y colegas. Gracias por ayudarme a llegar a gente que podría encontrar útil esta información.
  • Discute algunas de estas opciones con tu equipo y evalúa si es posible implementarlas inmediatamente o si necesitan ajustes para tu situación específica.
  • Envíame un email con preguntas, comentarios o sugerencias (está en la página Autor).

Juan Luis Orozco Villalobos

¡Hola! Soy Juan, ingeniero de software y consultor en Budapest. Me especializo en computación en la nube e IA, y me encanta ayudar a otros a aprender sobre tecnología e ingeniería