Tuvimos una plática con Sagrario Meneses sobre la deuda técnica y cómo podemos atacarla. En este artículo te presentamos un pequeño resumen de lo que es y algunas sugerencias sobre su manejo.
¿Qué es la deuda técnica? #
La definición corta de deuda técnica es: todo aquello que hace que el software sea más difícil de producir y desarrollar.
La deuda técnica es invisible para los miembros no directamente relacionados con el desarrollo del proyecto; para los que participan en ellos no siempre es fácil de ver.
Esto incluye algunas cosas concretas como:
-
Los valores fijos que pueden cambiar en el futuro y en realidad deberían ser fáciles de cambiar sin tener que modificar el código (hardcoding)
-
Falta de información: cuando nadie sabe sobre cómo trabaja cierta parte del sistema o qué hace cierta pieza de código
-
Falta de distribución de información y conocimiento: cuando muy pocas personas saben sobre una parte del sistema y se convierten en cuello de botella
-
Falta de diseño explícito
-
Malas elecciones sobre diseño o tecnologías
-
Mezcla de diseños y estilos de programación diferente sin guía
-
Bugs que nadie conoce
Sagrario comparó la deuda técnica con deberle dinero a la mafia: no la puedes negociar, y cuando te supera estás en grandes problemas. Así que más vale que la aprendamos a controlar porque la deuda técnica puede hacer colapsar tu sistema.
Formas de hacer visible la deuda técnica #
Una forma que nos parece súper efectiva para hacer visible (literalmente) la deuda técnica: ponerlo en tablero de control en un espacio, idealmente, físico, que esté a la vista tanto del equipo técnico como del equipo administrativo. Este tablero fosforescente recordará a todos que hay temas importantes para atender antes de que la mafia venga a cobrarte.
En el caso de equipos remotos, el sustituto es un tablero de la herramienta de control que uses (Jira, Trello, Asana, Monday) que contenga temas importantes con respecto a las cosas que se pueden mejorar del sistema.
Finalmente, tus herramientas de desarrollo te pueden dar ideas valiosas de las cosas que tienes que mejorar de tu código:
- Te ayudan a listar las tareas pendientes (TODO’s)
- Te advierten sobre posibles problemas de código
- Si tienes una guía de estilo configurada, te dan advertencias sobre este punto también.
Prácticas para evitarla y dominarla #
Para poder reducir la deuda técnica hacen falta dos cosas:
- Pruebas, principalmente unitarias. Esto permitirá encontrar los errores más rápidamente, pero además refactorizar sin miedo.
- Lineamientos estrictos respecto a las acciones en el proyecto. Sagrario lo llamó disciplina, es decir, tener reglas y los procesos necesarios para hacer que estas reglas sean seguidas.
Otros temas #
También, hablamos de otros temas como el rol de arquitecta de software que tiene en Linio. De esto podemos sacar dos cosas relevantes:
- Aunque no se se sentía completamente lista para el puesto, aplicó para obtenerlo, y por eso está en una posición en la que está aprendiendo mucho. Sin miedo al éxito.
- A veces la ataca el síndrome del impostor, con el que siente que no pertenece allí, pero continua trabajando y estudiando.
- Mantiene la humildad sabiendo que no por tener el “título” es todopoderosa y ahora tiene autoridad sobre todos.
Conclusión #
Disfrutamos mucho la plática con una experimentada desarrolladora de software que ha ido tomando nuevos roles y responsabilidades en la misma empresa, que también se ha ido transformando. Puedes aprender mucho de ella y de las preguntas que se hicieron en vivo: