Abr 27 2009

Tick the Code

Categoría: Desarrollo de softwareJuan @ 3:00 pm

Una de las prácticas más o menos comunes (por lo menos de las más conocidas) es la revisión de código en cualquiera de sus variantes (largas sesiones de revisión formal, revisión por pares, revisión con herramientas, etc) Dentro de esta categoría podemos añadir una nueva técnica de inspección de código llamada “Tick the Code“.

Esta técnica, resumiendo, se basa en revisar el código contra un conjunto pre-establecido (y siempre igual) de reglas. Por ejemplo, “no dividir por cero”, “todos los if deben tener else“, etc. El código se imprime y un revisor se aisla por un tiempo marcando (ticking) las violaciones de las reglas que está revisando (cada revisor se encarga de ciertas reglas, no de todas). Una vez finalizado el proceso, la revisión es entregada al desarrollador quien debe verificar si las violaciones son reales o “falsas alarmas”. Es decir, el desarrollador decide qué debe ser cambiado o arreglado y qué no.

Creo que esta técnica puede beneficiar muchísimo a los equipos para mejorar especialmente la calidad interna del código(mantenibilidad, entendibilidad, etc.) e incluso encontrar algunos defectos. Sin embargo, veo dos problemas en cómo se lleva a cabo esta técnica.

  1. Ciertas reglas son fácilmente automatizables por analizadores estáticos de código. No entiendo por qué estas reglas deber ser revisadas por una persona (que puede introducir errores, todos somos humanos) cuando pueden ser automatizadas muy fácilmente y sin errores. Claramente, creo que el valor que trae el revisar este tipo de reglas es menor que el gasto y esfuerzo requerido para hacerlo y, por tanto, creo que esto es contraproducente. Además, dentro de estas reglas hay algunas que generan más alarmas que errores con lo que el valor (del que hablábamos anteriormente) que obtenemos de la revisión es incluso menor.
  2. Las reglas que de verdad traen valor deberían ser tomadas como “guías de código” que todo el mundo debería seguir al escribir código. Por ese motivo, una revisión “normal” (en pareja o no) que también revisara si la “guía” se sigue eliminaría la necesidad de tener una sesión específica para “tick the code”. No estoy diciendo que se elimine, se podría tener sólo si es necesario y si no hay otra práctica de revisión de código que pueda contener también la revisión de estas reglas.

Sería interesante ver alguna métrica después de usar esta técnica como está descrita originalmente comparando el estado anterior y el posterior al uso de la técnica. Y lo mismo, usando una modificación de la misma.

Etiquetas: ,