Cómo reducir la deuda técnica para impulsar el crecimiento empresarial
La deuda técnica, aunque ampliamente debatida, rara vez se aborda de manera efectiva. Según un estudio de McKinsey, representa cerca del 40% de los..
Si en vez de leer prefieres escuchar, dale al play.
Los equipos de desarrollo de muchas organizaciones han adoptado las revisiones de código como una de sus prácticas básicas. Aunque parece algo muy razonable, con el paso del tiempo el objetivo que condujo a la adopción de esta práctica se olvida y lo único que queda es la aplicación sin sentido de la práctica en sí.
Mantener la calidad. Difundir conocimientos. Evitar errores graves en la producción. Mantener la coherencia en el diseño y la arquitectura del software. Todas ellas respuestas muy convincentes y lógicas, sin duda, pero si esos son los objetivos, ¿es la revisión del código la forma más eficaz de alcanzarlos?
Es difícil hablar de una práctica como la revisión de código sin conocer mejor el contexto en el que se aplica. Para ello puedes responder a ciertas preguntas como:
Conocer las respuestas a estas preguntas es extremadamente importante para decidir si la revisión de código (y cómo se hace) es realmente la mejor manera de alcanzar nuestros objetivos.
Bueno, la revisión de código es una práctica y no puedes culparla si el código que se está revisando es un desastre. Tampoco si decidiste revisar una gran parte del código semanas después de que se fusionara. Es la forma en que decidiste hacer las revisiones de código lo que puede ser complicado, no la práctica en sí.
Difundir conocimientos y evitar trabajo innecesario: Tener a miembros del equipo 'paireando' y revisando el código de otras parejas, ayuda a difundir el conocimiento de las distintas partes del sistema y también evita que determinados miembros del equipo hagan trabajo innecesario.
Para verificar si hay bugs: Esto me parece inútil. Tenemos tests para ello. El código sólo se revisa cuando se han superado todas las pruebas. No obstante, los tests forman parte de la revisión de código.
Después de que el código se fusiona a producción: Es demasiado tarde. ¿Qué hacemos si descubrimos que el código no es lo suficientemente bueno? Si el código ya está escrito, funciona, está en producción y no se va a cambiar pronto, ¿por qué revisarlo y cambiarlo? Yo esperaría a cambiarlo si alguna vez tengo que trabajar en él.
Cuando el código es demasiado grande: Revisar cambios grandes es cansado e irrespetuoso. En mi última empresa, decidimos en equipo rechazar los cambios grandes. Los desarrolladores/as tendría que dividir ese cambio en cambios más pequeños y confirmarlos poco a poco para que el evaluador pudiera darle sentido. Sólo se revisarían y fusionarían en producción los cambios pequeños.
Revisar los estándares de código: Normalmente utilizo Java y tenemos un montón de herramientas de análisis estático que se ejecutan durante nuestras construcciones. Si el código no cumple el mínimo de calidad definido (por el equipo) en estas herramientas, la compilación falla. No se revisa el código si falla la compilación de la rama.
Hay otras situaciones en las que utilizaría o no revisiones de código, pero esas son las más importantes.
Hacer pair programming para las revisiones de código nos proporciona un bucle de retroalimentación mucho más rápido y ayuda a minimizar los errores. Según nuestra experiencia, el código escrito por desarrolladores/as haciendo pairing tiene muchas más posibilidades de ser aceptado en una revisión de código que cuando lo escribe una sola persona.
Las revisiones de código son rápidas y baratas de hacer cuando se trabaja en pequeños incrementos, en parejas y rotando constantemente las parejas. Como los conocimientos técnicos y de dominio se extienden rápidamente por todo el equipo, las revisiones de código se convierten más en un mecanismo de intercambio de conocimientos que en un control de calidad.
Muchos problemas durante las revisiones de código pueden evitarse cuando tenemos una buena cultura de equipo. Las prácticas sin objetivos no tienen sentido. Antes de elegir una práctica, averigua exactamente qué quieres conseguir y sólo entonces elige prácticas que te ayuden a conseguirlo. Las prácticas no pueden adoptarse a ciegas. Para que funcionen, hay que tener el contexto y la mentalidad adecuados. De lo contrario, corres el riesgo de culpar a las prácticas de tus propias deficiencias.
La deuda técnica, aunque ampliamente debatida, rara vez se aborda de manera efectiva. Según un estudio de McKinsey, representa cerca del 40% de los..
La consultoría estratégica es una disciplina fundamental para las empresas en un mundo donde la rapidez del cambio, especialmente el tecnológico,..
KISS (keep-it-stupidly-simple principle) es uno de los primeros principios que se presentaron a los desarrolladores de software. Es un mantra que..
Suscríbete a nuestra newsletter para que podamos hacerte llegar recomendaciones de expertos y casos prácticos inspiradores