Dentro de lo que es el mundo de la programación, es un estándar de cada profesional, intentar aplicar buenas prácticas en su trabajo. Hay variadas, pero hoy hablaremos de una que no a todos les gusta realizar: Code Review o Revisión de código.

¿Qué es el Code Review?

Como (por ahora), todos los que escriben código son personas, cometer errores es normal y, de hecho, forma parte del proceso sano y creativo. Para corregir estos errores, se suelen usar una serie de pruebas manuales o automáticas para lidiar con esos defectos. Pero a veces, corremos el riesgo de que nosotros mismos no podamos notarlo fácilmente.

Para eso, se utilizan estas prácticas colaborativas de revisión de código. Es normal que ocurran de manera más frecuente en empresas agiles, con una clara inclinación al trabajo en equipo y equipos organizados. Pero ¿en qué consisten? ¿Cómo benefician a los profesionales y a las empresas?

Cómo se realiza

Dentro de equipos colaborativos, es normal utilizar sistemas de control de versiones. Esto permite diversas configuraciones. Una de las más usadas es usar un archivo como principal, mientras que los demás colaboradores trabajaran en versiones derivadas del mismo, pero sin que los cambios afecten directamente al principal.

Una vez que el programador concluyo su parte, envía esa porción del código a la guía principal pendiente de revisión. Antes de que esta modificación o adición sea agregada de manera definitiva al principal, pasara por una revisión de código para evitar errores.

Ocurre igual cuando se busca una versión nueva del software, se evitan realizar cambios directos a “producción”, dejando la nueva versión creada pendiente y permitiendo al examinador evaluar los cambios entre cada versión.

La más usada es la denominada “revisión entre pares”, donde una persona con habilidades técnicas y experiencia normalmente mayor al programador, revisa el código. Se evalúan normalmente 5 aspectos:

  • Requerimientos alcanzados: la lista de objetivos funcionales solicitados debería haberse llevado a cabo de manera exitosa.
  • Código correcto: se evalúa que el código, variables, patrones, case o nomenclaturas concuerden con lo esperado, de acuerdo al lenguaje que se está utilizando
  • Arquitectura y lógica: se busca cierta fluidez en el código, que trate de mantener el conjunto de “buenas prácticas” respetando los estándares planteados por la organización, sobre todo enfocándose en que en ocasiones se suele usar porciones de código extraídas de otros sitios
  • Reacción a errores: acá se piensa un poco más como un usuario del futuro producto, intentando ver cómo se comporta el programa si se ingresaran parámetros distintos a los planteados (por ejemplo, un formulario donde se solicita un numero de celular y el usuario decide poner letras)
  • Optimización de código: dentro de los lenguajes, en ocasiones se pueden usar prácticas variadas orientadas a mejorar la velocidad, funcionalidad o seguridad del código. Un desarrollador más experimentado, probablemente posea más experiencia en determinada situación y pueda brindar maneras alternativas y mejores de resolver una situación puntual

¿Aporta beneficios?

Cuando inicialmente se plantean solicitudes de revisión de código, la primera traba que se suele poner es: “pero nos demandara demasiado tiempo y ya estamos atrasados”.

Acá hay dos conceptos que tenemos que recordar: primero, hay que intentar arreglar las cosas ANTES de que se rompan, y el tiempo “perdido” arreglando algo ahora, es mucho menos del tiempo (y recursos) que se gastarán cuando las fallas sean demasiadas o múltiples usuarios de un producto ya publicado, afronten problemas.

 

Desde Agile como forma de trabajar, cuando los equipos son auto organizados y tienen la libertad de decir el “COMO” realizar algo, los tiempos y circunstancias sobre cuando realizaran este tipo de revisiones surgen de manera autónoma, lo que produce mejores resultados.

A pesar de que, en circunstancias puntuales, se recurre a utilizar un código con errores o en circunstancias no óptimas, la mayoría de las veces las revisiones de código se dan con frecuencia, permitiendo que el producto final salga en mejores condiciones y con menos probables errores desde su lanzamiento.

Por otro lado, el reto de tener que ponerse a leer y revisar un código ajeno, permite aumentar las habilidades de desarrollo y potenciar las habilidades analíticas y de resolución de problemas. También, beneficia al equipo en general, dado que aumenta el nivel de habilidades y de excelencia técnica que todos los miembros irán desarrollando a lo largo de los proyectos en los que participen.

Esto también permite potenciar la lógica de los programadores, y potenciar sus habilidades de entender requerimientos. Seamos honestos, no siempre tendremos los objetivos a cumplir con lujo de detalles. Para eso, a través de la revisión de código se potencia la comunicación entre miembros del equipo, lo que lograría analizar de manera interna los distintos requisitos a cumplir.

Consideraciones finales

Recuerda, siempre que la revisión de condigo forma parte de un ciclo de búsqueda de excelencia técnica de manera permanente. Algunas sugerencias finales relacionadas a esta excelente practica:

  • Si eres el revisor: recuerda que es normal estar a la defensiva cuando estamos en una “evaluación”. Se amable con tu manera de hablar, trata de ser objetivo y no hacer comentarios agresivos, humillantes o que generen malestar. Recuerda que todos cometemos errores y que las falencias en los programas no significan que tu compañero sea incompetente.
  • Si eres el revisado: no tomes a título personal las sugerencias o correcciones que te hagan. Velas como una oportunidad única que puede potenciar tus habilidades a futuro. Si tienes la oportunidad, solicita correcciones cada “poco” contenido. No sobrecargues a tu revisor con múltiples archivos, mientras menos cosas, más a fondo se puede analizar.

Y tu ¿Qué opinas de la revisión de código? ¿la utilizas con frecuencia? Déjame tus comentarios en mis canales

¿Te gustaria enterarte de cuando lanzamos descuentos al Máximo o Nuevos Cursos?