Está en la página 1de 77

La deuda tcnica

Satisfacemos los requerimientos de costo/tiempo o


entregamos lo solicitado?

La disputa en los
proyectos

Satisfacer las restricciones


de tiempo/costo

Aspectos
Aspectos estratgicos
estratgicos

Requerimientos de entrega
con calidad

Aspectos
Aspectos procedimentales
procedimentales

Avance ideal del


proyecto
Esfuerzo planificado
Velocidad
planificada
Visin simplista e idealizada
del trabajo a realizar a travs
del tiempo

Tiempo
Fecha predeterminada
de entrega

Avance real del


proyecto
Tasa real a la que se est
completando el trabajo
de calidad

Esfuerzo subestimado
Velocidad
planificada
Visin simplista e idealizada
del trabajo a realizar a travs
del tiempo

Tiempo
Fecha predeterminada
de entrega

Fecha de entrega
proyectada

El costo del ajuste


Tasa real a la que se est
completando el trabajo
de calidad

En este punto se ejerce presin


a fin de cumplir con la fecha
predeterminada...y la calidad
se ve afectada

Velocidad
planificada
Visin simplista e idealizada
del trabajo realizado a travs
del tiempo

Tiempo
Fecha predeterminada
de entrega

Fecha de entrega
proyectada

Deuda tcnica

La metfora de deuda tcnica, desarrollada por Ward Cunnigham en 1992,


explica cmo el proceso de desarrollar de forma rpida y sucia nos hace
incurrir en una deuda, que al igual que una deuda financiera, nos obliga al
pago de intereses, que se traducen en un esfuerzo extra a realizar en las
siguientes iteraciones de desarrollo.

Deuda tcnica
La deuda tcnica es un eufemismo tecnolgico
que hace referencia a las consecuencias de un
desarrollo apresurado de software o un
despliegue descuidado de hardware.
La deuda puede verse como trabajo que
necesita realizarse antes que el proyecto pueda
considerarse como completo.
La deuda tcnica es el costo y los intereses a
pagar por hacer mal las cosas.
La deuda tcnica impide progresar, obtener
ganancias, cancelar las deudas.

Qu sucede con el
software?

Qu sucede con el
software?

UNA CUESTIN DE PGAME AHORA O PGAME DESPU

Imposible de
mantener

alguna semejanza?

les suena familiar?


Djate de probar (o de disear,
documentar, refactorizar, etc.)
y ponte a programar, que no
tenemos tiempo.

Ante esta
situacin

Mejoras al software

Visible
Valor
positivo

Nuevas
caractersticas
Funcionalidad
adicional

Valor
negativo

Defectos

Un desarrollo de mala
calidad, obtiene beneficios
Invisible
a corto plazo. Pero puede
Arquitectura,
Caractersticas
estructurales
generar DEUDA cuyos
Deuda intereses se disparen, se
tcnica
alarguen o incluso sean
imposibles de pagar.

Cuadrante de deuda
tcnica

Fuente: Martin Fowler

Costos asociados

Cdigo rpido sin probar

Costo

Simple, Test-Driven Desig

Tiempo

Cdigo heredado

Cdigo heredado

Bancarrota

Intereses

Pago de principal
Prestamos

Inflacin

Opinin de los
expertos

Los olores del


cdigo

Deuda tcnica

rea de Deuda Tcnica

Velocidad
planificada

Tiempo
Fecha predeterminada
de entrega

Fecha de entrega
proyectada

Tenemos un
problema

Incremento en la
deuda tcnica
La velocidad del equipo
trabajando en la versin 2
es significativamente menor
debido a la baja calidad en
el cdigo

Incremento del rea


de Deuda Tcnica

Velocidad
planificada

Velocidad del
proyecto original

Tiempo
1ra. entrega

2. entrega

qu pasa con
scrum?

Tenemos las
respuestas?
Si este trabajo tcnico no hecho es necesario para
la salud del proyecto,
qu pasa cuando no se hace nada con l?
qu pasa cuando se acumula y contina
acumulando deuda tcnica y no se atiende?

diseo muerto

sntomas

ejemplos

Errores conocidos y no solucionados


Retraso en las actualizaciones crticas
Retraso en el refactoring del cdigo complejo
En aplicaciones web, codificar toda la lgica de
negocios en la capa de presentacin
No utilizar logs o manejo de errores robusto
No realizar pruebas o realizarlas de forma muy
superficial
Mejoras de cdigo no implementadas
Documentacin incompleta, inexistente o no
actualizada

Como se materializa

Documentacin escasa, incompleta o inservible.


Errores.
Ausencia o deficiente control de versiones.
Arquitectura no escalable.
Rigidez para actualizar a nuevas tecnologas o
plataformas.

No toda la deuda
tcnica es mala

Como manejar la deuda


tcnica?

The time you take out of the schedule to make


technical debt payments typically doesnt result in
anything the customers or users will see Jeff
Atwood

framework
Estimacin
DT
Identificaci
n
DT

Toma de
decisiones

Lista
DT

ITEM de Deuda
tcnica

Riesgo

debemos eliminar
toda a deuda
tcnica?

Involucrar y educar

Involucrar al
product owner

Evaluar decisiones

ejemplo

ejemplo

Riesgos de deuda
tcnica
Cmo se evitan los riesgos de deuda
tcnica?

Visualizar y medir

Mtricas de cdigo

Velocidad y bugs

backlog

Pull systems

Definition of done

Enfoques para
pagar la deuda

Priorizar y el
backlog

Priorizar y el
backlog

Priorizar y el
backlog

Priorizar y el
backlog

Priorizar y el
backlog

Distribuir cada
sprint

Toyota kata

Incluir la calidad en
la gestin del
portafolio

Medida de xito
tradicional

Tringulo gil

mtrica

Cuantificar la deuda

MVP

Propsito del mvp


Probar un producto con el mnimo de recursos.
Acelerar el aprendizaje sobre la utilidad del
producto.
Reducir el desperdicio de horas de ingeniera.
Liberar el producto a los usuarios lo ms pronto
posible.

A Qu aspiramos

Cambio cultural

La META es la CALIDAD
La Ley fundamental de programacin de Ward Cunningham
indica:

reducir la calidad, incrementa el tiempo de


desarrollo.

Conclusiones

Todo mundo debera saber que la mala


Calidad en el software, al final se paga

No subestimemos el peligro

También podría gustarte