Date post: | 11-Jun-2015 |
Category: |
Technology |
Upload: | angel-nunez-salazar |
View: | 1,153 times |
Download: | 0 times |
SOFTWARE DEBT QUÉ ES Y CÓMO GESTIONARLO HOLÍSTICAMENTE
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
Issues Posted vs Fixed
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
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
¿?
EL PROBLEMA
http://xjm.drupalgardens.com/blog/technical-debt-drupal-8-or-when-will-it-be-ready
¿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.
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)
¿CÓMO LUCE LA DEUDA TÉCNICA?
https://elearning.industriallogic.com/gh/submit?Action=PageAction&album=trw&path=recognizingSmells/technicalDebt/technicalDebtMismanagement&devLanguage=Cpp
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
¿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
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
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.
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.
ENFRENTA LA CRUDA REALIDAD
LA DEUDA DE SOFTWARE ES
INEVITABLE
EL PROBLEMA NO ES ELIMINAR LA DEUDA
SINO GESTIONARLA
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
SOFTWARE DEBT
Technical Debt
Quality Debt
Configuration Management Debt
Infrastructure Debt
Design Debt
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
INVOLUCRAR Y EDUCAR
INVOLUCRAR AL PRODUCT OWNER
Patrocinador de la reducción de la deuda
de software
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
EVALUAR DECISIONES
Para utilizar la deuda de software de manera
estratégica y beneficiosa, debemos entender como
nuestras decisiones afectan económicamente.
EJEMPLO
Alternativa 1 ( Tomando Deuda)
Alternativa 2 ( Sin Deuda)
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
VISUALIZAR Y
MEDIR
MÉTRICAS DE CÓDIGO
VELOCITY & BUGS
0
5
10
15
20
25
30
35
40
Time
Velocity
Bugs found by PO
BACKLOGS
Feature C
Defect 23
Refactor X
Feature B
Feature A
Software Debt
Software Debt Backlog Software Debt en el Product Backlog
CÓMO DRUPAL MIDE LA DEUDA TÉCNICA
SOSTENER EL RITMO
Y LA CALIDAD
PULL SYSTEMS
Permite alcanzar un ritmo sostenible de trabajo y que el equipo tenga poder y responsabilidad sobre la
calidad.
DEFINITION OF DONE
PRÁCTICAS TÉCNICAS
ATENDER Y PAGAR LA DEUDA
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
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)
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)
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)
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)
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
DISTRIBUIR EN CADA SPRINT
http://www.jfokus.se/jfokus11/preso/jf11_ScrumAndXPBeyondTheTrenches.pdf
PLANIFICAR Y EXPERIMENTAR
TOYOTA KATA
INCLUIR LA CALIDAD EN LA GESTIÓN DEL PORTFOLIO
MEDIDA DE ÉXITO TRADICIONAL
Schedule Cost
Scope
Problemas • Se debe medir Outcomes
no Outputs. (Business Value).
• No considera la Calidad.
“Podremos ignorar la calidad pero los problemas de la
calidad nunca nos ignorarán”
AGILE TRIANGLE
Constraints (Scope, Schedule, Cost)
Quality
Value
MÉTRICA Medida cuantificable y monetaria
de la "NO CALIDAD".
Distribución
Ratio de la Deuda
Costo de reparar la deuda
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.
SQALE
SOFTWARE DEBT ASSESMENT
Te ayudamos a entender y mejorar tu software desde una perspectiva de riesgo