Podemos definir la deuda técnica como el esfuerzo necesario para modificar el código de una aplicación, resolviendo todos los problemas que ésta pueda tener, dejándolo en unas condiciones que faciliten la evolución y minimicen los costos de soporte y desarrollo de nuevas funcionalidades.
Es importante tener en cuenta que una aplicación puede cumplir funcionalmente con los requerimientos, pero aun así tener una deuda técnica altísima.
A continuación, compartimos algunas situaciones, con las cuales es posible identificar la deuda técnica de una aplicación.
Tan importante como definir los aspectos a medir, es el poder medir y analizarlos constantemente, para lo cual conviene incorporar herramientas que realicen la medición de forma automática, a medida que el equipo de desarrollo va introduciendo modificaciones en el código. Una de las herramientas más usada, actualmente, para este fin es Sonarqube.
En InterGrupo usamos dicha herramienta para analizar el código de las aplicaciones propias y desarrolladas para nuestros clientes, con el fin de determinar cómo están respecto a los variables, previamente definidas en las políticas internas de calidad.
Este análisis y medición es fundamental para el mejoramiento continuo, convirtiéndose en la clave para mantener la deuda técnica bajo control. Recordemos que lo que no se mide no se puede mejorar.
En ocasiones, la deuda técnica se acumula por decisiones conscientes, basadas en metas y estrategias del negocio, los cuales requieren agilidad en la entrega de productos o servicios al público objetivo, antes que la competencia lo realice.
Lo anterior conlleva a que se tomen decisiones que van en contra de la calidad del código, aumentando la deuda técnica, pero favoreciendo el “time to market”. Lo importante es tener conciencia sobre dicha deuda, ya que en algún punto del tiempo debe pagarse (realizando una refactorización del código) y entre más pronto se pague mejor.
InterGrupo, a través de su servicio Imaginar lo acompaña en el desarrollo de ventajas competitivas, a través de la identificación de nuevas oportunidades de negocio.
Al identificar nuevas oportunidades de una manera oportuna, tendrá más posibilidades de acelerar la creación de nuevas soluciones y tener un time to market más óptimo.
Para tener la deuda técnica bajo control, se debe tener claro en qué escenario se encuentra el proyecto tecnológico:
En el primer escenario, es recomendable definir, desde el inicio, los límites aceptables de cada variable de calidad e incorporar el análisis durante la ejecución del proceso de integración continua.
En el caso de las aplicaciones que ya cuentan con una deuda técnica acumulada, lo ideal es comenzar por una medición objetiva, para conocer qué tanta deuda tiene; esto con el fin de asegurar que el equipo de desarrollo no aumente esta deuda, cuando se realicen las modificaciones.
Una vez identificado el nivel de tecnología legada, se debe construir un plan estratégico que nos permita identificar el plan de trabajo y mejora de la herramienta.
Cabe resaltar que, aunque una aplicación tenga un conjunto de problemas, que son la sumatoria de su deuda técnica, puede no ser estratégico resolverlos todos. Puede no tener mucho sentido priorizar ajustes sobre un módulo de una aplicación, que lleva ya algún tiempo en producción y no se ha modificado hace muchos meses o años; a menos, claro está, que se identifique que alguno de los problemas está causando errores que afectan directamente a la prestación del servicio/producto, generan inconsistencias o vuelven la aplicación vulnerable a algún tipo de ataque.
La clave por lo tanto en estos escenarios es una correcta priorización de los problemas que deben resolverse.
Finalmente, si se quiere maximizar la inversión que ya se realizó en alguna aplicación, extendiendo su vida útil por mucho más tiempo, adicionando características de una aplicación moderna y gestionando la deuda técnica de una forma estratégica, un servicio como el de modernización de aplicaciones de Intergrupo le ayudará a conseguir estos objetivos de una manera segura y confiable.
Autor:
Giovanny Saray
Gerente de estrategia de Modernización de aplicaciones