Revision de Código

 La revisión de código es una actividad desarrollada por un actor diferente al autor del mismo y que es un prerrequisito para que el código llegue a usarse en producción.

Esta es mi experiencia hasta ahora con esta actividad.

Motivaciones

La documentación al respecto no necesariamente menciona estas motivaciones. Son las que he podido ver en mi experiencia personal.

Control Social

La revisión de código cuando es realizada por un superior con objetivo de aprobar/desaprobar el trabajo de su subordinado es meramente una herramienta de control social. Esta motivación tiende a ser enmascarada usando otras y no aporta al producto final.

Control de la Calidad

La revisión de código, cuando es realizada por un par del autor con el objetivo de evaluar desde otra perspectiva, es una herramienta de control de la calidad del producto.

Algunos aspectos de la calidad del código que se pueden beneficiar de la revisión son:

  • legibilidad
  • mantenibilidad
  • cohesión, consistencia
  • reducción de errores en producción (4 ojos ven más que 2)

Compartir Conocimiento (evitar fallas de punto único)

  • (la persona menos familiarizada con el código existente revisa el código de una persona muy familiarizada con este)
  • Mentoría (se revisa el código de la persona menos familiarizada con el código existente)

Críticas:

  • Requieren Tiempo (impacto en el tiempo que demora un cambio en llegar al cliente)
  • Incrementan los Cambios de Contexto (revisar el código tiene más prioridad que escribir código, evitar bloquear al revisado)
  • Posible Des-balance de Responsabilidad (si el peso de revisar el código recae sobre una persona).

(Falsas) Críticas:

  • Posible Daño Emocional al recibir una crítica (si alguien en tu equipo no acepta una crítica constructiva o alguien en tu equipo emite criticas que no son constructivas, tienes un problema social, no de revisión de código).

Elementos en Contra

Existen elementos que trabajan en contra de que la revisión de código sea efectiva:

  • el cambio al código es muy grande, lo que lo hace difícil de revisar.
  • existe un plazo a cumplir en la revisión de código, lo que puede influir en la calidad de la revisión en si misma.

Comments

Popular posts from this blog

Mis Practicas Profesionales - Acerca de las Pruebas

Mi aproximación al diseño de APIs RESTful

My take on Time Series Database requirements