La idea es realmente muy buena. Al contrario de los flujos de trabajo comunes, mantiene la revisión directamente en el código, por lo que técnicamente, no necesita nada más que editor de texto para usar este flujo de trabajo. El soporte en el IDE también es bueno, especialmente la capacidad de mostrar la lista de revisiones en la parte inferior.
Funciona bien para equipos muy pequeños, pero los equipos más grandes requerirán un seguimiento de lo que se revisó, cuándo, por quién y con qué resultado. Si bien realmente tiene este tipo de seguimiento (el control de versiones permite saber todo eso), es extremadamente difícil de usar y buscar, y a menudo requerirá una búsqueda manual o semi-manual a través de las revisiones.
No creo que el revisor tenga suficientes comentarios del revisor para saber cómo se aplicaron realmente los puntos revisados .
Imagina la siguiente situación. Alice está revisando por primera vez el código de Eric. Se da cuenta de que Eric, un desarrollador joven, usó la sintaxis que no es la más descriptiva en el lenguaje de programación realmente utilizado.
Alice sugiere una sintaxis alternativa y envía el código a Eric. Reescribe el código utilizando esta sintaxis alternativa que cree que comprende correctamente, y elimina el // BLA
comentario correspondiente .
La próxima semana, ella recibe el código para la segunda revisión. ¿Sería capaz de recordar realmente que hizo este comentario durante su primera revisión, para ver cómo Eric lo resolvió?
En un proceso de revisión más formal, Alice pudo ver de inmediato que hizo un comentario y ver la diferencia del código relevante, para notar que Eric no entendió la sintaxis que le contó.
La gente sigue siendo gente. Estoy bastante seguro de que algunos de esos comentarios terminarán en el código de producción, y algunos permanecerán como basura mientras estén completamente desactualizados .
Por supuesto, el mismo problema existe con cualquier otro comentario; por ejemplo, hay muchos comentarios TODO en producción (incluido el más útil: "TODO: Comente el código a continuación"), y muchos comentarios que no se actualizaron cuando se realizó el código correspondiente.
Por ejemplo, el autor original del código o el revisor pueden irse, y el nuevo desarrollador no entendería lo que dice la revisión, por lo que el comentario permanecerá para siempre, esperando que alguien sea demasiado valiente para borrarlo o para entender realmente qué dice.
Esto no reemplaza una revisión cara a cara (pero el mismo problema se aplica también a cualquier otra revisión más formal que no se haga cara a cara).
Especialmente, si la revisión original requiere una explicación, el revisor y el revisor comenzarán una especie de discusión . No solo se encontrará con grandes comentarios de BLA, sino que esas discusiones también contaminarán el registro del control de versiones .
También puede encontrar problemas menores con la sintaxis (que también existe para los comentarios TODO). Por ejemplo, ¿qué pasa si un comentario largo "// BLA" se genera en varias líneas y alguien decide escribirlo de esta manera:
// BLA This is a very long comment which is way beyond 80 characters, so it actually
// fills more then one line. Since the next lines start with slashes, but not "BLA"
// keyword, the IDE may not be able to show those lines, and display only the first one.
Y, por último, como una nota menor y muy personal: no elija "BLA" como palabra clave. Suena feo ;)