Deuda Técnica

Me encuentro en mi trabajo ante una gran carga de trabajo debido a los siguientes factores:

  1. Un proyecto de desarrollo de larga duración (casi 2 años).
  2. un mini proyecto para re escribir un pequeño sistema, bajo presiones de cumplir con plazos normativos estrechos.
  3. modificaciones a un sistema fundamental que es la base para nuestras operaciones.
  4. la re escritura total de un sistema.

El caso 1 tiene su equipo, que es externo, y a pesar de ser grande y muy importante, está controlado. El segundo es un cambio inesperado, e impuesto por una autoridad externa, debemos hacerlo, sí o sí. Los casos 3 y 4 son productos de la deuda técnica.

Deuda Técnica

El concepto de deuda técnica se lo debemos a Ward Cunningham (*)

La deuda técnica es una metáfora que nos ayuda a pensar en este problema. En esta metáfora hacer las cosas de una manera rápida nos genera deuda técnica, de una forma similar a la deuda financiera. Al igual que las deudad financieras, la deuda técnica incurre en pagos por concepto de interés, en la forma de esfuerzo extra que tenemos que hacer en los desarrollos futuros debido a las decisiones de diseño rápidas y descuidadas que tomamos. Podemos elegir en seguir pagando intereses, o podemos pagar el capital mediante la refactorización del diseño en algo mejor pensado. Aunque hay un costo al pagar este capital, ganamos porque los intereses a pagar en el futuro se reducen.

Esta metáfora también explica por qué puede ser sensible tomar una aproximación rápida y sucia. Del mismo modo que un negocio incurre en deudas para tomar ventajas de las oportunidades del mercado, los desarrolladores deben incurrir en deuda técnica para poder lograr un plazo importante. El problema común es que las organizaciones en desarrollo dejan que su deuda siga fuera de controls y gastan mucho de sus desarrollos futuros pagando grandes intereses.

Las presiones de los clientes, y de los usuarios por tener un sistema funcionando dentro del tiempo que ellos requieren puede ser una fuente habitual de deuda técnica. Ante esto muchas veces tomamos la decisión de salir al mercado con un diseño no acabado, o incompleto, o no totalmente probado. Esas decisiones deben tomarse, y no es que esa decisión sea incorrecta, o mala (lo perfecto es enemigo de lo bueno). Lo importante es ser conscientes de esa deuda, y transmitir las consecuencias a los afectados. Por que al final, todas las deudas se pagan.

En este video Ward Cunnigham explica el concepto.

(*) Ward Cunningham es el creador del concepto de Wiki, entre otras cosas.

Autor

Ingeniero, autor, emprendedor y apasionado programador. Mantengo este blog desde 2005.

comments powered by Disqus
Siguiente
Anterior

¿Te gustó?

Puedes apoyar mi trabajo en Patreon:

O puedes apoyarme con un café.