SlideShare una empresa de Scribd logo
1 de 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

Más contenido relacionado

Similar a 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 V3Marco Guerrero
 
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 atSistemas
 
Programación extrema
Programación extremaProgramación extrema
Programación extremaFelix Hdez
 
Product Ownership en Kanban vs Scrum
Product Ownership en Kanban vs ScrumProduct Ownership en Kanban vs Scrum
Product Ownership en Kanban vs ScrumLeanSight Consulting
 
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.pdfNicanor Sachahuaman
 
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 Objetosedwinlemmon
 
Programación Extrema (Extream Programming XP)
Programación Extrema (Extream Programming XP)Programación Extrema (Extream Programming XP)
Programación Extrema (Extream Programming XP)Cesar Acosta
 
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_softwareuniv of pamplona
 
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 únicoCeciliaboggi
 
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)guestba5383
 
Aos2012 sobrevivir a proyectos heredados
Aos2012 sobrevivir a proyectos heredadosAos2012 sobrevivir a proyectos heredados
Aos2012 sobrevivir a proyectos heredadosPablo Bouzada
 
Proyecto final cabinas internet guzmán
Proyecto final cabinas internet guzmánProyecto final cabinas internet guzmán
Proyecto final cabinas internet guzmánEnrique 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ánEnrique Guzmán
 

Similar a 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
 

Último

Sesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO CersaSesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO CersaXimenaFallaLecca1
 
estadisticasII Metodo-de-la-gran-M.pdf
estadisticasII   Metodo-de-la-gran-M.pdfestadisticasII   Metodo-de-la-gran-M.pdf
estadisticasII Metodo-de-la-gran-M.pdfFlorenciopeaortiz
 
Diapositiva de Topografía Nivelación simple y compuesta
Diapositiva de Topografía Nivelación simple y compuestaDiapositiva de Topografía Nivelación simple y compuesta
Diapositiva de Topografía Nivelación simple y compuestajeffsalazarpuente
 
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIASTEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIASfranzEmersonMAMANIOC
 
183045401-Terminal-Terrestre-de-Trujillo.pdf
183045401-Terminal-Terrestre-de-Trujillo.pdf183045401-Terminal-Terrestre-de-Trujillo.pdf
183045401-Terminal-Terrestre-de-Trujillo.pdfEdwinAlexanderSnchez2
 
sistema de construcción Drywall semana 7
sistema de construcción Drywall semana 7sistema de construcción Drywall semana 7
sistema de construcción Drywall semana 7luisanthonycarrascos
 
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kVEl proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kVSebastianPaez47
 
Calavera calculo de estructuras de cimentacion.pdf
Calavera calculo de estructuras de cimentacion.pdfCalavera calculo de estructuras de cimentacion.pdf
Calavera calculo de estructuras de cimentacion.pdfyoseka196
 
Elaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdfElaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdfKEVINYOICIAQUINOSORI
 
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIPSEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIPJosLuisFrancoCaldern
 
Proyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctricaProyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctricaXjoseantonio01jossed
 
Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...
Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...
Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...SuannNeyraChongShing
 
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdfAnthonyTiclia
 
Comite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptxComite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptxClaudiaPerez86192
 
Linealización de sistemas no lineales.pdf
Linealización de sistemas no lineales.pdfLinealización de sistemas no lineales.pdf
Linealización de sistemas no lineales.pdfrolandolazartep
 
Seleccion de Fusibles en media tension fusibles
Seleccion de Fusibles en media tension fusiblesSeleccion de Fusibles en media tension fusibles
Seleccion de Fusibles en media tension fusiblesSaulSantiago25
 
4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptx
4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptx4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptx
4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptxGARCIARAMIREZCESAR
 
Sesion 02 Patentes REGISTRO EN INDECOPI PERU
Sesion 02 Patentes REGISTRO EN INDECOPI PERUSesion 02 Patentes REGISTRO EN INDECOPI PERU
Sesion 02 Patentes REGISTRO EN INDECOPI PERUMarcosAlvarezSalinas
 
CICLO DE DEMING que se encarga en como mejorar una empresa
CICLO DE DEMING que se encarga en como mejorar una empresaCICLO DE DEMING que se encarga en como mejorar una empresa
CICLO DE DEMING que se encarga en como mejorar una empresaSHERELYNSAMANTHAPALO1
 
Introducción a los sistemas neumaticos.ppt
Introducción a los sistemas neumaticos.pptIntroducción a los sistemas neumaticos.ppt
Introducción a los sistemas neumaticos.pptEduardoCorado
 

Último (20)

Sesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO CersaSesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
 
estadisticasII Metodo-de-la-gran-M.pdf
estadisticasII   Metodo-de-la-gran-M.pdfestadisticasII   Metodo-de-la-gran-M.pdf
estadisticasII Metodo-de-la-gran-M.pdf
 
Diapositiva de Topografía Nivelación simple y compuesta
Diapositiva de Topografía Nivelación simple y compuestaDiapositiva de Topografía Nivelación simple y compuesta
Diapositiva de Topografía Nivelación simple y compuesta
 
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIASTEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
 
183045401-Terminal-Terrestre-de-Trujillo.pdf
183045401-Terminal-Terrestre-de-Trujillo.pdf183045401-Terminal-Terrestre-de-Trujillo.pdf
183045401-Terminal-Terrestre-de-Trujillo.pdf
 
sistema de construcción Drywall semana 7
sistema de construcción Drywall semana 7sistema de construcción Drywall semana 7
sistema de construcción Drywall semana 7
 
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kVEl proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
 
Calavera calculo de estructuras de cimentacion.pdf
Calavera calculo de estructuras de cimentacion.pdfCalavera calculo de estructuras de cimentacion.pdf
Calavera calculo de estructuras de cimentacion.pdf
 
Elaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdfElaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdf
 
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIPSEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
 
Proyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctricaProyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctrica
 
Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...
Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...
Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...
 
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
 
Comite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptxComite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptx
 
Linealización de sistemas no lineales.pdf
Linealización de sistemas no lineales.pdfLinealización de sistemas no lineales.pdf
Linealización de sistemas no lineales.pdf
 
Seleccion de Fusibles en media tension fusibles
Seleccion de Fusibles en media tension fusiblesSeleccion de Fusibles en media tension fusibles
Seleccion de Fusibles en media tension fusibles
 
4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptx
4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptx4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptx
4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptx
 
Sesion 02 Patentes REGISTRO EN INDECOPI PERU
Sesion 02 Patentes REGISTRO EN INDECOPI PERUSesion 02 Patentes REGISTRO EN INDECOPI PERU
Sesion 02 Patentes REGISTRO EN INDECOPI PERU
 
CICLO DE DEMING que se encarga en como mejorar una empresa
CICLO DE DEMING que se encarga en como mejorar una empresaCICLO DE DEMING que se encarga en como mejorar una empresa
CICLO DE DEMING que se encarga en como mejorar una empresa
 
Introducción a los sistemas neumaticos.ppt
Introducción a los sistemas neumaticos.pptIntroducción a los sistemas neumaticos.ppt
Introducción a los sistemas neumaticos.ppt
 

Deuda tecnica

Notas del editor

  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.