Seminario web destacado: Presentación de la prueba CT de Parasoft C/C++ para pruebas continuas y excelencia en el cumplimiento | Vea ahora

Elimine estos 7 malos hábitos para lograr revisiones de código entre pares más efectivas

Foto de cabeza de Arthur Hicken, evangelista de Parasoft
12 de Octubre de 2023
6 min leer

Se ha demostrado que una buena técnica de revisión de código por pares aumenta la calidad del software. A continuación se ofrecen algunos consejos para evitar prácticas dañinas que podrían inutilizar las revisiones de su código.

Introducción a la revisión del código por pares

El software, en sus múltiples formas, impulsa nuestro mundo moderno, desde las aplicaciones de nuestros teléfonos inteligentes hasta los sistemas complejos que se ejecutan en segundo plano en infraestructuras críticas en diferentes industrias. Para que estos sistemas de software sigan siendo eficientes, los códigos que se ejecutan en ellos deben estar libres de errores, tener la lógica correcta y cumplir con los estándares de seguridad de la industria, y una forma de lograrlo es mediante revisiones de códigos por pares.

Las revisiones de código por pares son una práctica fundamental en el desarrollo de software que implica el examen sistemático de los cambios de código por parte de los miembros del equipo. Es una parte esencial del proceso de garantía de calidad destinado a mejorar el ciclo de vida general del desarrollo de software. Con revisiones de código por pares, las organizaciones pueden facilitar la colaboración y el intercambio de conocimientos entre desarrolladores, mantener la integridad de la base del código, mejorar la calidad del código y garantizar el cumplimiento de los estándares de codificación.

Las revisiones de código por pares desempeñan un papel vital en la mejora de la calidad del software en múltiples frentes. Por ejemplo, actúa como una medida proactiva de control de calidad al identificar y rectificar los problemas antes de que se agraven, lo que reduce la probabilidad de que los defectos lleguen a producción. Cuanto antes se descubra un problema, menos dinero costará solucionarlo. Además de servir como medida de control de calidad, las revisiones de código entre pares promueven la legibilidad, confiabilidad, portabilidad, coherencia y cumplimiento de los estándares de codificación, lo que da como resultado una base de código más comprensible y fácil de mantener. También alientan a los desarrolladores a documentar su código y agregar comentarios significativos, lo que hace que el código base sea más autoexplicativo y accesible para otros desarrolladores.

Alentamos las revisiones de código por pares combinadas con métodos de prueba tradicionales o automatizados, como examen de la unidad, pruebas funcionales, pruebas de seguridad, Pruebas de API, pruebas de rendimientoy pruebas del sistema. Las revisiones de código por pares complementan estas técnicas de prueba y ofrecen una perspectiva diferente sobre la calidad del código. Por ejemplo, las pruebas automatizadas son excelentes para cubrir aspectos funcionales y casos de prueba específicos descritos en scripts de prueba y lograr una alta cobertura de prueba. Las revisiones de código por pares, por otro lado, aprovechan la experiencia y la intuición humanas para identificar fallas de diseño, preocupaciones de mantenimiento y cumplimiento de estándares de codificación que podrían ser difíciles de capturar a través de medios automatizados.

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 60%, una estadística ciertamente impresionante. Por supuesto, sólo da resultado si lo que se hace en la revisión por pares es efectivo y eficiente.

A lo largo de los años, he sido testigo de los numerosos obstáculos que conducen a revisiones por pares ineficaces. ¡Evitar estos malos hábitos puede ser tan efectivo como adoptar otros nuevos y buenos! Elimine los malos hábitos a continuación para evitar revisiones de pares ineficaces.

7 malos hábitos que se deben evitar para realizar revisiones exitosas del código entre pares

A pesar del papel fundamental que desempeñan las revisiones de código entre pares en el desarrollo de software, sólo pueden valer la pena si se llevan a cabo de manera eficaz y eficiente. Una revisión por pares mal realizada puede generar una pérdida de tiempo sin comentarios significativos para mejorar el código. Para garantizar el éxito en la revisión de su código, estos son los hábitos clave que debe evitar.

1. Subutilizar herramientas en las revisiones de códigos entre pares

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 el código inacabado

Este es un problema clásico que afecta especialmente a las organizaciones centradas en el calendario. Lo más probable es que si publicas según una fecha, también revises según una fecha. La lógica es la siguiente: "Aún no he terminado, pero ya hemos programado una revisión, así que al menos veamos lo que tenemos". Usted lo sabe tan bien como yo: no es una excelente manera de realizar una revisión eficaz, así que deje de hacerlo. Asegúrese de que el autor del código esté terminado y, si aún no está listo, pospóngalo hasta que lo esté.

3. Ampliar demasiado las sesiones de revisión de código por pares

Las largas sesiones de revisión de código pueden resultar contraproducentes. Es importante establecer límites razonables en el alcance y la duración de cada revisión para mantener el enfoque y la productividad. Las revisiones largas y exhaustivas pueden provocar fatiga, menor atención a los detalles y un proceso de desarrollo más lento.

Si la revisión lleva demasiado tiempo, es necesario repensar algo. Demasiado en este caso podrían ser sesiones de revisión que duren más de una hora o sesiones que consuman 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 resultar más dolorosa.

4. Personalización de los comentarios sobre la revisión del código entre pares

Una revisión por pares tiene que ver con el código, no con las personas. Asegúrate de estar hablando del código y no del desarrollador. Es menos probable que una afirmación como "Este código no se escalará tan bien como necesitamos" ofenda que "Escribiste esto mal". Por el contrario, cuando recibas críticas, sé un buen deportista. Reconozca que el código de todos se puede mejorar y que usted puede aprender de los datos que obtiene. No importa en qué extremo de la revisión se encuentre, probablemente pueda ser más elegante al facilitar una revisión fluida, agradable y rápida. Piense en revisar como una excelente manera de conseguir un mentor gratuito. Todo el mundo quiere tener un mentor, pero rara vez pensamos en el proceso de revisión como un proceso de tutoría. Valorar la tutoría puede ayudarle a resistirse a tomarla como algo personal.

5. Procrastinar las revisiones del código de pares

No es sólo una metáfora de los propósitos 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 intentas darte un atracón en el último momento, no serán efectivos. No puedes correr en una cinta la noche antes de un maratón, y no puedes hacer tu revisión por pares la noche antes de tu liberación.

6. Seguimiento inconsistente en los procesos de revisión del código por pares

La forma en que se realiza el seguimiento de una revisión puede afectar en gran medida el valor de la misma. Si encuentra elementos durante una revisión y no verifica que estén arreglados, probablemente esté perdiendo el tiempo. El mejor beneficio se encuentra en un proceso consistente que incluya la rendición de cuentas. Asegúrese de que todos sepan lo que se espera de ellos y haga un seguimiento para asegurarse de que se estén realizando las correcciones.

Si no 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 que se están produciendo revisiones quid-pro-quo entre desarrolladores, o una señal de que su desarrollo no comprende el valor detrás de las revisiones de código o cómo realizarlas correctamente.

7. Criterios inconsistentes para las revisiones de códigos por pares

Si cada revisor no busca lo mismo, no tendrá idea de si sus reseñas son efectivas. El alcance de la revisión por pares debe basarse en una política inequívoca que esté claramente escrita y a la que se pueda hacer referencia. 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 la médica, donde 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. Lo ideal sería desarrollar un par de escenarios basados ​​en su política y preguntar 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 una política ambigua. Puedes hacerlo mejor.

Haga que todos estén en la misma página. Mejorará su calidad, le proporcionará la coherencia necesaria para la evaluación y la mejora, y le 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 por pares en una amplia variedad de organizaciones y he visto dónde pueden ser increíblemente valiosas, además de ser una completa pérdida de tiempo. Incorporar las herramientas adecuadas en los procesos correctos le ayudará a garantizar que obtenga valor del proceso. Respalde su sistema de revisión por pares libre de 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 centrarse en los defectos interesantes que lo convertirán en un mejor ingeniero.

Conclusión: maximizar el valor de las revisiones de códigos entre pares

En conclusión, las revisiones de código por pares tienen un inmenso potencial para mejorar el proceso de desarrollo de software y garantizar la entrega de software de alta calidad. Para los desarrolladores, participar en revisiones efectivas de código entre pares ofrece varios beneficios clave, como brindar una valiosa oportunidad de aprendizaje que los expone a diferentes estilos de codificación, mejores prácticas y diversos enfoques de resolución de problemas dentro de su equipo. Este intercambio de conocimientos fomenta el crecimiento profesional y el desarrollo de habilidades. Además, las revisiones de código por pares ayudan a los desarrolladores a detectar y abordar los defectos de manera temprana, además de contribuir a la coherencia y la capacidad de mantenimiento de la base del código.

Para respaldar procesos exitosos de revisión de código, aprovechar las herramientas de análisis estático puede resultar invaluable. Estas herramientas analizan automáticamente el código en busca de problemas potenciales, como violaciones de estándares de codificación, vulnerabilidades de seguridad y olores de código. Para C, C++, Java, C# y VB.NET, Parasoft ofrece herramientas de análisis de código estático como Parasoft C / C ++test, Prueba J de Parasofty Parasoft dotTEST, todos los cuales tienen capacidades de IA y ML y están diseñados para diversos entornos de desarrollo. Al integrar herramientas de análisis estático en el flujo de trabajo de revisión de código, los equipos pueden mejorar la eficiencia y eficacia de sus revisiones. La combinación de la experiencia humana de los revisores pares con la automatización proporcionada por las herramientas de análisis estático optimiza el valor y el impacto de las revisiones de código por pares en el ciclo de vida del desarrollo de software.

Realice correctamente las pruebas unitarias: los mejores consejos para desarrolladores de Java