SlideShare a Scribd company logo
1 of 47
DEUDA TECNICA 
“Preferible ir a dormir sin haber cenado que levantarse con una 
deuda.” 
Benjamin Franklin
• Que es una deuda técnica. 
• Que es exactamente una deuda técnica. 
• Consejos para manejar el uso de deuda 
técnica.
QUE ES UNA DEUDA 
TÉCNICA?
Steve McConnell 
… en el area de negocios piensan que podemos cargar deuda 
técnica porque nunca ven realmente las consecuencias. Pero 
esas consecuencias existen … 
solo que nunca expresadas un una manera que ellos puedan 
comprender.
ANALOGIA 
El problema del significado 
dual de las palabras.
QUE ES EXACTAMENTE 
UNA DEUDA TÉCNICA?
La deuda técnica se refiere a las consecuencias una 
arquitectura o un sistema diseñado pobremente dentro del 
código de un proyecto.
La deuda puede verse como trabajo que necesita realizarse 
antes que el proyecto pueda considerarse como completo.
Si la deuda no se paga, continuara incrementando interés 
haciendo difícil implementar cambios en el futuro.
• La deuda técnica se refiere a las consecuencias una arquitectura o un sistema 
diseñado pobremente dentro del código de un proyecto. 
• La deuda puede verse como trabajo que necesita realizarse antes que el proyecto 
pueda considerarse como completo. 
• Si la deuda no se paga, continuara incrementando interés haciendo difícil 
implementar cambios en el futuro.
UN EJEMPLO
Todo empieza con una app y dos tipos 
de usuario.
¿Es necesario un sistema de 
permisos?
Inminente una refactorización.
Permisos adicionales con una linea de 
código.
Necesidad de negocio.
Quedan 3 posibles escenarios
Escenario 1 
4 esta semana. 
22 la próxima. 
0 para futuros permisos. 
Dinero ahora
Escenario 2 
21 esta semana. 
0 para futuros permisos. 
Dinero después
Escenario 3 
4 esta semana. 
5, 6, 7 … para futuros permisos. 
Dinero ahora
Some civil engineering analogies
Legacy Code
The big rewrite (corregir todo el código)
COMO MANEJAR LA DEUDA 
TÉCNICA?
MVP
PROPÓSITOS DEL MVP 
• Posibilidad de probar un producto con el 
mínimo de recursos. 
• Acelerar el aprendizaje sobre la utilidad del 
producto. 
• Reducir el desperdicio de horas de ingeniería. 
• Liberar el producto a los usuarios lo mas pronto 
posible.
MLP 
Las tablets existían antes del iPad.
MLP 
Ya había autos eléctricos antes de Tesla.
MLP 
Antes de Google ya había motores de 
búsqueda.
MLP 
La ventaja esta en ser disruptivo, no en ser el 
primero.
CAMBIO CULTURAL 
Cuando la meta es la calidad …
VS 
Winners 
2014 
Hello World Open
BIBLIOGRAFIA 
• http://www.amazon.com/Working-Effectively- 
Legacy-Michael-Feathers/dp/0131177052 
• https://medium.com/@joaomilho/festina-lente- 
e29070811b84 
• https://en.wikipedia.org/wiki/Technical_debt
VOLUNTARIOS 
• Agile and Scrum. 
• Extreme Programming. 
• Kanban en el desarrollo de software. 
• Ubiquitous Computing and Internet of Things. 
• Computer Vision Applications. 
• Design Patterns. 
• A/B Testing
GRACIAS

More Related Content

Similar to Deuda tecnica

Modelos para el desarrollo de software V3
Modelos para el desarrollo de software V3Modelos para el desarrollo de software V3
Modelos para el desarrollo de software V3
Marco Guerrero
 
Introducción a la Tecnología Orientada a Objetos
Introducción a la Tecnología Orientada a ObjetosIntroducción a la Tecnología Orientada a Objetos
Introducción a la Tecnología Orientada a Objetos
edwinlemmon
 
2. introduccion a la_ing_de_software
2. introduccion a la_ing_de_software2. introduccion a la_ing_de_software
2. introduccion a la_ing_de_software
univ of pamplona
 

Similar to Deuda tecnica (20)

Paradigmas
ParadigmasParadigmas
Paradigmas
 
Modelos para el desarrollo de software V3
Modelos para el desarrollo de software V3Modelos para el desarrollo de software V3
Modelos para el desarrollo de software V3
 
Ha2 nv50 rodriguez montiel moises-xp
Ha2 nv50 rodriguez montiel moises-xpHa2 nv50 rodriguez montiel moises-xp
Ha2 nv50 rodriguez montiel moises-xp
 
Panel Magmaconf
Panel MagmaconfPanel Magmaconf
Panel Magmaconf
 
Cobertura de Código con Tests Funcionales
Cobertura de Código con Tests Funcionales Cobertura de Código con Tests Funcionales
Cobertura de Código con Tests Funcionales
 
Ensayo ingenieria de requisitos
Ensayo ingenieria de requisitosEnsayo ingenieria de requisitos
Ensayo ingenieria de requisitos
 
Esto es ingeniería inversa
Esto es ingeniería inversaEsto es ingeniería inversa
Esto es ingeniería inversa
 
Modelos de desarrollo del software grupo5
Modelos de desarrollo del software grupo5Modelos de desarrollo del software grupo5
Modelos de desarrollo del software grupo5
 
Programación extrema
Programación extremaProgramación extrema
Programación extrema
 
Product Ownership en Kanban vs Scrum
Product Ownership en Kanban vs ScrumProduct Ownership en Kanban vs Scrum
Product Ownership en Kanban vs Scrum
 
Experiencia de Deuda Tecnica en Google.en.es.pdf
Experiencia de Deuda Tecnica en Google.en.es.pdfExperiencia de Deuda Tecnica en Google.en.es.pdf
Experiencia de Deuda Tecnica en Google.en.es.pdf
 
Introducción a la Tecnología Orientada a Objetos
Introducción a la Tecnología Orientada a ObjetosIntroducción a la Tecnología Orientada a Objetos
Introducción a la Tecnología Orientada a Objetos
 
Programación Extrema (Extream Programming XP)
Programación Extrema (Extream Programming XP)Programación Extrema (Extream Programming XP)
Programación Extrema (Extream Programming XP)
 
2. introduccion a la_ing_de_software
2. introduccion a la_ing_de_software2. introduccion a la_ing_de_software
2. introduccion a la_ing_de_software
 
HA2NV50 EQ8 - XP
HA2NV50 EQ8 - XPHA2NV50 EQ8 - XP
HA2NV50 EQ8 - XP
 
Enfoques en la Dirección de Proyectos - No sirve el Talle único
Enfoques en la Dirección de Proyectos - No sirve el Talle únicoEnfoques en la Dirección de Proyectos - No sirve el Talle único
Enfoques en la Dirección de Proyectos - No sirve el Talle único
 
Introducción a la programación extrema (XP)
Introducción a la programación extrema (XP)Introducción a la programación extrema (XP)
Introducción a la programación extrema (XP)
 
Aos2012 sobrevivir a proyectos heredados
Aos2012 sobrevivir a proyectos heredadosAos2012 sobrevivir a proyectos heredados
Aos2012 sobrevivir a proyectos heredados
 
Proyecto final cabinas internet guzmán
Proyecto final cabinas internet guzmánProyecto final cabinas internet guzmán
Proyecto final cabinas internet guzmán
 
Proyecto cabinas de internet alumno guzmán
Proyecto cabinas de internet alumno guzmánProyecto cabinas de internet alumno guzmán
Proyecto cabinas de internet alumno guzmán
 

Recently uploaded

analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
Ricardo705519
 
tesis maíz univesidad catolica santa maria
tesis maíz univesidad catolica santa mariatesis maíz univesidad catolica santa maria
tesis maíz univesidad catolica santa maria
susafy7
 
INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNAT
INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNATINSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNAT
INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNAT
evercoyla
 

Recently uploaded (20)

Presentacion de la ganaderia en la región
Presentacion de la ganaderia en la regiónPresentacion de la ganaderia en la región
Presentacion de la ganaderia en la región
 
CONEXIONES SERIE, PERALELO EN MÓDULOS FOTOVOLTAICOS.pdf
CONEXIONES SERIE, PERALELO EN MÓDULOS FOTOVOLTAICOS.pdfCONEXIONES SERIE, PERALELO EN MÓDULOS FOTOVOLTAICOS.pdf
CONEXIONES SERIE, PERALELO EN MÓDULOS FOTOVOLTAICOS.pdf
 
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
 
DISEÑO PAVIMENTOS CLASE 06 PAVIMENTOS.pdf
DISEÑO PAVIMENTOS CLASE 06 PAVIMENTOS.pdfDISEÑO PAVIMENTOS CLASE 06 PAVIMENTOS.pdf
DISEÑO PAVIMENTOS CLASE 06 PAVIMENTOS.pdf
 
Control estadistico de procesos Primera parte.pdf
Control estadistico de procesos Primera parte.pdfControl estadistico de procesos Primera parte.pdf
Control estadistico de procesos Primera parte.pdf
 
Sesion 03 Formas de absorcion de agua.pptx
Sesion 03 Formas de absorcion de agua.pptxSesion 03 Formas de absorcion de agua.pptx
Sesion 03 Formas de absorcion de agua.pptx
 
Tinciones simples en el laboratorio de microbiología
Tinciones simples en el laboratorio de microbiologíaTinciones simples en el laboratorio de microbiología
Tinciones simples en el laboratorio de microbiología
 
QUIMICA GENERAL UNIVERSIDAD TECNOLOGICA DEL PERU
QUIMICA GENERAL UNIVERSIDAD TECNOLOGICA DEL PERUQUIMICA GENERAL UNIVERSIDAD TECNOLOGICA DEL PERU
QUIMICA GENERAL UNIVERSIDAD TECNOLOGICA DEL PERU
 
Desigualdades e inecuaciones-convertido.pdf
Desigualdades e inecuaciones-convertido.pdfDesigualdades e inecuaciones-convertido.pdf
Desigualdades e inecuaciones-convertido.pdf
 
PostgreSQL on Kubernetes Using GitOps and ArgoCD
PostgreSQL on Kubernetes Using GitOps and ArgoCDPostgreSQL on Kubernetes Using GitOps and ArgoCD
PostgreSQL on Kubernetes Using GitOps and ArgoCD
 
tesis maíz univesidad catolica santa maria
tesis maíz univesidad catolica santa mariatesis maíz univesidad catolica santa maria
tesis maíz univesidad catolica santa maria
 
Minería convencional: datos importantes y conceptos
Minería convencional: datos importantes y conceptosMinería convencional: datos importantes y conceptos
Minería convencional: datos importantes y conceptos
 
Propuesta para la creación de un Centro de Innovación para la Refundación ...
Propuesta para la creación de un Centro de Innovación para la Refundación ...Propuesta para la creación de un Centro de Innovación para la Refundación ...
Propuesta para la creación de un Centro de Innovación para la Refundación ...
 
INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNAT
INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNATINSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNAT
INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNAT
 
APORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHT
APORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHTAPORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHT
APORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHT
 
DIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJO
DIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJODIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJO
DIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJO
 
nomenclatura de equipo electrico en subestaciones
nomenclatura de equipo electrico en subestacionesnomenclatura de equipo electrico en subestaciones
nomenclatura de equipo electrico en subestaciones
 
Maquinaria Agricola utilizada en la produccion de Piña.pdf
Maquinaria Agricola utilizada en la produccion de Piña.pdfMaquinaria Agricola utilizada en la produccion de Piña.pdf
Maquinaria Agricola utilizada en la produccion de Piña.pdf
 
Clasificación de Equipos e Instrumentos en Electricidad.docx
Clasificación de Equipos e Instrumentos en Electricidad.docxClasificación de Equipos e Instrumentos en Electricidad.docx
Clasificación de Equipos e Instrumentos en Electricidad.docx
 
Ficha Tecnica de Ladrillos de Tabique de diferentes modelos
Ficha Tecnica de Ladrillos de Tabique de diferentes modelosFicha Tecnica de Ladrillos de Tabique de diferentes modelos
Ficha Tecnica de Ladrillos de Tabique de diferentes modelos
 

Deuda tecnica

Editor's Notes

  1. En esta presentación, ustedes aprenderán una de las principales causas de proyectos fuera de tiempo, fuera de presupuesto. Codigo que no puede ser mantenido, ni escalado. También conocerán formas para combatir este mal. Se trata de la deuda técnica. Les comparto esta frase atribuida a benjamin franklin: “Preferible ir a dormir sin haber cenado, que levantarse al dia siguiente con una deuda” Definitivamente nadie queremos vernos en la situación de deber algo a alguien mas especialmente si cobra intereses. Como veremos, la deuda tecnica se genera de esa clase de prestamos que generan un interes, es decir, mientras mas pides, la cantidad a pagar se incrementa exponecialmente. Y si esperas demasiado puedes termiar en la ruina.
  2. Este es Steve McConnell, el autor del libro Code Complete. entre otras obras maestras, en una entrevista para el sitio web "On Technical Debt" Steven C. McConnell es el autor de muchos libros de ingeniería que incluyen Code Complete, Rapid Development y Software Estimation. En 1998, McConnell fue nombrado como una de las tres personas mas influyentes de la industria de software por la revista Software Development, junto con Bill Gates y Linus Torvalds.
  3. En el desarrollo de software, las consecuencias de sacrificar la calidad son malentendidas por managers no-tecnicos. Dado que los managers no técnicos no poseen experiencia de primera mano creando software, hacemos uso de las analogias… Esta es una frase de Sigmund Freud: “Uno es dueño de lo que calla y esclavo de lo que habla” El problema aqui es que las palabras dueño y esclavo son utilizadas en un contexto totalmente nuevo, y la interpretación depende de quien escucha. Por eso, pretendo dar un explicación mas completa sobre lo que es la deuda técnica.
  4. Deuda es lo que resulta de adquirir algo ahora por el compromiso de pagar en el largo plazo. Si no pagas a tiempo, generas intereses y aunque te rehuses a pagar la deuda solo se incrementa con el tiempo.
  5. Y si ignoras la deuda por demasiado tiempo …
  6. Se convierte en impagable y por lo tanto estarás en bancarrota
  7. Todo empieza cuando el equipo a escribir una aplicación y no hay necesidad para roles de usuario. Cualquier usuario puede hacer cualquier cosa. En algún punto se plantean dos permisos de usuario distintos, un tipo de usuario puede ver un reporte y los demás no.
  8. El equipo técnico considera si crear un sistema completo de permisos, usando una serie de patrones de diseño para lograrlo. Pero a este punto esto se ve realmente como un ovekill, sobre-ingenieria … Un método en el controlador y un par en la interfaz gráfica serán suficientes.
  9. Algún tiempo después hay un nuevo requerimiento que necesita de la diferenciación de usuarios, y luego otra y otra … En este punto los desarrolladores se dan cuenta que el código está empezando a volverse enredoso y la solución es un “refactoring" del código que es básicamente, reestructurar el código fuente, sin alterar el funcionamiento del software para ahora si, tener un sistema de permisos decente.
  10. Hacer esta refactorización tomara mucho mas tiempo que solo agregar un nuevo método, pero simplificara el código y hará que agregar futuros permisos sea tan simple como agregar solo una línea de código o solamente agregando una fila en la base de datos.
  11. El problema es que existe una necesidad del negocio que requiere del sistema actual de permisos uno o dos días mas, pues cinco clientes muy importantes firmaran un contrato con la empresa esta misma semana, y no queremos hacerlos esperar hasta la próxima semana, ya que necesitan un nuevo permiso pero quizás nunca firmen, si no les gusta el hecho, de que la compañía no les cumplirá su única petición para esta semana.
  12. En este punto es donde la decisión de tomar un "prestamo" puede hacerse. Toda la información relevante para tal decisión es clara. Al principio, agregar un permiso tomo 3 story points. Ahora toma 4. Pronto tomara 5, 6 … no se puede predecir. La refactorización completa toma 21 ahora. Así que la decisión, hoy, no es entre 4 y 21. Es entre tres posibles escenarios:
  13. I. 4 story points ahora (el permiso), 22 story points después (la refactorización, que ahora será un poco mas complicada por el nuevo permiso) y algo cerca de 0 story points por cada nuevo permiso depuse de esto, seguido de un incremento general en la productividad del equipo; En este escenario la compañía a añadido 5 clientes al portafolio y el dinero del contrato llega pronto;
  14. II. 21 story points ahora (la refactorización), 0 después (el nuevo permiso); En este escenario la compañía no pudo agregar los 5 clientes al portafolio por ahora, así que el dinero por los contratos vendrá después;
  15. III. 4 story points ahora (el permiso), sin refactorizar nada, y luego 5 para el siguiente permiso, y luego 6, 7… hasta el punto que una nueva refactorización sea propuesta, pero ahora costanto mas de 50 story points; En este último escenario el dinero llega pronto, pero la próxima vez que sea requerido algo especifico para agregar permisos tomará mucho mas tiempo; Dato el tiempo total, siempre es mejor elegir el mejor diseño posible. Justo como el mejor escenario para una compañía es ser capaz de invertir en nuevas cosas sin tener que ir al banco. Pero como están las cosas en la historia, el primer escenario es la manera mas sabia de proceder. Solo una advertencia: incluso este tipo de estrategia no puede ser implementada constantemente. En cada proyecto toca analizar para encontrar la mejor solución.
  16. Algunos ejemplos encontrados en brasil nos pueden ilustrar las consecuencias de la construcción sin diseño alguno ni cuidado por la calidad.
  17. Esto es lo que se llama en portugués un “puxadinho" y se trata de una construcción hecha sin ninguna supervision, materiales precarios e ilegalmente.
  18. O el siguiente ejemplo que viene de la misma area. En el desarrollo de software esto es exactamente lo que sucede cuando un manager la programación no tiene un diseño mínimo definido. Y no es solo una falla de diseño, lo que hacemos es dañar código anterior, on incluso destruirlo. Esta tan enredado que puede hacer imposible correr la app. Y esta construido de una manera que hace virtualmente imposible una reconstrucción. Aquí, si quisieras arreglar la disposición de los cables, tendrías que tirar todo y empezar de nuevo con un plano.
  19. Y ahora pasamos a un tema complicado
  20. Porque evoca nuestros mas profundos temores.
  21. El codigo heredado puede convertirse en un grave problema pues, aunque en teoria un código fuente debería estar bien comentado y documentado la triste realidad es que casi nunca es así.
  22. La industria aun tiene camino por recorrer cuando se trata de código heredado. Existen técnicas especificas que involucran pruebas unitarias, patrones de diseño y refactorizacion. Sin embargo es un trabajo delicado, donde el mas minimo error puede dejar inhabilitadas partes de la aplicación sin explicación aparente.
  23. Lo que nos lleva al siguiente tema: Esta es una solución por default para muchos desarrolladores cuando se encuentran con un proyecto mal diseñado. Pero, desafortunadamente cuando los managers preguntan si toda la funcionalidad se mantendra, es muy complicado y virtualmente imposible asegurar tal cosa. Otra cosa casi imposible es estimar el tiempo que llevara esta reparación general. Ademas, si se trata del mismo equipo que creo el proyecto inicial y mal diseñado nada asegura que esta vez la reestructuracion sera exitosa o bien planeada.
  24. Muchas veces vamos a escuchar de los clientes o el area de negocios que lo mas importante para un proyecto es la rapidez de entrega. Sin embargo, hay que tener en cuenta que muchos proyectos y empresas quiebran por falta de calidad en sus productos.
  25. Todo se trata de llegar a un equilibrio entre nuestras decisiones de diseño y para eso existen ciertas estrategias como el Minimum Viable Product y la mas reciente el Minimum Lovable Product
  26. Minimum Viable Product tiene solo las características fundamentales para que un producto pueda ser creado, no mas. El producto puede ser orientado a los primeros usuarios en adoptarlo, quienes regularmente son mas comprehensivos y dispuestos a devolver retroalimentación.
  27. Iteracion tras iteración logran que el producto se acerque a lo que el usuario final necesita.
  28. The Intel Web Tablet connected wirelessly to a PC to allow a user to browse the Web. It had a touchscreen display, was powered by an ARM processor, featured a built-in MP3 player and it let you surf the Internet on your couch. Sound familiar? Think again. This was the Intel PAD or, as it was known internally at the time, the IPAD. It was officially branded the Intel Web Tablet, but it never made it to market.
  29. 1959: The Henney Kilowatt turns heads but not enough for people to buy it. The Eureeka Company manufactured 100 Kilowatts between 1959-1960, but was only able to sell 47 of them. Despite the lag in sales, the Kilowatt was a promising electric automobile for its time. It traveled 40 miles on a charge and hit a top speed of 40 miles per hour. The improved 1960 model pushed this to 60 miles per charge and a zippy 60 mile-per-hour top speed.
  30. Archie (1990): Archie. The first search engine created was Archie, created in 1990 by Alan Emtage, a student at McGill University in Montreal. The original intent of the name was "archives," but it was shortened to Archie.
  31. Luego vienen los promotores del Minimum Lovable Product. Ellos dicen que las ventajas del MVP no son tales en un mundo tan competitivo como en el que vivimos. La idea es que los usuarios finales ya no se conforman con productos que ofrecen solo lo mínimo posible. Y que el camino esta en lograr la aceptación desde la primer iteración Tratando de dejar una impresión favorable con ese mínimo de características.
  32. Cuando la meta a largo plazo involucra calidad en el producto la rapidez puede dejarnos en desventaja.
  33. Y finalmente, si deseamos mantener y atraer a los mejores desarrolladores debemos tomar mas en cuenta la calidad en el código y el producto. A group of computer programmers from the Poznan University of Technology (PUT) have triumphed in Hello World Open, the world coding championship. They defeated 2,500 teams from across the globe.