Cuándo hacer la revisión de código

15

Recientemente hemos pasado a un proceso scrum y estamos trabajando en tareas e historias de usuarios dentro de sprints. Nos gustaría hacer revisiones de código con frecuencia para que sean menos desalentadores. Estamos pensando que hacerlo en un nivel de historia de usuario, pero no estamos seguros de cómo ramificar nuestro código para dar cuenta de esto.

Estamos usando VS y TFS 2010 y somos un equipo de 6.

Actualmente ramificamos para funciones pero estamos trabajando para cambiar a ramificación para scrum.

Actualmente no usamos estanterías y realmente no queremos implementarlo si hay otras técnicas disponibles.

¿Cómo recomienda implementar una revisión de código por historia de usuario?

mcass20
fuente

Respuestas:

3

Depende de la naturaleza de las historias de los usuarios.

Puede ser efectivo crear una rama para cada historia de usuario, el progreso en diferentes historias son visibles, se pueden pasar si es necesario, si las historias no se completan en el sprint, el progreso puede permanecer en la rama para el próximo sprint . Las revisiones finales se pueden realizar al final de una historia de usuario en la rama de uso de la historia y fusionarse si el código está a la altura.

Para trabajar de la manera en que las historias deben ser finamente detalladas para evitar tareas de fusión inmanejables al final de un sprint. Las historias pequeñas permitirán una actualización constante de la rama de desarrollo a través del sprint del que los desarrolladores que trabajan en otras historias de usuarios deben obtener constantemente (VCM básico).

Esto crea gastos generales de proceso que tienen que crear y fusionar ramas constantemente, lo que en algunos casos se puede resolver con scripts de automatización, pero el equipo aún debe sentirse muy cómodo con el VCS.

Al final de un sprint, fusionas tu rama de desarrollo en integración / producción, etc.

También he trabajado en equipos donde todos trabajan desde una rama de desarrollo, al completar una historia de usuario, el código se envía a esa rama para su revisión y prueba, y si alguien empuja algo que rompe la construcción del desarrollo, tienen que conseguir las cervezas del equipo.


fuente
13

La forma más efectiva de revisar el código es ponerse de pie, encontrar a alguien y pedirle que venga y discuta el código que acaba de desarrollar.

No use una herramienta a menos que no pueda encontrar a alguien para revisar su código localmente.

Puede evitar las revisiones de código por completo mediante el emparejamiento.

Ryan Cromwell
fuente
Me preguntaba cuándo alguien iba a mencionar el emparejamiento. Entre eso y las pruebas unitarias, obtienes muchas revisiones.
JeffO
Leí esto como "ponerse de pie, despedir a alguien y pedirle que venga y discuta el código que acaba de desarrollar". Gracias por alegrarme el día.
Will Morgan
4

¿Todos los miembros del equipo son locales? Si es así, solo pídale a alguien que venga y eche un vistazo antes de que se registre el código. ¿No es local? Encienda su programa favorito para compartir pantalla y llame a alguien. Yo personalmente hago esto a menudo. A veces lo hago solo para decir "¡Oye, mira lo que hice!"

Prefiero este estilo de revisiones de código ad-hoc al estilo en el que alguien está de pie y presenta su código al equipo. Las revisiones ad-hoc pueden darle muchos (¿todos?) De los beneficios del emparejamiento sin la incomodidad. Además, es más probable que su "revisor" haga preguntas y sugiera mejoras en un entorno informal y personalizado.

jgrim
fuente
1

Creo que la revisión de código no es una parte formal de SCRUM, pero las revisiones son una táctica independiente para lograr calidad y mejorar sus proyectos / equipo.

Por lo tanto, usaría SCRUM (u otra metodología de desarrollo ágil) para asegurar / mejorar la calidad del PROYECTO y mantener el cronograma. Además, una buena táctica es hacer una revisión del producto (no código) independientemente de sus tareas normales de control de calidad / pruebas. Si esta actividad se pudiera hacer frente a su equipo / socios / clientes / audiencia, sería mejor.

Debe usar revisiones de código (u otras revisiones específicas) principalmente para mejorar su EQUIPO, esperando resultados a medio / largo plazo. Esto afectará sus PROYECTOS, pero a largo plazo como producto de la mejora de su EQUIPO.

Entonces, para responder a su pregunta, creo que está tratando de presionar demasiado a SCRUM, y debería considerar las revisiones solo tal como están.

Ron-Damon
fuente
Scrum no dice ni aconseja nada sobre el horario. Espera que entregue valor de forma regular. También proporciona momentos en los que puede inspeccionar y adaptar su proceso para mejorar (mejor, no necesariamente significa más rápido).
Ryan Cromwell
Sí, Scrum no declara hacer un horario completo como parte de él. Aún así, quise decir "planificación" cuando me referí a la programación, lo que significa que su cliente espera algún valor en un momento dado, para que puedan realizar el intercambio entre el valor de dinero v / s (si considera que está proporcionando servicios de desarrollo / programación) )
Ron-Damon
En ese caso, su cliente debe tener un presupuesto para gastar en un tiempo determinado (para pagarle, por ejemplo) y puede tener un horario que atender. Trabajo como proveedor de servicios, por eso no puedo dejar de lado este hecho.
Ron-Damon
Dejando de lado los contratos, los equipos Scrum ofrecen valor, no servicios. Desarrollamos / programamos como un medio para entregar ese valor.
Ryan Cromwell
No creo que pueda separar los términos "valor" y "servicio" amigo. También creo que esto es muy fuera de tema ahora.
Ron-Damon
0

¿No es obvio hacer revisiones de código antes de registrar su código?

TFS no funciona como GIT, por lo que cada vez que ingresa el código en una rama o troncal, está disponible para todos.

Esto significa que la revisión debe realizarse en el check-in para que los cambios no se propaguen a la copia de trabajo de todos.

Byron Whitlock
fuente
Creo que, en general, las pruebas unitarias son las que evitarían los malos cambios.
John Saunders
@ John Saunders: Considere las revisiones de código como otro tipo de prueba unitaria.
Gilbert Le Blanc
@ Gilbert: Podría hacer eso, pero no obtendría su beneficio para las pruebas de regresión. Prefiero pasar el tiempo escribiendo más y mejores pruebas unitarias.
John Saunders
@John Saunders, @Gilbert Le Blanc las revisiones de código son realizadas por otro desarrollador, la prueba unitaria generalmente es realizada por el desarrollador original, la nueva perspectiva puede ser vital.
He tenido buena suerte con las pruebas unitarias (las listas de pruebas se acuerdan con anticipación) y el análisis de código automatizado, posiblemente combinado con una herramienta de análisis de estilo como StyleCop. Pero entonces, a menudo no trabajo con desarrolladores junior.
John Saunders