Actualmente estamos modificando el proceso de desarrollo y me pregunto si deberíamos tratar de mantener un 100% de nuestros compromisos revisados por pares.
¿Cuál es su experiencia con respecto a las revisiones de código?
- ¿Tiende a pasar "mucho" tiempo con ellos (digamos 1/2 horas por día), o simplemente pasa por encima de 5/10 minutos como máximo?
- ¿Tiene una cantidad fija de tiempo para pasar por día / semana / sprint / proyecto?
- Más importante aún, ¿cree que el objetivo debería ser que el 100% del código sea revisado por pares o que el 100% no sea necesario?
code-reviews
Simeon
fuente
fuente
Respuestas:
Tenemos una tarea de 'Revisión de código' en cada historia. Idealmente, alguien que no esté involucrado en el desarrollo de esa historia revisará todos los cambios de código asociados con esa historia. Funciona bien.
¿Un montón de tiempo? No mucho, depende de la cantidad de código: estamos buscando errores obvios, errores tipográficos, comprobación de la cordura de la lógica básica, excepciones no detectadas, etc.
Es un paso de calidad que encuentra errores, por lo tanto tiene algún valor. Asignar tiempo puede no ser la mejor manera de hacerlo: ¿qué tal si algo es bastante complejo, debería revisarse en código?
Por cierto, es importante que alguien más revise el código.
fuente
Un problema más importante que la cantidad de revisiones que cubre su código es cuán efectivas son las revisiones. Si sus comentarios descubren pocos o ningún problema, alcanzar una cobertura total será inútil.
Primero trabaje para que sus comentarios tengan más efecto, luego decida sobre la cobertura.
Las revisiones deben realizarse no solo en el código, sino también en el diseño.
Además, las revisiones no reemplazan las pruebas y herramientas:
Intenta dedicar una cantidad de tiempo preestablecida por mes (o por sprint) a las revisiones. Seleccione el código que desea revisar en el siguiente espacio dedicado utilizando una heurística como:
Y recuerde, está revisando código (o diseño o pruebas) y no autores.
Recomiendo los siguientes materiales de lectura:
Revisiones selectivas sin tarea
Los secretos mejor guardados de la revisión del código de pares
fuente
Depende.
Depende de lo que esté haciendo su software:
Si controla un marcapasos electrónico o un transbordador espacial, definitivamente sí.
Si es un prototipo descartable, entonces probablemente no.
También depende de la cantidad de recursos que tenga, la experiencia de sus desarrolladores y lo que esté buscando en las revisiones de código. (Tenga en cuenta que el desarrollador promedio que revisa el código de otra persona probablemente notará problemas de estilo y perderá sutiles errores algorítmicos ... especialmente dado que la revisión del código es una tarea rutinaria).
Mi consejo sería guardar su esfuerzo de revisión de código para código donde la corrección es crítica y el costo de errores no detectados es alto.
fuente
Primero, debe responder esta pregunta: ¿Por qué revisa el código?
Con esa respuesta en la mano, puede averiguar qué código debe revisarse.
Algunas revisiones de código logran exactamente lo que las pruebas hacen o habrían hecho. Si ese es el objetivo de sus comentarios, acercarse al 100% es una buena idea si tiene pocas pruebas. Sin embargo, dejar que las herramientas de prueba hagan esto reduciría la necesidad de revisar todo el código.
La mayoría de las buenas críticas parecen centrarse en compartir el conocimiento y aumentar las capacidades de los desarrolladores en la revisión (ya sea el que escribió el código o los que lo revisaron). Con esto como una razón principal para las revisiones, asegurarse de revisar el 100% del código probablemente sea excesivo.
fuente
En un mundo perfecto, todo sería leído explícitamente por el autor y revisado por pares por al menos otra persona, desde las especificaciones de requisitos hasta los manuales de usuario y los casos de prueba. Pero las revisiones, incluso los simples controles de escritorio, toman tiempo y cuestan dinero. Esto significa que debe elegir lo que debe revisar y cuándo debe revisarlo.
Recomiendo priorizar las cosas para revisar, elegir cómo desea revisarlas e intentar revisar todo lo que pueda con el nivel de detalle apropiado. La priorización podría basarse en el tipo de artefacto, como indicar que los requisitos deben revisarse, el código de diseño y producción debe revisarse, y los casos de prueba pueden revisarse. Dentro de eso, también puede especificar que los componentes de alto riesgo o alto valor reciban una prioridad en la revisión, o tal vez una revisión más formal.
En cuanto al tiempo, todo se remonta a la prioridad que tiene el componente. Hubo momentos en los que pasé de 10 a 15 minutos revisando, y otras veces que varias personas leyeron el código individualmente y luego entraron a una sala para hacer un proceso de inspección más formal que dura de 30 a 45 minutos (dependiendo del tamaño de el módulo).
Al final, es un equilibrio entre tiempo, costo, alcance y calidad. No puede tenerlos todos, por lo que debe optimizar donde pueda.
fuente
Como sugerencia, si planea hacer alguna revisión, comparta algunas pautas sobre el alcance y el objetivo de la revisión para asegurarse de que las revisiones no causen fricciones innecesarias entre los miembros del equipo.
Los equipos coherentes construyen mejores proyectos. Las personas pueden perder relaciones por tonterías o por solicitudes de perfección. Siempre hay una persona que se queja de esto o aquello y molesta a los demás solo porque es así ...
fuente
Reservo una hora por día para hacer revisiones por pares, pero no siempre lo requiero. Nuestro código base se comparte entre una docena de productos. Nuestra política es que un cambio trivial en el código exclusivo de un producto está bien para registrarse sin revisión. Los cambios más complejos de un producto requieren una revisión, pero puede ser tan informal como llamar a un colega a su escritorio para que lo revise nuevamente. Los cambios en el código compartido requieren una revisión más formal, incluidos los desarrolladores de otros productos. Creo que nuestra política logra un equilibrio bastante bueno en comparación con otras compañías para las que he trabajado.
Paso más tiempo por día en las revisiones que algunos de mis colegas con roles menos centrales, pero no considero que sea una cantidad de tiempo irrazonable, porque antes de la política de revisión, podría fácilmente perder más tiempo que eso rastreando errores que un desarrollador en otro producto introducido.
fuente
Hemos hecho 100% de revisiones para el código. Es mucho más barato que las pruebas, especialmente las pruebas de cobertura de código 100%. No dedicamos demasiado tiempo a ellos, revisarlos durante más de una hora por día se vuelve menos productivo. (30 minutos no es mucho).
A medida que esté haciendo cero en el proceso, mantenga notas. ¿Que encontraste? ¿Qué encontró QA más tarde? ¿Qué encontraron sus clientes? ¿Por qué escaparon esos bichos?
fuente
Realice revisiones periódicas del código principalmente para la creación de equipos y para compartir ideas sobre la implementación Puede aprender mucho de sus compañeros de trabajo de esta manera.
fuente
Requerimos una revisión del código de pares para cada check-in. Si no hay ningún par disponible, organizamos una revisión posterior al check-in. El revisor aparece en el comentario de control de control de fuente.
Estos no toman mucho tiempo, y dado que se hacen entre pares, no existe un aspecto tóxico entre adultos y niños.
fuente
La revisión de código es, IMO, necesaria. Tienes 99.999 ...% del tiempo no siempre va a ser correcto, por lo que debes asegurarte de que sea correcto. ¿Tengo un horario establecido? No. Pero me tomo el tiempo de revisar mi código. Normalmente tengo un colega que hace lo mismo.
fuente
Las revisiones de código pueden parecer desalentadoras, pero son una herramienta valiosa cuando se realizan correctamente. Serán su primera línea de defensa contra los errores de diseño e implementación. Si no está llevando a cabo revisiones de código en cada característica que implementa, debe comenzar lo antes posible.
En cuanto a cuánto tiempo dedicar a las revisiones por pares, una buena práctica es dejar entre el 5 y el 10% del tiempo total estimado de desarrollo para realizar y responder a la revisión del código.
Tenemos un documento técnico sobre la realización de revisiones de código efectivas que pueden ayudarlo a comenzar con el pie derecho. Es una guía paso a paso y analiza los problemas comunes que puede enfrentar y cómo resolverlos. Puede descargarlo de nuestro sitio web.
fuente