Como desarrolladores somos, la mentalidad debe permanecer siempre abierta y escéptica al mismo tiempo.
Abierto, porque no sabemos cuándo un desarrollador puede sorprendernos, y escéptico sobre nuestras propias ideas porque a menudo olvidamos que en la ingeniería de software no hay una única forma correcta de implementar una solución. La lógica detrás de nuestras soluciones podría tener sentido para nosotros y no tener ninguna para los demás. Detrás de un olor a código podría haber una gran idea. Tal vez, el desarrollador no encontró la manera de expresarlo correctamente.
Debido a que nosotros (los humanos) somos terribles en la comunicación, no haga suposiciones falsas, esté dispuesto a preguntar al propietario del código sobre el código que está revisando. Si él / ella no pudo codificar la idea bajo los estándares de la compañía, como desarrollador principal, esté dispuesto a guiarlo también.
Aquí el enfoque subjetivo. El enfoque objetivo, la OMI, se explica muy bien en esta pregunta .
Además del enlace anterior, el conjunto de objetivos a alcanzar (mantenibilidad, legibilidad, portabilidad, alta cohesión, acoplamiento flojo, etc.) no son necesariamente los Diez Mandamientos. Usted (el equipo) debería poder adaptar estos objetivos a un punto en el que el equilibrio entre calidad y productividad haga que el trabajo sea cómodo y "habitable para los desarrolladores".
Sugeriría el uso de herramientas de análisis de código estático para medir el progreso de la calidad de acuerdo con estos objetivos. Herramientas como SonarQube nos proporcionan Puertas de calidad y Perfiles de calidad que se pueden personalizar de acuerdo con nuestras prioridades. También nos proporciona un rastreador de problemas, donde los desarrolladores pueden ser identificados con problemas relacionados con el olor del código, errores, prácticas dudosas, etc.
Este tipo de herramientas puede ser un buen punto de partida, pero como dije, manténgase escéptico. Puede encontrar que algunas reglas en Sonar no tienen sentido para usted, así que no dude en ignorarlas o eliminarlas de su perfil de calidad.