Soy líder de un equipo con media docena de ingenieros superiores. Creo mucho que nos beneficiaría enormemente hacer revisiones de código por todas las razones estándar. No necesariamente todos los cambios, pero al menos un flujo constante de revisiones de antecedentes. Entonces la gente al menos ve los cambios de otros y comienza a hablar de ellos.
¿Hay una buena manera de presentar comentarios? Siento una gran renuencia del equipo, porque es solo una cosa más que hacer, y las conversaciones pueden ser dolorosas. Siento que revisar cada cambio no es un comienzo, al menos como primer paso. Me gustaría que las personas se pongan al ritmo y practiquen hacer revisiones con poca frecuencia primero antes de aumentar la cantidad.
¿Alguien ha introducido con éxito las revisiones de código gradualmente? ¿Cómo? Pensé en requerir revisiones en archivos o bibliotecas "calientes". O escogiendo al azar. O yo seleccionando "elección" cambios de revisión obligatoria. ¿O dar el paso y hacer cada cambio es el único camino a seguir?
fuente
Respuestas:
Esto no es un problema de herramientas o proceso. Se trata de cultura. Usted describe un equipo compuesto por personas sensibles a las críticas y protectoras de su propio trabajo. Es muy, muy común. Pero no es profesional.
Mi consejo es comenzar a liderar con el ejemplo. Ofrezca sus compromisos para su revisión. Sea abierto al solicitar que las personas resalten los problemas en su enfoque. Sé receptivo a los comentarios. No se ponga a la defensiva, sino que explore las razones detrás de los comentarios y acuerde las acciones en equipo. Fomentar una atmósfera de diálogo abierto. Encuentra un campeón o dos en tu equipo que estén dispuestos a hacer esto también.
Es un trabajo duro.
fuente
El primer paso sería acercarse a alguien y decir "oye, ¿revisarías mi código?". Sé el cambio que quieres ver en tu organización. Si no puede encontrar un solo individuo dispuesto a hacerlo, no podrá convencer a todo el equipo. Si los dos tienen éxito, repórtense al equipo.
Una vez que haya encontrado a alguien que revise su código, pregúntele si le importa si revisa parte de su código. Frase como una oportunidad de aprendizaje para usted y no como una oportunidad para ellos para mejorar su código.
fuente
Como líder de equipo, el mayor valor que obtengo del proceso de revisión de código es el conocimiento de lo que está sucediendo. Me gusta tener la oportunidad de ver cada conjunto de cambios, incluso si no tengo ningún cambio o sugerencia para el desarrollador. Yo llamo a estas "revisiones de conciencia". Puedo darles la vuelta en menos de 30 minutos para que no haya cuellos de botella.
Te sugiero que comiences con esos. Defina el proceso de envío de revisión de código (es bastante sencillo si usa TFS) y haga que todos se envíen a enviarle sus conjuntos de cambios (y solo a usted) antes de registrarse. Diles que es solo para conciencia y que nadie va a criticar su código.
Después de una o dos iteraciones de revisiones de concientización, comience a invitar a otros miembros del equipo a revisar el código de los demás ... nuevamente, solo para conciencia Lo creas o no, esto solo puede ser útil para la cohesión del equipo y la uniformidad del código.
Una vez que haya involucrado a todo el equipo, probablemente encontrará que sus desarrolladores simplemente no pueden resistirse a hacer sugerencias sobre el código de los demás. Sucederá de forma natural y orgánica (¡los ingenieros no pueden evitarlo!) Haga que el equipo se reúna para discutir esto y proponga pautas para ofrecerse comentarios constructivos entre sí. Luego póngalos a ello. ¡Felicitaciones, ahora está en modo de revisión de código completo!
fuente
Probablemente hay varias maneras buenas, dependiendo de su equipo y de los beneficios que espera obtener de las revisiones, pero cualquier enfoque tendrá algunas características comunes:
explique lo que espera: este es un proceso nuevo para su equipo, o al menos un cambio en el proceso existente, por lo que es justo que el equipo sepa por qué está instituyendo el cambio, cómo espera que el equipo se beneficie y cómo sabrás si está funcionando.
defina el proceso: guíe a las personas a través del proceso que desea que sigan para revisar el código, discutir los cambios, etc., para que todos en el equipo sepan cómo proceder.
defina los criterios: Exponga los tipos de cambios que las personas deberían y no deberían mencionar como necesidades de mejora. Por ejemplo, es bueno señalar errores y mejoras significativas en el rendimiento; los problemas de codificación, legibilidad y mantenibilidad deben tenerse en cuenta, pero no deben considerarse; los asuntos de gusto o estilo personal deben dejarse solos
Discuta el comportamiento: Señale que el objetivo es mejorar el código y fomentar una comprensión común que ayudará al equipo a escribir un mejor código en todos los ámbitos, no avergonzar a nadie, establecer puntajes, etc. Las críticas deben ser objetivas y constructivas, nunca personales. Establecer algunas reglas básicas puede ayudar a calmar las dudas sobre la revisión del código.
pónganse primero en el banquillo: ya sea que planeen tener revisiones individuales o grupales, probablemente sea una buena idea pasar por las primeras como grupo. La primera revisión debe ser de su propio código para que otros miembros del equipo puedan ver que el proceso no es tan malo y que usted está dispuesto a hacerlo usted mismo.
Comience celebrando una reunión inicial para explicar todo lo anterior y abordar las inquietudes de los miembros del equipo. Haga un seguimiento con un correo electrónico que documente el proceso.
Esas son dos preocupaciones distintas. Si cree que las revisiones serán útiles, entonces necesita agregar tiempo al cronograma para hacerlas. Asegúrese de que los miembros del equipo entiendan que la revisión es un trabajo como cualquier otra tarea, no algo adicional que tengan que hacer mientras continúan completando otras tareas al mismo ritmo.
Las reuniones de revisión grupal deben ser dirigidas por un facilitador que mantenga la discusión, limite la duración de la reunión y mantenga las cosas constructivas. Eso debería recorrer un largo camino para evitar conversaciones dolorosas. Para cuando esté listo para comenzar las revisiones individuales, es de esperar que el equipo haya adoptado comportamientos que los ayuden a mantener las cosas constructivas por sí mismos.
También debe revisar el proceso de revisión de vez en cuando. Reúna al equipo de vez en cuando para discutir el proceso: qué tan bien está funcionando, cómo podría mejorarse, qué prácticas deberían abandonarse, etc. Dele al equipo la propiedad del proceso y la libertad de probar cosas nuevas.
fuente
Una forma de hacerlo es llevar a cabo sesiones de revisión de código después de cada sprint, y revisar los cambios de todos donde el código se proyecta en una especie de pantalla grande para que todos en el equipo puedan participar. Cualquier mejora se puede agregar como deuda técnica a la cartera de pedidos.
Este enfoque funciona, pero no es perfecto.
El objetivo final sería utilizar la solicitud de extracción para fusionar el código nuevamente en la rama maestra o de desarrollo donde se debe revisar cada línea de código.
fuente