Qué es la deuda técnica explicada para founders
La deuda técnica no es mala por definición, como la deuda financiera no es mala por definición. El problema es no saber que la estás tomando ni cuánto te va a costar pagarla.
Leer artículo →Estrategias prácticas para gestionar la deuda técnica antes de que se convierta en un freno para el crecimiento: cómo hacerla visible, medir su impacto y asignar recursos para reducirla sin detener la operación.
La deuda técnica tiene una característica insidiosa: se acumula en silencio. Durante meses —a veces años—, la empresa sigue operando, el equipo sigue entregando, los clientes no notan nada. Hasta que un día, algo que debería tomar una semana toma un mes, un cambio menor rompe el sistema de pagos, y el equipo técnico confiesa que lleva tiempo evitando tocar ciertas partes del código porque tienen miedo de lo que pueda pasar.
Ese día, la deuda técnica dejó de ser un problema técnico y se convirtió en un problema de negocio. Y lo peor es que no llegó de golpe: llegó de a poco, decisión por decisión, sprint por sprint, mientras la empresa priorizaba —comprensiblemente— las funcionalidades nuevas sobre el orden interno.
Este artículo describe cómo gestionar la deuda técnica de forma activa para que no se convierta en un freno al crecimiento. No promete eliminarla —la deuda técnica, como la deuda financiera, es parte de operar—, sino mantenerla en un nivel manejable donde no consuma más recursos de los que la empresa puede darse el lujo de asignarle.
El primer problema con la deuda técnica es que, para quien no programa, es invisible. Los síntomas son visibles —lentitud, bugs recurrentes, tiempos de desarrollo que se estiran—, pero la causa permanece oculta en un código que los tomadores de decisión no leen. Gestionar algo que no se ve es imposible.
El primer paso, entonces, es hacer visible la deuda. No hace falta que el CEO o el gerente general entiendan los detalles técnicos. Alcanza con que exista un registro mantenido por el equipo técnico que responda, para cada deuda identificada, tres preguntas en lenguaje de negocio:
¿Qué impacto tiene en la operación? Por ejemplo: "el módulo de búsqueda de clientes se vuelve más lento a medida que crece la base de datos; si duplicamos la cantidad de clientes, las búsquedas van a tardar más de diez segundos".
¿Cuánto esfuerzo requiere solucionarla? No una estimación precisa —eso es difícil en deuda técnica—, pero sí un orden de magnitud: horas, días, semanas.
¿Qué riesgo representa no solucionarla en los próximos tres meses? La deuda que frena funcionalidades del roadmap inmediato o que aumenta el riesgo de errores en producción es prioritaria. La deuda en módulos que no se van a tocar no lo es.
Muchos equipos mantienen un registro informal de deuda técnica —una hoja de cálculo, una columna en la herramienta de gestión de proyectos— que nunca se revisa en las reuniones de planificación. La diferencia entre un registro inerte y uno útil es que el segundo se revisa en cada planificación y compite por recursos con las funcionalidades nuevas, no contra un espacio vacío que nunca existió en el cronograma.
El error más común en la gestión de deuda técnica es tratarla como una actividad residual: "cuando tengamos un sprint tranquilo, ordenamos". Ese sprint tranquilo nunca llega, porque siempre hay algo más urgente, y porque si llegara, probablemente se usaría para adelantar funcionalidades del roadmap siguiente.
La alternativa es presupuestar tiempo para reducción de deuda técnica de forma explícita y recurrente. No como un proyecto extraordinario que se aprueba cuando el problema ya es grave, sino como una parte regular del ritmo de desarrollo.
Hay tres modelos principales, y cuál funciona mejor depende del contexto de la empresa:
Porcentaje fijo del sprint. Reservar entre un quince y un veinticinco por ciento de la capacidad del equipo en cada ciclo para reducir deuda. Es un modelo predecible y fácil de comunicar a stakeholders no técnicos: "de cada cinco días de trabajo, uno se dedica a mantener el sistema en condiciones de seguir creciendo".
Sprints de mantenimiento programados. Cada cierto número de sprints —por ejemplo, cada cuatro—, dedicar uno completo a reducción de deuda, sin entregas de funcionalidades nuevas. Tiene la ventaja de que permite atacar problemas más profundos que requieren concentración, y la desventaja de que los stakeholders de negocio tienden a verlo como un sprint "improductivo".
Incluir el costo de la deuda en cada estimación. Cuando se planifica una funcionalidad nueva que toca una parte del sistema con deuda conocida, la estimación incluye el tiempo extra que toma trabajar sobre esa base. Esto hace visible el costo real de la deuda en cada decisión y genera presión natural para pagarla: si el comité de producto ve que la funcionalidad A —que toca código ordenado— cuesta la mitad que la funcionalidad B —que toca código con deuda—, la conversación sobre pagar deuda deja de ser abstracta.
En algunas empresas, el término "deuda técnica" tiene mala prensa: suena a excusa del equipo para no entregar, o a un problema que debería haberse evitado y que ahora hay que pagar con culpa. Si ese es el caso, llamalo de otra forma: "mantenimiento de plataforma", "mejora de infraestructura", "inversión en velocidad futura". El nombre no cambia lo que se hace, pero sí cómo se percibe.
Cuando el equipo técnico prioriza deuda sin input del negocio, tiende a atacar primero lo que más le molesta programando —código desprolijo, falta de pruebas, herramientas viejas—, que no siempre es lo que más impacto tiene en los resultados de la empresa. La priorización debería ser una conversación compartida.
Una matriz simple que funciona bien: cruzar el impacto en el negocio con el esfuerzo requerido.
Alto impacto, bajo esfuerzo: atacarlo ya. Es la fruta más baja y la que más rápido devuelve valor. Ejemplo: automatizar un proceso manual que el equipo repite todas las semanas y que toma horas.
Alto impacto, alto esfuerzo: planificarlo para el trimestre siguiente. Requiere inversión significativa pero la justifica. Ejemplo: reescribir el módulo de pagos que está generando errores cada vez más frecuentes.
Bajo impacto, bajo esfuerzo: hacerlo cuando haya un hueco natural —por ejemplo, durante la pausa de fin de año o entre proyectos grandes—. Ejemplo: actualizar una biblioteca interna que funciona bien pero tiene una versión más nueva disponible.
Bajo impacto, alto esfuerzo: no hacerlo, a menos que sea un prerrequisito para algo de alto impacto. Ejemplo: reescribir un módulo interno que funciona perfectamente pero que está programado con un estilo que al equipo no le gusta.
La deuda técnica que más daño hace no es la que el equipo conoce y gestiona activamente: es la que el equipo conoce pero no menciona porque aprendió que mencionarla no lleva a ninguna acción. Si cada vez que un desarrollador dice "esto nos está generando problemas y deberíamos arreglarlo" la respuesta es "no hay tiempo", eventualmente deja de decirlo. Pero la deuda sigue acumulándose.
Crear un espacio donde el equipo pueda hablar de deuda técnica sin que eso se interprete como una queja o una excusa es responsabilidad de quien lidera. Implica preguntar activamente —"¿qué es lo que más nos está frenando ahora?"— y, sobre todo, actuar sobre las respuestas. Nada desincentiva más la transparencia que preguntar y después ignorar lo que te dicen.
El argumento más común para no dedicar tiempo a reducir deuda técnica es que el equipo debería estar construyendo funcionalidades que generan valor para los clientes. Es un argumento válido en el corto plazo y devastador en el mediano.
Una empresa que no gestiona su deuda técnica descubre, generalmente en el peor momento, que:
El artículo sobre qué es la deuda técnica para founders explica el concepto desde cero, con analogías de negocio. Y el artículo sobre qué decisiones técnicas pueden limitar el crecimiento de un negocio complementa esta guía identificando las elecciones de tecnología y arquitectura que, tomadas temprano, se convierten en frenos cuando la empresa crece.
La deuda técnica no es un fracaso del equipo: es una consecuencia natural de priorizar velocidad sobre orden en un contexto donde la velocidad era la prioridad correcta. El problema no es haberla generado —en muchas situaciones fue la decisión acertada—, sino no gestionarla una vez que el contexto cambió y la velocidad sin orden empezó a ser más lenta que el orden con velocidad.
¿Quieres evaluar cómo aplicar esto a tu proyecto?
Cuéntanos tu caso →