Evite las revisiones ineficaces del código eliminando estos 7 malos hábitos
Por Arthur Hiken
Febrero
4 min leer
Se sabe que una práctica sólida de revisión de código entre pares mejora la calidad del software, por lo que aquí hay algunas formas de evitar los malos hábitos que amenazan con hacer que las revisiones de código sean ineficaces.
Está bien establecido que la revisión por pares proporciona más valor del que cabría esperar. Como se indica en el excelente libro de Steve McConnell, Código completo, la tasa promedio de detección de defectos es solo:
- 25% para pruebas unitarias
- 35% para pruebas funcionales
- 45% para pruebas de integración
En contraste, la efectividad promedio de las inspecciones de diseño y código es del 55% y el 60%, una estadística realmente impresionante. Por supuesto, solo se resuelve si lo que está haciendo en la revisión por pares es efectivo y eficiente.
A lo largo de los años, he sido testigo de los muchos obstáculos que conducen a revisiones por pares ineficaces. ¡Evitar estos malos hábitos puede ser tan efectivo como adoptar nuevos buenos hábitos! Elimine los malos hábitos a continuación para evitar revisiones de pares ineficaces.
1. Infrautilización de herramientas
Para empezar, no debería revisar ni buscar nada que se pueda hacer mediante análisis estático. Esto podría incluir problemas de marca, problemas de estilo como la colocación de rizos {
no me hagas empezar;
},
o utilizando un algoritmo de cifrado específico. Si una herramienta puede encontrarlo por usted, déjelo. Libérese para profundizar en el algoritmo, la seguridad y las características de rendimiento del código. Hacer un trabajo inteligente en lugar de un trabajo tedioso también tiene el beneficio adicional de hacer que la revisión sea más interesante para participar, lo que a su vez la hace más atractiva y efectiva.
2. Revisar cuando el código / autor aún no esté listo
Este es un problema clásico que afecta especialmente a las organizaciones centradas en el calendario. Lo más probable es que si libera según una fecha, también revise según una fecha. La lógica es la siguiente: "Todavía no he terminado, pero ya hemos programado una revisión, así que veamos al menos lo que tenemos". Lo sabes tan bien como yo; no es una buena manera de hacer una revisión eficaz, así que deja de hacerlo. Asegúrese de que el autor del código haya terminado y, si aún no lo está, posponga hasta que lo esté.
3. Dedicar demasiado tiempo a la revisión
Esta es una trampa en la que es fácil caer. Si la revisión está tomando demasiado tiempo, debe repensar algo. "Demasiado" podría ser sesiones de revisión que duran más de una hora o sesiones que consumen demasiado del programa de desarrollo general. Si las revisiones tardan más de una hora, probablemente esté intentando revisar demasiadas cosas a la vez. (O el autor no estaba listo para la revisión). Después de una hora de revisión, la efectividad potencial disminuye rápidamente, especialmente para los autores del código. Incluso si el comentario no fue inicialmente personal, después de una revisión innecesariamente larga, la crítica puede agravarse y sentirse más dolorosa.
4. Ponerse personal
La revisión por pares se trata del código, no de las personas. Asegúrese de estar hablando del código y no del desarrollador. Declaraciones como, "Este código no se escalará tan bien como necesitamos" tienen menos probabilidades de ofender que "Escribiste esto mal". Por el contrario, cuando estés en el extremo receptor de las críticas, sé un buen deportista. Reconozca que el código de todos se puede mejorar y que puede aprender de los datos que obtiene. No importa en qué extremo de la revisión se encuentre, probablemente pueda ser más elegante para facilitar una revisión suave, agradable y rápida. Piense en la revisión como una excelente manera de obtener un mentor gratis: todos quieren tener un mentor, pero rara vez pensamos en el proceso de revisión como un proceso de tutoría. Valorar la tutoría puede ayudarlo a resistir tomárselo como algo personal.
5. Haciéndolo al final
No es solo una metáfora de resolución de año nuevo; realmente creo firmemente que la mayoría de las prácticas de calidad del software deben tratarse como un ejercicio. Si intenta atracarlos en el último momento, no serán efectivos. No puede correr en una cinta la noche antes de un maratón y no puede hacer su revisión por pares la noche anterior a su liberación.
6. Seguimiento inconsistente
La forma en que se realiza el seguimiento de una revisión puede afectar en gran medida el valor de la revisión. Si encuentra artículos durante una revisión y no verifica que estén arreglados, probablemente esté perdiendo el tiempo. El mejor beneficio se encuentra con un proceso consistente que incluye la responsabilidad. Asegúrese de que todos sepan lo que se espera de ellos y haga un seguimiento para asegurarse de que se estén haciendo las correcciones. Si no se encuentra nada en la revisión, sea crítico. Si bien esto puede suceder de vez en cuando, ciertamente debería hacerte sospechar. Puede ser una señal de revisiones quid-pro-quo que ocurren entre desarrolladores, o una señal de que su desarrollo no comprende el valor detrás de la revisión del código o cómo hacerlo correctamente.
7. Criterios inconsistentes
Si cada revisor no busca las mismas cosas, no sabrá si sus revisiones son efectivas. El alcance de la opinión de los pares debe basarse en una política inequívoca que esté claramente escrita y pueda ser referenciada. (Tener una lista de verificación puede parecer restrictivo al principio, pero ayudará a mantener la revisión en marcha y cumplirá una doble función si se encuentra en una industria de cumplimiento como la automotriz o médica, y necesita demostrar que ha realizado una revisión efectiva .) Eliminar la ambigüedad requiere más disciplina que simplemente escribir la política, aunque ese es un gran primer paso. Idealmente, desarrollaría un par de escenarios basados en su política y preguntaría a diferentes personas cómo lo harían. No es raro encontrar empresas que aceptan un status quo en el que diferentes grupos hacen las cosas de manera diferente, y ambos piensan que el otro grupo lo está haciendo mal, pero a ambos se les permite bajo la política ambigua. Puedes hacerlo mejor. Haga que todos estén en la misma página: mejorará su calidad, proporcionará la coherencia necesaria para la evaluación y la mejora, y lo protegerá si algo sale mal. Si se encuentra en un entorno de cumplimiento como ISO 26262 o FDA, tener criterios consistentes agilizará sus auditorías.
He sido testigo de revisiones de pares en una amplia variedad de organizaciones y he visto dónde puede ser increíblemente valioso, así como una completa pérdida de tiempo. La integración de las herramientas adecuadas en los procesos adecuados le ayudará a garantizar que obtenga valor del proceso. Respalde su sistema de revisión por pares sin malos hábitos con una herramienta de análisis estático en la que puede confiar para hacer cumplir los estándares y las mejores prácticas, y concéntrese en los defectos interesantes que lo convertirán en un mejor ingeniero.