software debt: qué es y cómo gestionarlo holísticamente
DESCRIPTION
Software Debt talk - Agiles 2013, Lima - Perú - CAS 2014, Barcelona - EspañaTRANSCRIPT
![Page 1: Software Debt: Qué Es y Cómo Gestionarlo Holísticamente](https://reader034.vdocuments.mx/reader034/viewer/2022052620/55799a23d8b42ae72b8b522d/html5/thumbnails/1.jpg)
SOFTWARE DEBT QUÉ ES Y CÓMO GESTIONARLO HOLÍSTICAMENTE
![Page 3: Software Debt: Qué Es y Cómo Gestionarlo Holísticamente](https://reader034.vdocuments.mx/reader034/viewer/2022052620/55799a23d8b42ae72b8b522d/html5/thumbnails/3.jpg)
UN CASO REAL M
arch
- 20
01
Oct
ober
- 20
01
May
- 20
02
Dec
embe
r - 2
002
July
- 20
03
Febr
uary
- 20
04
Sep
tem
ber -
200
4 A
pril
- 200
5 N
ovem
ber -
200
5 Ju
ne -
2006
Ja
nuar
y - 2
007
Aug
ust -
200
7 M
arch
- 20
08
Oct
ober
- 20
08
May
- 20
09
Dec
embe
r - 2
009
July
- 20
10
Febr
uary
- 20
11
Sep
tem
ber -
201
1 A
pril
- 201
2 N
ovem
ber -
201
2 Ju
ne -
2013
V1
V2 V3 V4 V4.5 V5 V6 V7 V8
• Estimado No Cumplido Siguiente Release : Marzo 2013 • Hoy: June 2013 • Nuevo Estimado Siguiente Release : Julio 2013
![Page 4: Software Debt: Qué Es y Cómo Gestionarlo Holísticamente](https://reader034.vdocuments.mx/reader034/viewer/2022052620/55799a23d8b42ae72b8b522d/html5/thumbnails/4.jpg)
Issues Posted vs Fixed
![Page 5: Software Debt: Qué Es y Cómo Gestionarlo Holísticamente](https://reader034.vdocuments.mx/reader034/viewer/2022052620/55799a23d8b42ae72b8b522d/html5/thumbnails/5.jpg)
Drupal Core Versión: 8.0 Dev Uno de los CMS más usados y populares del mundo. • Casa Blanca • Warner Bross Records • Emmy • Ubuntu
LA VICTIMA
![Page 6: Software Debt: Qué Es y Cómo Gestionarlo Holísticamente](https://reader034.vdocuments.mx/reader034/viewer/2022052620/55799a23d8b42ae72b8b522d/html5/thumbnails/6.jpg)
Janu
ary
- 200
1 S
epte
mbe
r - 2
001
May
- 20
02
Janu
ary
- 200
3 S
epte
mbe
r - 2
003
May
- 20
04
Janu
ary
- 200
5 S
epte
mbe
r - 2
005
May
- 20
06
Janu
ary
- 200
7 S
epte
mbe
r - 2
007
May
- 20
08
Janu
ary
- 200
9 S
epte
mbe
r - 2
009
May
- 20
10
Janu
ary
- 201
1 S
epte
mbe
r - 2
011
May
- 20
12
Janu
ary
- 201
3 S
epte
mbe
r - 2
013
May
- 20
14
Janu
ary
- 201
5
RELEASE TIMELINE
V1
V2 V3 V4 V4.5 V5 V6 V7 V8
¿?
![Page 7: Software Debt: Qué Es y Cómo Gestionarlo Holísticamente](https://reader034.vdocuments.mx/reader034/viewer/2022052620/55799a23d8b42ae72b8b522d/html5/thumbnails/7.jpg)
EL PROBLEMA
http://xjm.drupalgardens.com/blog/technical-debt-drupal-8-or-when-will-it-be-ready
![Page 8: Software Debt: Qué Es y Cómo Gestionarlo Holísticamente](https://reader034.vdocuments.mx/reader034/viewer/2022052620/55799a23d8b42ae72b8b522d/html5/thumbnails/8.jpg)
¿QUÉ ES LA DEUDA TÉCNICA? Shipping first-time code is like going into debt. A little debt speeds development so long as it is paid back promptly with a rewrite. The danger occurs when the debt is not repaid. Every minute spent on not-quite-right code counts as interest on that debt.
![Page 9: Software Debt: Qué Es y Cómo Gestionarlo Holísticamente](https://reader034.vdocuments.mx/reader034/viewer/2022052620/55799a23d8b42ae72b8b522d/html5/thumbnails/9.jpg)
DEFINICIÓN
"Obligaciones que una organización toma cuando disminuye la calidad interna del producto para lograr metas a corto plazo pero que son perjudiciales a largo plazo"
Angel Núñez (@Snahider)
![Page 10: Software Debt: Qué Es y Cómo Gestionarlo Holísticamente](https://reader034.vdocuments.mx/reader034/viewer/2022052620/55799a23d8b42ae72b8b522d/html5/thumbnails/10.jpg)
¿CÓMO LUCE LA DEUDA TÉCNICA?
https://elearning.industriallogic.com/gh/submit?Action=PageAction&album=trw&path=recognizingSmells/technicalDebt/technicalDebtMismanagement&devLanguage=Cpp
![Page 11: Software Debt: Qué Es y Cómo Gestionarlo Holísticamente](https://reader034.vdocuments.mx/reader034/viewer/2022052620/55799a23d8b42ae72b8b522d/html5/thumbnails/11.jpg)
Tiempo
Respuesta al Cliente
Cos
to d
el c
ambi
o (C
oC)
CoC Actual
CoC Óptimo
Deuda Técnica
LA DEUDA TÉCNICA ES MALA
![Page 12: Software Debt: Qué Es y Cómo Gestionarlo Holísticamente](https://reader034.vdocuments.mx/reader034/viewer/2022052620/55799a23d8b42ae72b8b522d/html5/thumbnails/12.jpg)
¿POR QUE NOS DEBE PREOCUPAR?
Consecuencias
Incrementa el tiempo de entrega
Numero significativo de defectos
Aumento en los costos de desarrollo y soporte
Disminuye la predictibilidad
Frustración
Disminuye la satisfacción del cliente
Bajo Rendimiento
![Page 13: Software Debt: Qué Es y Cómo Gestionarlo Holísticamente](https://reader034.vdocuments.mx/reader034/viewer/2022052620/55799a23d8b42ae72b8b522d/html5/thumbnails/13.jpg)
LA DEUDA TÉCNICA ES ADICTIVA
"La deuda técnica es
como una adicción
a las drogas.
Un vez que empiezas a
hackear el código,
el código pide más."
Tomar Deuda Técnica
Acumula la Deuda
(Más) Incesante Presión
Reduce Velocidad
Equipo
No pagar Duda
Técnica
CICLO VICIOSO
![Page 14: Software Debt: Qué Es y Cómo Gestionarlo Holísticamente](https://reader034.vdocuments.mx/reader034/viewer/2022052620/55799a23d8b42ae72b8b522d/html5/thumbnails/14.jpg)
LA DEUDA TÉCNICA ES BUENA
DECISIÓN ESTRATÉGICA PRUDENTE
• Entrega rápida al mercado para obtener feedback.
• Reducir costos iniciales, generar ingresos y autofinanciar el producto.
• Fechas sensitivas de entrega.
![Page 15: Software Debt: Qué Es y Cómo Gestionarlo Holísticamente](https://reader034.vdocuments.mx/reader034/viewer/2022052620/55799a23d8b42ae72b8b522d/html5/thumbnails/15.jpg)
CLEAN CODE Y DISCIPLINA SON OBLIGATORIOS
• El código es limpio? El código tiene pruebas?
• Hay un objetivo que nos permita aprender?
• He estimado el costo beneficio?
• Hay un plan para pagar la deuda?
• No he introducido más deuda sobre deuda existente.
![Page 16: Software Debt: Qué Es y Cómo Gestionarlo Holísticamente](https://reader034.vdocuments.mx/reader034/viewer/2022052620/55799a23d8b42ae72b8b522d/html5/thumbnails/16.jpg)
ENFRENTA LA CRUDA REALIDAD
LA DEUDA DE SOFTWARE ES
INEVITABLE
![Page 17: Software Debt: Qué Es y Cómo Gestionarlo Holísticamente](https://reader034.vdocuments.mx/reader034/viewer/2022052620/55799a23d8b42ae72b8b522d/html5/thumbnails/17.jpg)
EL PROBLEMA NO ES ELIMINAR LA DEUDA
SINO GESTIONARLA
![Page 18: Software Debt: Qué Es y Cómo Gestionarlo Holísticamente](https://reader034.vdocuments.mx/reader034/viewer/2022052620/55799a23d8b42ae72b8b522d/html5/thumbnails/18.jpg)
El responsable no sólo es el desarrollador
El problema
no sólo es el código
La solución no sólo es refactoring
NO CAIGAS EN LA TRAMPA
![Page 19: Software Debt: Qué Es y Cómo Gestionarlo Holísticamente](https://reader034.vdocuments.mx/reader034/viewer/2022052620/55799a23d8b42ae72b8b522d/html5/thumbnails/19.jpg)
SOFTWARE DEBT
Technical Debt
Quality Debt
Configuration Management Debt
Infrastructure Debt
Design Debt
![Page 20: Software Debt: Qué Es y Cómo Gestionarlo Holísticamente](https://reader034.vdocuments.mx/reader034/viewer/2022052620/55799a23d8b42ae72b8b522d/html5/thumbnails/20.jpg)
GESTIÓN HOLÍSTICA Involucrar y
Educar
Visualizar y Medir
Sostener la Calidad
Atender y Pagar
Gestionar el Portafolio
Planificar y Experimentar
Negocio
Dev Team
![Page 21: Software Debt: Qué Es y Cómo Gestionarlo Holísticamente](https://reader034.vdocuments.mx/reader034/viewer/2022052620/55799a23d8b42ae72b8b522d/html5/thumbnails/21.jpg)
INVOLUCRAR Y EDUCAR
![Page 22: Software Debt: Qué Es y Cómo Gestionarlo Holísticamente](https://reader034.vdocuments.mx/reader034/viewer/2022052620/55799a23d8b42ae72b8b522d/html5/thumbnails/22.jpg)
INVOLUCRAR AL PRODUCT OWNER
Patrocinador de la reducción de la deuda
de software
![Page 23: Software Debt: Qué Es y Cómo Gestionarlo Holísticamente](https://reader034.vdocuments.mx/reader034/viewer/2022052620/55799a23d8b42ae72b8b522d/html5/thumbnails/23.jpg)
USAR LA METÁFORA COMO HERRAMIENTA DE COMUNICACIÓN
"El concepto (Software Debt) es 1/3 útil para tomar de decisiones y 2/3 herramienta de comunicación"
Steve McConnell
![Page 24: Software Debt: Qué Es y Cómo Gestionarlo Holísticamente](https://reader034.vdocuments.mx/reader034/viewer/2022052620/55799a23d8b42ae72b8b522d/html5/thumbnails/24.jpg)
EVALUAR DECISIONES
Para utilizar la deuda de software de manera
estratégica y beneficiosa, debemos entender como
nuestras decisiones afectan económicamente.
![Page 25: Software Debt: Qué Es y Cómo Gestionarlo Holísticamente](https://reader034.vdocuments.mx/reader034/viewer/2022052620/55799a23d8b42ae72b8b522d/html5/thumbnails/25.jpg)
EJEMPLO
Alternativa 1 ( Tomando Deuda)
Alternativa 2 ( Sin Deuda)
![Page 26: Software Debt: Qué Es y Cómo Gestionarlo Holísticamente](https://reader034.vdocuments.mx/reader034/viewer/2022052620/55799a23d8b42ae72b8b522d/html5/thumbnails/26.jpg)
EJEMPLO
¿Qué alternativa elegirían?
Tomando Deuda (Opción 1)
Evitando Deuda (Opción 2)
Costo Mensual de Desarrollo $100k $100k
Meses Desarrollo 10 13
Total Costo Desarrollo $1M $1.3M
Perdidas en Ventas $450k
Atender Deuda - Meses 4
Atender Deuda Costo $400
Costo Total $1.4M $1.75M
Otros costos de atender la deuda
X+Y+Z
Costo Total Real $1.4M +x +y +z $1.75M
![Page 27: Software Debt: Qué Es y Cómo Gestionarlo Holísticamente](https://reader034.vdocuments.mx/reader034/viewer/2022052620/55799a23d8b42ae72b8b522d/html5/thumbnails/27.jpg)
VISUALIZAR Y
MEDIR
![Page 28: Software Debt: Qué Es y Cómo Gestionarlo Holísticamente](https://reader034.vdocuments.mx/reader034/viewer/2022052620/55799a23d8b42ae72b8b522d/html5/thumbnails/28.jpg)
MÉTRICAS DE CÓDIGO
![Page 29: Software Debt: Qué Es y Cómo Gestionarlo Holísticamente](https://reader034.vdocuments.mx/reader034/viewer/2022052620/55799a23d8b42ae72b8b522d/html5/thumbnails/29.jpg)
VELOCITY & BUGS
0
5
10
15
20
25
30
35
40
Time
Velocity
Bugs found by PO
![Page 30: Software Debt: Qué Es y Cómo Gestionarlo Holísticamente](https://reader034.vdocuments.mx/reader034/viewer/2022052620/55799a23d8b42ae72b8b522d/html5/thumbnails/30.jpg)
BACKLOGS
Feature C
Defect 23
Refactor X
Feature B
Feature A
Software Debt
Software Debt Backlog Software Debt en el Product Backlog
![Page 31: Software Debt: Qué Es y Cómo Gestionarlo Holísticamente](https://reader034.vdocuments.mx/reader034/viewer/2022052620/55799a23d8b42ae72b8b522d/html5/thumbnails/31.jpg)
CÓMO DRUPAL MIDE LA DEUDA TÉCNICA
![Page 32: Software Debt: Qué Es y Cómo Gestionarlo Holísticamente](https://reader034.vdocuments.mx/reader034/viewer/2022052620/55799a23d8b42ae72b8b522d/html5/thumbnails/32.jpg)
SOSTENER EL RITMO
Y LA CALIDAD
![Page 33: Software Debt: Qué Es y Cómo Gestionarlo Holísticamente](https://reader034.vdocuments.mx/reader034/viewer/2022052620/55799a23d8b42ae72b8b522d/html5/thumbnails/33.jpg)
PULL SYSTEMS
Permite alcanzar un ritmo sostenible de trabajo y que el equipo tenga poder y responsabilidad sobre la
calidad.
![Page 34: Software Debt: Qué Es y Cómo Gestionarlo Holísticamente](https://reader034.vdocuments.mx/reader034/viewer/2022052620/55799a23d8b42ae72b8b522d/html5/thumbnails/34.jpg)
DEFINITION OF DONE
![Page 35: Software Debt: Qué Es y Cómo Gestionarlo Holísticamente](https://reader034.vdocuments.mx/reader034/viewer/2022052620/55799a23d8b42ae72b8b522d/html5/thumbnails/35.jpg)
PRÁCTICAS TÉCNICAS
![Page 36: Software Debt: Qué Es y Cómo Gestionarlo Holísticamente](https://reader034.vdocuments.mx/reader034/viewer/2022052620/55799a23d8b42ae72b8b522d/html5/thumbnails/36.jpg)
ATENDER Y PAGAR LA DEUDA
![Page 37: Software Debt: Qué Es y Cómo Gestionarlo Holísticamente](https://reader034.vdocuments.mx/reader034/viewer/2022052620/55799a23d8b42ae72b8b522d/html5/thumbnails/37.jpg)
ENFOQUES PARA PAGAR LA DEUDA
Enfoques
No Hacer Nada (No todas las deudas tienen que ser pagadas)
Pagar la deuda incrementalmente
Aplicar “Boy Scout Rule” (Atender la deuda cuando te topes con ella)
Pagar la deuda mientras se realiza trabajo valioso para el cliente
![Page 38: Software Debt: Qué Es y Cómo Gestionarlo Holísticamente](https://reader034.vdocuments.mx/reader034/viewer/2022052620/55799a23d8b42ae72b8b522d/html5/thumbnails/38.jpg)
Test case
Change skin Security alert See transaction history Block account Add new user Sort query results Deposit cash Validate transfer
PRIORIZAR EL BACKLOG 1. Listar/Visualizar la Deuda (Test Automation)
![Page 39: Software Debt: Qué Es y Cómo Gestionarlo Holísticamente](https://reader034.vdocuments.mx/reader034/viewer/2022052620/55799a23d8b42ae72b8b522d/html5/thumbnails/39.jpg)
Test case Riesgo Automation Cost (points)
Change skin Security alert See transaction history Block account Add new user Sort query results Deposit cash Validate transfer
PRIORIZAR Y EL BACKLOG 2. Clasificar (Riesgo y Costo)
![Page 40: Software Debt: Qué Es y Cómo Gestionarlo Holísticamente](https://reader034.vdocuments.mx/reader034/viewer/2022052620/55799a23d8b42ae72b8b522d/html5/thumbnails/40.jpg)
Test case Riesgo Automation Cost (points)
Change skin low 20 sp Security alert high 13 sp See transaction history med 1 sp Block account high 0.5 sp Add new user low 3 sp Sort query results med 8 sp Deposit cash high 1 sp Validate transfer high 5 sp
PRIORIZAR Y EL BACKLOG 2. Clasificar (Alto Riesgo – Bajo Costo)
![Page 41: Software Debt: Qué Es y Cómo Gestionarlo Holísticamente](https://reader034.vdocuments.mx/reader034/viewer/2022052620/55799a23d8b42ae72b8b522d/html5/thumbnails/41.jpg)
Test case Riesgo Automation Cost (points)
Manual Test Cost (hours)
Change skin low 20 sp 0.5 hrs Security alert high 13 sp 1 hr See transaction history med 1 sp 3 hrs Block account high 0.5 sp 5 hrs Add new user low 3 sp 0.5 hrs Sort query results med 8 sp 2 hrs Deposit cash high 1 sp 1.5 hrs Validate transfer high 5 sp 3 hrs
PRIORIZAR Y EL BACKLOG 2. Clasificar (Columnas adicionales si es necesario)
![Page 42: Software Debt: Qué Es y Cómo Gestionarlo Holísticamente](https://reader034.vdocuments.mx/reader034/viewer/2022052620/55799a23d8b42ae72b8b522d/html5/thumbnails/42.jpg)
Test case Riesgo Automation Cost (points)
Manual Test Cost (hours)
Block account high 0.5 sp 5 hrs Deposit cash high 1 sp 1.5 hrs Validate transfer high 5 sp 3 hrs Security alert high 13 sp 1 hr See transaction history med 1 sp 3 hrs Sort query results med 8 sp 2 hrs Add new user low 3 sp 0.5 hrs Change skin low 20 sp 0.5 hrs
PRIORIZAR Y EL BACKLOG 3.Priorizar
![Page 43: Software Debt: Qué Es y Cómo Gestionarlo Holísticamente](https://reader034.vdocuments.mx/reader034/viewer/2022052620/55799a23d8b42ae72b8b522d/html5/thumbnails/43.jpg)
DISTRIBUIR EN CADA SPRINT
http://www.jfokus.se/jfokus11/preso/jf11_ScrumAndXPBeyondTheTrenches.pdf
![Page 44: Software Debt: Qué Es y Cómo Gestionarlo Holísticamente](https://reader034.vdocuments.mx/reader034/viewer/2022052620/55799a23d8b42ae72b8b522d/html5/thumbnails/44.jpg)
PLANIFICAR Y EXPERIMENTAR
![Page 45: Software Debt: Qué Es y Cómo Gestionarlo Holísticamente](https://reader034.vdocuments.mx/reader034/viewer/2022052620/55799a23d8b42ae72b8b522d/html5/thumbnails/45.jpg)
TOYOTA KATA
![Page 46: Software Debt: Qué Es y Cómo Gestionarlo Holísticamente](https://reader034.vdocuments.mx/reader034/viewer/2022052620/55799a23d8b42ae72b8b522d/html5/thumbnails/46.jpg)
INCLUIR LA CALIDAD EN LA GESTIÓN DEL PORTFOLIO
![Page 47: Software Debt: Qué Es y Cómo Gestionarlo Holísticamente](https://reader034.vdocuments.mx/reader034/viewer/2022052620/55799a23d8b42ae72b8b522d/html5/thumbnails/47.jpg)
MEDIDA DE ÉXITO TRADICIONAL
Schedule Cost
Scope
Problemas • Se debe medir Outcomes
no Outputs. (Business Value).
• No considera la Calidad.
![Page 48: Software Debt: Qué Es y Cómo Gestionarlo Holísticamente](https://reader034.vdocuments.mx/reader034/viewer/2022052620/55799a23d8b42ae72b8b522d/html5/thumbnails/48.jpg)
“Podremos ignorar la calidad pero los problemas de la
calidad nunca nos ignorarán”
![Page 49: Software Debt: Qué Es y Cómo Gestionarlo Holísticamente](https://reader034.vdocuments.mx/reader034/viewer/2022052620/55799a23d8b42ae72b8b522d/html5/thumbnails/49.jpg)
AGILE TRIANGLE
Constraints (Scope, Schedule, Cost)
Quality
Value
![Page 50: Software Debt: Qué Es y Cómo Gestionarlo Holísticamente](https://reader034.vdocuments.mx/reader034/viewer/2022052620/55799a23d8b42ae72b8b522d/html5/thumbnails/50.jpg)
MÉTRICA Medida cuantificable y monetaria
de la "NO CALIDAD".
Distribución
Ratio de la Deuda
Costo de reparar la deuda
![Page 51: Software Debt: Qué Es y Cómo Gestionarlo Holísticamente](https://reader034.vdocuments.mx/reader034/viewer/2022052620/55799a23d8b42ae72b8b522d/html5/thumbnails/51.jpg)
CUANTIFICAR LA DEUDA
• El riesgo de ejecución es aceptable?
• El producto puede continuar dando valor en el futuro?
• Definir límites para tomar decisiones informadas.
![Page 52: Software Debt: Qué Es y Cómo Gestionarlo Holísticamente](https://reader034.vdocuments.mx/reader034/viewer/2022052620/55799a23d8b42ae72b8b522d/html5/thumbnails/52.jpg)
SQALE
![Page 54: Software Debt: Qué Es y Cómo Gestionarlo Holísticamente](https://reader034.vdocuments.mx/reader034/viewer/2022052620/55799a23d8b42ae72b8b522d/html5/thumbnails/54.jpg)
SOFTWARE DEBT ASSESMENT
Te ayudamos a entender y mejorar tu software desde una perspectiva de riesgo