¿Qué es la deuda Técnica?
El desarrollo actual de software suele llevarse a cabo en entornos dinámicos y con escasez de recursos, propensos a la acumulación de deuda técnica. Aunque este fenómeno general está reconocido, lo que sigue sin conocerse es cómo se manifiesta, y cuáles son las técnicas de desarrollo que la mitigan
El término "deuda técnica" suele referirse a los métodos abreviados o inadecuados durante el desarrollo de software. Se manifiesta en forma de código mal diseñado, falta de documentación y componentes obsoletos. Aunque el código bien escrito y la documentación son atemporales, los componentes y los enfoques no lo son.
El software y sus componentes pueden convertirse en deuda técnica con el paso del tiempo. Dado que la industria del software floreció en la década de 1980, hace unos 40 años, es un fenómeno relativamente nuevo que ahora nos encontremos con conceptos, procesos y sistemas de software completamente obsoletos.
La deuda técnica puede consistir en pequeños componentes de software, bibliotecas, código o algoritmos que, sencillamente, han quedado obsoletos por los nuevos conocimientos en informática. Además del código o los componentes de software, también puede aplicarse a diseños y arquitecturas de sistemas completos. De hecho, en el mundo actual, hay numerosos casos de industrias enteras que dependen de procesos, tecnología, protocolos de comunicación y otros componentes tecnológicos que pueden definirse como deuda técnica. No hay industria en el planeta que actualmente no sufra de deuda técnica, procesos y sistemas anticuados. Que los sistemas estén obsoletos no significa que el software haya llegado al final de su vida útil, sino que lo están los procesos y algoritmos que contiene.
Una mala gestión de la deuda tecnológica merma la capacidad de las empresas para competir. Las complicaciones creadas por sistemas antiguos y obsoletos pueden hacer que la integración de nuevos productos y capacidades resulte prohibitivamente costosa. Los retos ocultos en la arquitectura pueden dar lugar a sorpresas que hacen que los proyectos se salgan del presupuesto y no cumplan los plazos. Gran parte del tiempo de los empleados de TI se dedica a gestionar la complejidad en lugar de pensar en el futuro de forma innovadora. Y las arquitecturas de datos incorrectas impiden a las empresas aprovechar al máximo los análisis avanzados para mejorar su toma de decisiones.
En una encuesta reciente de McKinsey, los CIO informaron de que entre el 10 y el 20 por ciento del presupuesto tecnológico dedicado a nuevos productos se desvía a resolver problemas relacionados con la deuda tecnológica. Y lo que es aún más preocupante, los CIO estimaron que la deuda tecnológica asciende al 20-40% del valor de todo su parque tecnológico antes de amortización. Para las grandes organizaciones, esto se traduce en cientos de millones de dólares de deuda impagada. Y la situación no mejora: El 60% de los directores de sistemas de información encuestados consideraba que la deuda tecnológica de su organización había aumentado perceptiblemente en los últimos tres años.
El objetivo no es alcanzar una deuda tecnológica cero. Eso implicaría dedicar todos los recursos a remediarla en lugar de construir puntos de diferenciación competitiva. También dificultaría acelerar el desarrollo de TI cuando las consideraciones estratégicas o de riesgo lo requieran. Más bien, las empresas deben trabajar para dimensionar, valorar y controlar su deuda tecnológica y comunicar regularmente a la empresa.
Una buena manera de entender la deuda tecnológica es pensar que tiene los mismos dos componentes que la deuda financiera:
Principal: Es todo el trabajo necesario para modernizar la tecnología utilizada. Esto implica realizar tareas de mantenimiento, actualizar software, integraciones y adaptarlo a los estándares de datos, así como personalizar soluciones para satisfacer necesidades específicas más allá del soporte original del proveedor.
Interés: Es el costo adicional que se paga en forma de complejidad. Se debe a integraciones frágiles de datos, datos no estándar que deben ser armonizados y soluciones temporales para afrontar riesgos y cumplir con los requisitos del negocio. Estas dificultades afectan la eficiencia y productividad a largo plazo de la empresa, además de perjudicar los presupuestos y retornos de inversión actuales.
Datos a tener en cuenta: Gartner predice: "los directivos que gestionen y reduzcan activamente la deuda técnica conseguirán un despliegue de servicios al negocio, al menos, un 50% más rápidos." Esta predicción se alinea con un informe de McKinsey, según el cual algunas empresas que gestionan activamente su deuda técnica liberan a los ingenieros para que dediquen hasta un 50% más de su tiempo al desarrollo de trabajos que respalden sus objetivos empresariales estratégicos. Y un estudio de 2018 descubrió que las prácticas ágiles tienen un efecto positivo en la gestión de la deuda tecnológica.
En resumen, la deuda técnica consiste en el trabajo acumulado para mejorar la tecnología y los desafíos adicionales que surgen debido a las soluciones temporales. Ambas componentes generan una carga significativa que afecta el valor empresarial.
Una empresa que gasta más de la mitad de su presupuesto de proyectos de TI en integraciones y en arreglar sistemas heredados es probable que se vea atrapada en una espiral de deuda tecnológica en la que sólo paga intereses. Por el contrario, una empresa que opera con una arquitectura de TI moderna y tiene poca o ninguna deuda tecnológica es capaz de dirigir casi toda su inversión en tecnología, en innovación, haciendo avanzar el negocio.
¿Cuál es nuestra propuesta para evitar la deuda técnica en nuestros proyectos?
Partir de una definición de proyecto bien fundamentada, el uso de Agile en la implementación con unas buenas prácticas de calidad del software, y por supuesto el uso del “Equipo Habilitador”, clave para que las decisiones de arquitectura estén correctamente evaluadas y soportadas en sistemas que reduzcan esa deuda o su uso no implique un riesgo de incurrir en ella a corto/medio plazo.