Las revisiones de código son difíciles. No obstante, en la mayoría de empresas en las que he estado, no se hacen bien.
¿Qué dificultad posee una revisión de código? Que no es simplemente un problema técnico. Implica relaciones entre seres humanos. Por lo que he visto, algunos temen "herir" susceptibilidades al hacer un comentario, o se sienten mal frente a ciertas críticas al código. Claro está, hay maneras de decir las cosas; no obstante, deberíamos intentar ver las revisiones como un esfuerzo colectivo por mejorar, no como algo personal.
En varias empresas he visto que se sacrifica la calidad por no hacer sentir mal a los otros. Y eso también hace que las revisiones sean superficiales. La persona que revisa no piensa realmente el código; solo da una mirada general.
Por otro lado, está el problema de los estilos de programar. Como individuos, y siendo la programación una cuestión creativa, en parte, hay estilos. ¿Cómo separar lo que es realmente una necesidad, de una preferencia personal? Las diferencias en gustos y en experiencia hace difícil la comunicación al realizar una revisión de código. Por ejemplo: ¿abstraer o no abstraer? Me encuentro muchas veces con sugerencias de abstracciones que, desde mi punto de vista, son innecesarias. Soy más de abstraer cuando he logrado captar la esencia del problema. Para ello, necesito más de un caso. Prefiero dejar pasar algunos casos no generalizados, y no hacer una abstracción apresurada. No obstante, alguien con más experiencia, tanto en programar, como en conocimiento de un código, puede ver patrones que uno no puede ver. Tal vez tenga razón en sugerir un patrón (aunque, también, podría equivocarse porque, aceptémoslo, todos nos equivocamos).
En mi actual empresa, me he encontrado con revisiones de código bastante estrictas. En ocasiones, tienen razón con una sugerencia, en otras, no estoy seguro de si tenga sentido, o si de verdad sea una razón para bloquear la aprobación. Lo cierto es que tardo entre una y dos semanas en que mi código se apruebe, teniendo en cuenta que quienes revisan hacen una revisión diaria, en promedio. Siento que estoy yendo demasiado despacio. Sé que llevo apenas unos pocos meses, y he tenido que lidiar con cinco bases de código de servicios diferentes, y con personas diferentes, sin tener conocimiento profundo de cada uno, ni de las interacciones entre ellos. Más me gustaría acelerar todo. Reducir la probabilidad de recibir comentarios.
Con esto último, pasa que programamos pensando en el comentario que hará el otro, así no estemos totalmente de acuerdo con él. Haré esto así porque no quiero que me retrasen el código. ¿Es esto correcto? Es difícil. Las revisiones de código resultan ser un problema muy humano y no meramente técnico, como nos gustaría.