Varios equipos de mi empresa practican un flujo de trabajo de revisión de código que nunca antes había visto. Estoy tratando de entender el pensamiento detrás de esto, con la idea de que hay valor en hacer que toda la compañía sea consistente. (Contribuyo a múltiples bases de código y me he tropezado con las diferencias en el pasado).
- El autor del código presenta una solicitud de extracción
- El revisor examina el código
- Si el revisor lo aprueba, deja un comentario en la línea de "Se ve bien, siéntase libre de fusionarse"
- Si el revisor tiene dudas, deja un comentario como "Por favor, solucione los problemas menores X e Y, luego combínelos" (Para cambios importantes, regrese al paso 2)
- El autor del código realiza cambios si es necesario y luego combina su propia solicitud de extracción
Tengo las siguientes preocupaciones:
En el caso de la aprobación en el paso 3, este flujo de trabajo crea un viaje de ida y vuelta aparentemente innecesario para el autor de la solicitud de extracción. El revisor, que ya está mirando el código, podría fusionarlo de inmediato.
En el caso de que se soliciten cambios en el paso 3, la agencia para fusionar la solicitud de extracción ahora depende únicamente del autor del RP. Nadie además del autor mirará los cambios antes de la fusión.
¿Cuáles son algunas otras ventajas o desventajas de este flujo de trabajo? ¿Es este flujo de trabajo común en otros equipos de ingeniería?
fuente
Respuestas:
En el primer caso, generalmente es una cortesía. En la mayoría de las organizaciones, las fusiones inician una serie de pruebas automatizadas que deben abordarse rápidamente si fallan. Especialmente si hubo un retraso significativo entre el momento en que se envió una solicitud de extracción y cuando se revisó, es cortés permitir que se fusione en el calendario del autor, para que tengan tiempo de lidiar con cualquier consecuencia inesperada. La forma más fácil de hacerlo es dejar que se fusionen ellos mismos.
Además, a veces el autor se da cuenta de las razones posteriores de que una solicitud de extracción aún no debe fusionarse. Quizás las relaciones públicas de otro desarrollador tengan mayor prioridad y puedan causar conflictos. Tal vez pensó en un caso de uso descubierto. Tal vez un comentario de revisión provocó una lluvia de ideas que necesita más investigación antes de que el problema esté completamente satisfecho. El autor sabe más sobre el código, y tiene sentido darle la última palabra sobre cuándo se fusionó.
En el segundo punto, eso es solo una cuestión de confianza. Si no puede confiar en que las personas solucionen problemas menores sin que se verifiquen dos veces, no deberían estar trabajando para usted. Si el problema es lo suficientemente grande como para que necesite otra revisión después de la solución, entonces confíe en los revisores para pedir una.
Dicho esto, ocasionalmente fusiono las solicitudes de extracción de otros autores, pero generalmente son cambios muy simples o de fuentes externas, donde personalmente asumo la responsabilidad de guiar cualquier falla de automatización de prueba.
fuente
Hacer que el autor inicial combine su propia solicitud de extracción es mi flujo de trabajo preferido en equipos pequeños. Además de las ventajas técnicas ya mencionadas (en términos de resolución de conflictos de fusión, por ejemplo), creo que agrega valor a nivel cultural: crea un sentido de propiedad.
Especifiqué el autor inicial para el caso (raro) en el que otro desarrollador agregaría confirmaciones a la solicitud de extracción abierta (extrayendo la rama de la función de trabajo en progreso y volviendo a ella). Esto no sucede a menudo, y sería el resultado de una conversación en persona o por Slack: ¡Estos compromisos adicionales (por parte de otra persona) no deberían llegar allí por sorpresa! En este contexto, por autor inicial , me refiero al que envió la solicitud de extracción.
fuente
En mi organización somos bastante nuevos en las solicitudes de extracción y su pregunta es una que me he reflexionado.
Una observación que me gustaría agregar: en algunas herramientas (utilizamos TFS) podría haber un elemento de trabajo asociado con la solicitud de extracción.
Si ese es el caso, se vuelve un poco complicado tener en cuenta cuándo el revisor realizó la fusión. En ese escenario, el desarrollador debe volver a visitar el RP, abrir el error o solicitar la modificación y marcarlo como 'resuelto'. Si lo marcamos como "resuelto" demasiado pronto, los evaluadores creen que la solución ya forma parte de la compilación actual.
TFS 2017 mejoró su implementación de la solicitud de extracción. Ahora el desarrollador puede solicitar la solicitud de extracción para fusionarse automáticamente si se cumplen todas las condiciones (sin conflicto de fusión, aprobación de los revisores y sin compilaciones rotas). YMMV.
fuente
De esta manera, el autor tiene la oportunidad de cambiar de opinión acerca de su rama, tal vez descubrió algo que debería hacerse de una manera diferente y volver a poner los cargos adicionales para su revisión.
fuente