108
1 Hablemos de Deuda Técnica (y un poco de su relación con testing) JORGE HERNÁN ABAD LONDOÑO @jorge_abad Blog http://www.lecciones- aprendidas.info/ Agile Coach, Project Leader, Scrum Master and Always a Learner

Hablemos de Deuda Técnica

Embed Size (px)

Citation preview

Page 1: Hablemos de Deuda Técnica

1

Hablemos de Deuda Técnica(y un poco de su relación con testing)

JORGE HERNÁN ABAD LONDOÑO@jorge_abad

Blog http://www.lecciones-aprendidas.info/

Agile Coach, Project Leader, Scrum Master and Always a Learner

Page 2: Hablemos de Deuda Técnica

2

Page 3: Hablemos de Deuda Técnica

3

Esta presentación contiene una compilación de diapositivas de:• Javier Garzas - @jgarzas• Ángel Nuñez - @snahider• Y algunas mías

Page 4: Hablemos de Deuda Técnica

4

Miembro de Ágiles Colombia

Page 5: Hablemos de Deuda Técnica

5

Miembro PMI Capítulo Antioquia

pmiantioquia.org @pmiantioquia facebook.com/PMIAntioquia meetup.com/es-ES/Proximo-Capitulo-PMI-Antioquia/

Page 6: Hablemos de Deuda Técnica

6

Mis objetivos con esta sesión:

- Elevar nuestro nivel de conciencia sobre la deuda técnica- Inquietarlos- Ser disparador de un cambio para testers y team members

Page 7: Hablemos de Deuda Técnica

7

Indaguemos

Page 8: Hablemos de Deuda Técnica

8

¿Quién conoceel concepto de deuda técnica

Page 9: Hablemos de Deuda Técnica

9

La deuda técnica son las consecuencias de un desarrollo apresurado de software o un despliegue descuidado de hardware.

Wikipedia

Page 10: Hablemos de Deuda Técnica

10

Page 11: Hablemos de Deuda Técnica

11

La deuda técnica son las consecuencias de:• un desarrollo apresurado• un desarrollo inconsciente de software • o un despliegue descuidado de hardware

Que se terminará pagando ya sea con:• baja velocidad de desarrollo• inversión de tiempo removiéndola o• bajo rendimiento del sistema

@jorge_abad

Page 12: Hablemos de Deuda Técnica

12 Fuente: Javier Garzas - @jgarzas

Page 13: Hablemos de Deuda Técnica

13 Fuente: Javier Garzas - @jgarzas

Page 14: Hablemos de Deuda Técnica

14 Fuente: Javier Garzas - @jgarzas

Page 15: Hablemos de Deuda Técnica

15

Ejemplo

Page 16: Hablemos de Deuda Técnica

16 Fuente: Javier Garzas - @jgarzas

Page 17: Hablemos de Deuda Técnica

17

¿Quienes han estado en un proyecto que fue cancelado debido a que era más práctico iniciar de cero que continuar trabajando en el?

CANCELADO

Page 18: Hablemos de Deuda Técnica

18 Fuente: Javier Garzas - @jgarzas

Page 19: Hablemos de Deuda Técnica

19

Fuente: Javier Garzas - @jgarzas

Page 20: Hablemos de Deuda Técnica

20 Fuente: Javier Garzas - @jgarzas

Page 21: Hablemos de Deuda Técnica

21 Fuente: Javier Garzas - @jgarzas

Page 22: Hablemos de Deuda Técnica

22 Fuente: Javier Garzas - @jgarzas

Page 23: Hablemos de Deuda Técnica

23 Fuente: Javier Garzas - @jgarzas

Page 24: Hablemos de Deuda Técnica

24

¿Y CÓMO LUCE?

Page 25: Hablemos de Deuda Técnica

25

Page 26: Hablemos de Deuda Técnica

26

Nuestro servidor agotado por :• La carga• Necesita continuos reinicios• Carecemos de• buen hardware• Software liviano adecuado

para el hardware• Software bien construido(por lo general las últimas dos)

Page 27: Hablemos de Deuda Técnica

27

O aun peor…

Page 28: Hablemos de Deuda Técnica

28

Ejemplos

Page 29: Hablemos de Deuda Técnica

29

Ejemplos

Page 30: Hablemos de Deuda Técnica

30

Page 31: Hablemos de Deuda Técnica

31

Page 32: Hablemos de Deuda Técnica

32

Page 33: Hablemos de Deuda Técnica

33

Page 34: Hablemos de Deuda Técnica

34 Fuente: Javier Garzas - @jgarzas

Page 35: Hablemos de Deuda Técnica

35 Fuente: Javier Garzas - @jgarzas

Page 36: Hablemos de Deuda Técnica

36 Fuente: Javier Garzas - @jgarzas

Page 37: Hablemos de Deuda Técnica

37

Algo tan inexplicable como esto

Page 38: Hablemos de Deuda Técnica

38

Page 39: Hablemos de Deuda Técnica

39

Page 40: Hablemos de Deuda Técnica

40

Page 41: Hablemos de Deuda Técnica

41

¿Algún ejemplo más?

Page 42: Hablemos de Deuda Técnica

42

Causas Presiones de Negocio Poco entendimiento del proceso Software no modular, clases muy acopladas Falta de una buena suite de pruebas Falta de documentación Falta de colaboración entre equipos Falta de acompañamiento a desarrolladores jóvenes Desarrollo paralelo (en dos o más branches) Postergar la refactorización Inexistencia de estándares o no alineación con ellos Poco conocimiento por parte del desarrollador de buenas prácticas Poca apropiación del código Pobre liderazgo técnico Subutilización del software base Sobreutilización del software base Presiones por cambios de último minuto Entre otros

Page 43: Hablemos de Deuda Técnica

43

Page 44: Hablemos de Deuda Técnica

44

Síntomas Despliegue lentos Constantes reinicios del servidor por consumo de

memoria Código inmantenible Código inestable o con el síndrome de castillo de

naipes Costo alto de cambios Costo alto de corrección de código Disminución de la velocidad de los sprints Entre otros

Page 45: Hablemos de Deuda Técnica

45 Fuente: Ángel Nuñez - @snahider

Page 46: Hablemos de Deuda Técnica

46

Efectos

Fuente: Henrik Kniberg - @henrikknigberg

Page 47: Hablemos de Deuda Técnica

47 Fuente: Javier Garzas - @jgarzas

Page 48: Hablemos de Deuda Técnica

48

Page 49: Hablemos de Deuda Técnica

49 Fuente: Ángel Nuñez - @snahider

Page 50: Hablemos de Deuda Técnica

50 Fuente: Ángel Nuñez - @snahider

Page 51: Hablemos de Deuda Técnica

51

Deuda técnica a ser pagada

Page 52: Hablemos de Deuda Técnica

52 Fuente: Javier Garzas - @jgarzas

Page 53: Hablemos de Deuda Técnica

53 Fuente: Javier Garzas - @jgarzas

Page 54: Hablemos de Deuda Técnica

54 Fuente: Ángel Nuñez - @snahider

Page 55: Hablemos de Deuda Técnica

55 Fuente: Ángel Nuñez - @snahider

Page 56: Hablemos de Deuda Técnica

56 Fuente: Ángel Nuñez - @snahider

Page 57: Hablemos de Deuda Técnica

57

Process DebtMethodology Debt

Fuente: Ángel Nuñez - @snahider

Page 58: Hablemos de Deuda Técnica

58 Fuente: Ángel Nuñez - @snahider

Page 59: Hablemos de Deuda Técnica

59 Fuente: Javier Garzas - @jgarzas

Page 60: Hablemos de Deuda Técnica

60 Fuente: Javier Garzas - @jgarzas

Page 61: Hablemos de Deuda Técnica

61 Fuente: Javier Garzas - @jgarzas

Page 62: Hablemos de Deuda Técnica

62 Fuente: Javier Garzas - @jgarzas

Page 63: Hablemos de Deuda Técnica

63 Fuente: Javier Garzas - @jgarzas

Page 64: Hablemos de Deuda Técnica

64 Fuente: Javier Garzas - @jgarzas

Page 65: Hablemos de Deuda Técnica

65 Fuente: Javier Garzas - @jgarzas

Page 66: Hablemos de Deuda Técnica

66 Fuente: Ángel Nuñez - @snahider

Page 67: Hablemos de Deuda Técnica

67 Fuente: Ángel Nuñez - @snahider

Page 68: Hablemos de Deuda Técnica

68 Fuente: Ángel Nuñez - @snahider

Page 69: Hablemos de Deuda Técnica

69 Fuente: Ángel Nuñez - @snahider

Page 70: Hablemos de Deuda Técnica

70 Fuente: Ángel Nuñez - @snahider

Page 71: Hablemos de Deuda Técnica

71 Fuente: Ángel Nuñez - @snahider

Page 72: Hablemos de Deuda Técnica

72

Prácticas Técnicas compartidas por todo el equipo• Revisiones de código• Buenas practicas de desarrollo (Principios SOLID, ACID,

etc)• Pruebas de Aceptación• Pruebas Unitarias• Propiedad Colectiva de Código• Clean Code• Test Driven Development• Integración Continua• Entrega Continua (Continuous Delivery)• Diseño Simple• Programación por Pares• Mob Programming• Mob Testing• Estándares de Codificación• Refactoring• Monitoreo de la deuda técnica

Page 73: Hablemos de Deuda Técnica

73 Fuente: Ángel Nuñez - @snahider

Page 74: Hablemos de Deuda Técnica

74 Fuente: Ángel Nuñez - @snahider

Page 75: Hablemos de Deuda Técnica

75

Como resolverla

Page 76: Hablemos de Deuda Técnica

76

Como resolverla

Page 77: Hablemos de Deuda Técnica

77 Fuente: Ángel Nuñez - @snahider

Page 78: Hablemos de Deuda Técnica

78

Page 79: Hablemos de Deuda Técnica

79

Y… ¿Testing?

Page 80: Hablemos de Deuda Técnica

80

Page 81: Hablemos de Deuda Técnica

81

Page 82: Hablemos de Deuda Técnica

82

Page 83: Hablemos de Deuda Técnica

83

Page 84: Hablemos de Deuda Técnica

84

¡Todo esto cambió!

Page 85: Hablemos de Deuda Técnica

85

Page 86: Hablemos de Deuda Técnica

86

¿Qué podemos hacer desde pruebas? Ser preventivos Estar atentos a los síntomas Realizar inspecciones de código, buscar smells

– Clases gigantes– Webservices gigantes– Tablas gigantes, etc

Hacer consciente al equipo de la deuda técnica Trabajar de la mano del SM en la mejora continua y ser el

vigilante de la deuda técnica (usar Sonar u otra herramienta), para gestionarla en el presente y en el tiempo dentro del backlog

Realizar pruebas no funcionales Automatice las pruebas Estar alerta a funcionalidades «lentas» Velar por los estándares No caer en presiones que impliquen reducción de la

calidad y se decide asumir la deuda, asegurarse que sea gestionada

Asegurarse de que se pague Ser un verdadero QA ágil

Page 87: Hablemos de Deuda Técnica

87

Cambios de paradigmas

Page 88: Hablemos de Deuda Técnica

88

Y los otros roles de Scrum ¿Qué?

Page 89: Hablemos de Deuda Técnica

89

El/la Product Owner• Priorizará dentro

del backlog la remoción de la deuda técnica cada Sprint

Page 90: Hablemos de Deuda Técnica

90

El/la Scrum Master• Monitoreará la Deuda

Técnica• Y seguirá velando por su

excelencia técnica

Page 91: Hablemos de Deuda Técnica

91 Fuente: Ángel Nuñez - @snahider

Page 92: Hablemos de Deuda Técnica

92

Principios Ágileshttp://agilemanifesto.org/iso/es/principles.html

Page 93: Hablemos de Deuda Técnica

93

Page 94: Hablemos de Deuda Técnica

94

Por último…No trates de remover la deuda técnica de la siguiente forma

Page 95: Hablemos de Deuda Técnica

95

Page 96: Hablemos de Deuda Técnica

96

No esperes a que la deuda de tu software no pueda ser pagada, comienza a gestionarla

Page 97: Hablemos de Deuda Técnica

97

Page 98: Hablemos de Deuda Técnica

98

¿Logré mi propósito?

Espero que si…

Page 99: Hablemos de Deuda Técnica

99

PREGUNTAS

Page 100: Hablemos de Deuda Técnica

100

Page 101: Hablemos de Deuda Técnica

101

¡GRACIAS!Jorge H. Abad L.

[email protected]@jorge_abad

Blog http://www.lecciones-aprendidas.info/

Page 102: Hablemos de Deuda Técnica

102 Conferencia auspiciada por el PMI Antioquia Colombia Potential Chapter – La propiedad intelectual de esta pertenece al facilitador

Anexos

Page 104: Hablemos de Deuda Técnica

104

Estas presentación contiene algunas diapositivas de

Javier Garzas @jgarzas Ángel Nuñez @snahider Henrik Kniberg @henrikkniberg

Nota: Trate de dar crédito a todos, pero consideras que faltaste por que no te referencié o debo modificar algo de tu propiedad por favor no dudes en hacérmelo saber, contactándome al email: [email protected]

Page 105: Hablemos de Deuda Técnica

105

Aviso de Copyright Usted es libre de:

– Compartir- copiar, distribuir y trasmitir el trabajo

– Modificar- adaptar el trabajo

Bajo las siguientes condiciones– Atribución. Ud. debe atribuir el trabajo en la manera especificada por el autor

o licenciante (pero de ninguna manera que sugiera que ellos aprueban su uso del trabajo).

Nada de lo dispuesto en esta licencia menoscaba o restringe los derechos morales del autor.

Para más información ver http://creativecommons.org/licenses/by/3.0/

Page 106: Hablemos de Deuda Técnica

106

Información de contacto

Jorge Hernán Abad Londoño– [email protected] – @jorge_abad

Puede eliminar esta (o cualquier diapositiva), pero debe dar crédito de la fuente en algún lugar de su presentación. Utilizar el logotipo y el nombre de la empresa (como en la parte inferior izquierda, por ejemplo) o incluir una diapositiva en algún lugar diciendo que parte (o todo) de su presentación son de esta fuente. Gracias.

Page 107: Hablemos de Deuda Técnica

107

Bonus track

Page 108: Hablemos de Deuda Técnica

108