Una deuda con la calidad: el concepto de deuda técnica

Una deuda con la calidad: el concepto de deuda técnica

Si el desarrollo de un proyecto de software puede llegar a alcanzar cotas de complejidad abrumadoras, mantener un ojo puesto en la calidad del código que se lleva a producción tampoco es ninguna nimiedad. Puede ser, de hecho, una tarea faraónica. Y si no se lleva a cabo con regularidad, o se inicia en etapas avanzadas del desarrollo, corremos el riesgo de arrastrar fallos de código que pueden pasar factura una vez lleguen al usuario final, a menos que se les ponga remedio.

Afortunadamente, no todo en este cielo son nubarrones viniendo en lontananza. Hoy en día se dispone de potentes herramientas de integración continua con las cuales se puede revisar el código de una versión y poner remedio tanto al código menos eficiente como a, directamente, los bugs más severos que pueda acarrear.

Una de ellas es SonarQube, una utilidad que maneja una serie de conceptos de imprescindible entendimiento y comprensión en los actuales procesos de desarrollo de software.

Y uno de ellos es el concepto de “deuda técnica”.

De la deuda técnica se suele oír hablar, y no sin razón, ya que es un concepto de suma importancia, y una medición a tener muy en cuenta en el mantenimiento de un proyecto de software. Sin embargo, aunque se sabe que existe, no es fácil verla sin una medición adecuada. Precisamente es una de las métricas destacas que maneja el mencionado SonarQube, y es en su propia documentación donde podemos encontrar la que seguramente es la explicación más sencilla de entender sobre este concepto.

Imaginemos que un día abrimos la puerta de casa y lo que nos recibe es una tromba de agua. Ha ocurrido la hecatombe, tenemos una fuga en las cañerías y cuanto más hemos tardado en descubrir el desastre, mayor estropicio se ha formado, ya que el agua se ha ido acumulando y formando una inundación. Partiendo de este punto, el sentido común nos dicta que lo primero que hay que hacer es detener la fuga de agua para evitar que la inundación vaya en aumento. Ponerse a achicar cubo tras cubo mientras el líquido sigue brotando sin control, por pura lógica no nos va a resolver nada. Arreglemos primero la fuente del problema y de este modo podremos evitar que los daños se salgan de control.

 

la deuda técnica no solo es una medición de un coste de mantenimiento

Pues bien, este ejemplo que puede resultar un tanto exagerado es el quid de la cuestión de la deuda técnica, concepto que nos indica la cantidad de trabajo que habría que invertir para corregir los errores de un código. O llevado a la analogía anterior, cuánto tardaríamos en achicar toda el agua de nuestro anegado hogar. Y al igual que en este ejemplo, así como hay una fuga de agua causando una inundación, por regla general también encontremos código ineficiente, cuando no directamente causante de errores, en nuestro desarrollo. La corrección de este código mediante tareas ordenadas por prioridad, siempre teniendo en cuenta la gravedad del fallo que ocasione, es lo que nos permitirá ir sellando esas fugas. Y es algo que es recomendable hacer centrándonos primero en el código más reciente, ya que es el más fácil de corregir.

Pero la deuda técnica no solo es una medición de un coste de mantenimiento, sino también una medida del compromiso con la calidad que se ha tenido con un lanzamiento.

Las fechas de entrega aprietan, esto es una realidad, y que ahoguen o no depende de varias circunstancias. Pero un código que en su último sprint tiene poca deuda técnica también indica que ha contado con una mayor atención a la calidad durante su proceso de desarrollo. Y es que, como ya contamos en un post anterior, la importancia de QA en los procesos es cada vez mayor.

La deuda técnica es solo uno de los parámetros o métricas que una herramienta como SonarQube maneja, y un concepto de gran importancia en el ámbito de la calidad de software. Abordaremos más de ellos y el uso de la integración continua en futuras publicaciones.

En InlogiQ, como Solution Partner de Atlassian, estamos adaptados a los tiempos que corren. ¿Qué hacemos? Analizamos, proponemos e implementamos soluciones tecnológicas que aceleran el ritmo operativo de las organizaciones, sin distinción de función: TI, RRHH, Finanzas o marketing. Con nuestro partner Atlassian, agilizamos proyectos, procesos y equipos reactivando las capacidades internas de cada negocio de manera simple y rápida, para que el ROI tarde el menor tiempo posible.

Nuestro valor diferencial es nuestro profundo conocimiento de metodologías y marcos de procesos, tradicionales y Agile, que nos permiten ayudarte a diseñar los mejores flujos de trabajo para tu negocio.

Además de ello, en InlogiQ utilizamos las mejores prácticas para garantizar la calidad y la entrega ágil de valor de los equipos DevOps, haciendo que la automatización sea fluida. Con ello, lo que conseguimos es que las iniciativas de transformación digital del negocio lleguen rápidamente al cliente. Somos conocedores de los desafíos actuales de los departamentos TI para ofrecer, operar y respaldar experiencias de servicio excepcionales. Y este es el lugar en el que nos posicionamos, ofreciendo soluciones dentro de los marcos metodológicos y de buenas prácticas más exigentes.