Primero permítame acuñar un término:
Código objetivo: revisar el código en la mañana, luego revisar en silencio todos los cambios realizados por los otros desarrolladores el día anterior archivo por archivo (especialmente los archivos de código que desarrolló originalmente), y corregir el formato, la lógica, cambiar el nombre de las variables, refactorizar métodos largos, etc., y luego confirmar los cambios en el VCS.
Esta práctica tiende a tener algunos pros y contras que he identificado:
- Pro : la calidad / legibilidad / coherencia del código a menudo se mantiene
- Pro : algunos errores se corrigen debido a que el otro desarrollador no está demasiado familiarizado con el código original.
- Con : A menudo es una pérdida de tiempo para el desarrollador que tiende a la meta.
- Con : Ocasionalmente introduce errores que causan furia por parte de los desarrolladores que pensaron que escribieron código libre de errores el día anterior.
- Contras : Otros desarrolladores se ven agravados con una excesiva selección y comienzan a no gustarles contribuir al código de la licitación de objetivos.
Descargo de responsabilidad: para ser justos, en realidad no soy un gerente de desarrollo, soy el desarrollador que realmente está haciendo el "cuidado de objetivos".
En mi defensa, creo que estoy haciendo esto por una buena razón (para mantener nuestra base de código extremadamente grande como una máquina bien engrasada), pero me preocupa mucho que también esté creando una atmósfera negativa. También estoy definitivamente preocupado de que mi gerente deba abordar el problema.
So, if you were the manager, how would you address this problem?
ACTUALIZACIÓN: No me refiero a que esto esté demasiado localizado, pero algunos lo han preguntado, por lo que tal vez algunos antecedentes sean esclarecedores. Me asignaron un proyecto gigante (200K LoC) hace tres años, y solo recientemente (hace 1 año) se agregaron desarrolladores adicionales al proyecto, algunos de los cuales no están familiarizados con la arquitectura, otros que todavía están aprendiendo el idioma (C #). Generalmente tengo que responder por la estabilidad general del producto, y estoy particularmente nervioso cuando sorprendentemente se realizan cambios en las partes arquitectónicas centrales de la base del código. Este hábito surgió porque al principio era optimista sobre las contribuciones de otros desarrolladores, pero cometieron demasiados errores que causaron serios problemas que no se descubrirían hasta semanas después, donde me señalarían con el dedo por escribir código inestable. A menudo estos "