Deuda Técnica Definición. Se trata de un conjunto de efectos que se producen durante la generación de software, efectos a los que tenemos que prestar especial atención cuando utilizamos metodologías ágiles. Por ejemplo, cuando por atender una petición urgente estamos dejando de lado la calidad o la documentación, en ese preciso momento estamos incurriendo en Deuda Técnica. A los compiladores o a los servidores de aplicaciones no les preocupa lo más mínimo que nuestro código sea poco eficiente, que este mal estructurado, que sea sucio o poco limpio. Pero cuando intervienen las personas en su evolución o en su mantenimiento, ahí sí que tiene una importancia critica. ¿Quién tiene la responsabilidad? Somos las personas los responsables de la duda técnica ya que no hay nadie más entre nosotros y el código que generamos. Al final, los sistemas o las aplicaciones mal diseñadas o deficientemente documentadas son complicados de mantener y modificar incluso por quien los creo inicialmente. ¿Tiene Coste? Llegará el momento en el que tendremos que asumir la existencia de un coste nada despreciable. Pagar o Asumir para pagar finalmente. 1.- Pagar: Mejorando el código, revisando su calidad, mejorando la documentación. 2.- Asumir: Tiempos de mantenimiento y gestión muy superiores a los deseados. En definitiva, la deuda técnica tendrá un coste que finalmente tendremos que pagar. Además, esta deuda funciona de forma similar a una deuda financiera, la pagamos o nos puede llevar a la ruina. En nuestro caso la ruina significa el caos en nuestros sistemas. ¿Es la deuda técnica sinónimo de incompetencia? Las organizaciones pueden forzarnos a inflarla involuntariamente. Generalmente esta deuda es consecuencia de nuestro compromiso para satisfacer a nuestros clientes y las fechas que nos imponen. Así pues, en muchos casos se trata de una deuda técnica intencionada o forzada por las circunstancias. ¿Cuáles son los factores principales? Los tres factores que más incrementan la deuda técnica de un proyecto son los siguientes: 1.- Deuda de Testing. Realización deficiente de pruebas o incluso no realización de las mismas. Factor que incrementa el número de errores que pueden aparecer en el código o el incumplimiento de requerimientos deficientemente especificados. 2.- Calidad. Código deficiente, mala estructuración. Cuanta más velocidad en la generación del código menor será la estructuración del mismo y peor la calidad. 3.- Documentación Obsoleta o Inexistente. La no generación de documentación de valor y la no actualización de la misma puede generar futuros problemas de mantenimiento. ¿Cómo luchamos contra la Deuda Técnica? Documentar Reflexionar Refactorizar Pasos a seguir Así pues, uno de nuestros objetivos tiene que ser minimizar la deuda técnica para lo cual tenemos que seguir los siguientes pasos: Ser conscientes. Estar comprometidos. Actuar con firmeza. http: