SlideShare ist ein Scribd-Unternehmen logo
1 von 28
Downloaden Sie, um offline zu lesen
How to build
Skyscrapers
using TDD
VICTOR ANGEL CHAMBI NINA
“If an idea is stupid it's really
worth trying,
there is the chance that nobody
else has tried it before”
Kent Beck, 2005
"Si una idea es estúpida,
realmente vale la pena intentarlo,
existe la posibilidad de que nadie
más lo haya intentado antes "
Tests
Automatizados
Integración
Continua
Diseño Simple
Pair
ProgrammingsUnit
TDD
XP
Manifiesto Ágil.
El re-descubrimiento
● Cintas perforadas
● Almacenamiento y programación
El re-descubrimiento
● Primero se definían las cintas necesarias
● Luego se programaba hasta lograr los resultados
esperados
Software
“Software es el modelo de una
solución para un problema que se
trata de resolver”
– Glenn Vandenburg
Software
Modelo
Aquello que se toma como referencia para tratar de
producir algo igual
Fuente: 10 Pines - Construcción de software robusto con TDD
Desarrollo de Software
“Desarrollo de software es un proceso de aprendizaje, se trata de
adquirir y representar el conocimiento”
– Hernán Wilkinson
Esencias del SOFTWARE
COMPLEJO
● Número de estados
● Posibles entradas
Esencias del SOFTWARE
CAMBIANTE
Soporte de ejecución
Dominio del problema
Entendimiento del problema
Esencias del SOFTWARE
“There is no Silver Bullet”
- Brooks (1987)
Nuevo Proyecto ✨
TORRE DE YENGA
Código de Producción
😄
👍🏼
Código de Producción
😭
👎🏼
No Testing
Testing
��
Pruebas
RESPONSABILIDAD DEL PROGRAMADOR
No Testing < Testing
TDD
Red Green Refactor
1
23
Test
Fails
Simplest code
Pass
Improvement?
Clean
code
Clean tests
Red Green Refactor
"TDD eradicates fear of change.”
- Eric Elliot
Responsabilidad del programador
No Testing < Testing < TDD
TDD
Técnica de aprendizaje
● Iterativa e incremental
● Constructivista
Explica el qué antes del cómo
https://app.gitbook.com/@achambinina/s/tdd/
EJEMPLO DE TDD CON APLICACION DE
CASA DE CAMBIO
VENTAJAS
● Guía de aprendizaje
● Impulsa buen diseño y código limpio
● Impone documentación viva
● Evita Bugs (no los quita)
● Evita sobreproducción de código
● Da feedback inmediato
● Impulsa prácticas continuas
● (CI y CD)
DESAFÍOS
● Cambio de cultura, pensar en pruebas (qué en vez de
cómo) primero
● Convencer al área administrativa de practicar TDD (es
lento pero seguro)
● Aprenderlo bien
● Tener aptitud técnica necesaria (diseño flexible e
incremental)
TDD hoy
CONCLUSIÓN
● Los desarrolladores tenemos una responsabilidad con la
calidad
● TDD es un proceso de aprendizaje
● que fomenta las buenas prácticas
● Puede ser difícil adoptarlo, pero no lo sabremos si no lo
intentamos.
PRUEBALO!
REFERENCIAS
● Clean Code - Bob Martin, Clean Code Blog
● Test Driven Development by Example - Kent Beck
● Extreme Programming 20 years later by Kent Beck
● Real Software Engineering - Glenn Vandenburg
● 10 Pines - Construcción de software robusto con TDD
● http://academicscode.com/posts/2017/01/a-little-history
-of-tdd-dawn-of-tdd/
● http://news.codecademy.com/test-driven-development/
THANKS!
Does anyone have any question?
LINKEDIN: victor-angel-chambi-nina-15045aa7/
EMAIL: achambinina@gmail.com
YOUTUBE: @mondongo
FACEBOOK: @ligthajallu

Weitere ähnliche Inhalte

Was ist angesagt?

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)
Israel Antezana Rojas
 
BDD - Desarrollo dirigido por comportamiento
BDD - Desarrollo dirigido por comportamientoBDD - Desarrollo dirigido por comportamiento
BDD - Desarrollo dirigido por comportamiento
Agustin Ramos
 
Extreme programming (1)
Extreme programming (1)Extreme programming (1)
Extreme programming (1)
Enrique Polo
 
¿Te Sientes Orgulloso Del CóDigo Que Escribes?
¿Te Sientes Orgulloso Del CóDigo Que Escribes?¿Te Sientes Orgulloso Del CóDigo Que Escribes?
¿Te Sientes Orgulloso Del CóDigo Que Escribes?
Israel Antezana Rojas
 

Was ist angesagt? (20)

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)
 
BDD & Cucumber
BDD & CucumberBDD & Cucumber
BDD & Cucumber
 
Desarrollo Dirigido por Comportamiento (con Cucumber y Groovy)
Desarrollo Dirigido por Comportamiento (con Cucumber y Groovy)Desarrollo Dirigido por Comportamiento (con Cucumber y Groovy)
Desarrollo Dirigido por Comportamiento (con Cucumber y Groovy)
 
Introduccion a TDD y XP en la Universidad de Santiago de Compostela
Introduccion a TDD y XP en la Universidad de Santiago de CompostelaIntroduccion a TDD y XP en la Universidad de Santiago de Compostela
Introduccion a TDD y XP en la Universidad de Santiago de Compostela
 
Tw ¿Por qué elegir ágil?
Tw   ¿Por qué elegir ágil? Tw   ¿Por qué elegir ágil?
Tw ¿Por qué elegir ágil?
 
Unit Testing en iOS
Unit Testing en iOSUnit Testing en iOS
Unit Testing en iOS
 
BDD - Desarrollo dirigido por comportamiento
BDD - Desarrollo dirigido por comportamientoBDD - Desarrollo dirigido por comportamiento
BDD - Desarrollo dirigido por comportamiento
 
Extreme programming (1)
Extreme programming (1)Extreme programming (1)
Extreme programming (1)
 
Introducción a Behaviour Driven Development
Introducción a Behaviour Driven DevelopmentIntroducción a Behaviour Driven Development
Introducción a Behaviour Driven Development
 
[ES] webcat 2014-03 Demystifying Development Techniques
[ES] webcat 2014-03 Demystifying Development Techniques[ES] webcat 2014-03 Demystifying Development Techniques
[ES] webcat 2014-03 Demystifying Development Techniques
 
TDD Code Retreat
TDD Code RetreatTDD Code Retreat
TDD Code Retreat
 
Taller Prototipado - StartupWeekend Guatemala 2014
Taller Prototipado   - StartupWeekend Guatemala 2014Taller Prototipado   - StartupWeekend Guatemala 2014
Taller Prototipado - StartupWeekend Guatemala 2014
 
Automatizar o no desde el principio? ese es el dilema...
Automatizar o no desde el principio? ese es el dilema...Automatizar o no desde el principio? ese es el dilema...
Automatizar o no desde el principio? ese es el dilema...
 
Agile university day - Un día en un equipo ágil de desarrollo móvil
Agile university day - Un día en un equipo ágil de desarrollo móvilAgile university day - Un día en un equipo ágil de desarrollo móvil
Agile university day - Un día en un equipo ágil de desarrollo móvil
 
Day01
Day01Day01
Day01
 
Cultura DevOps - Conferencia Agile Spain 2017
Cultura DevOps - Conferencia Agile Spain 2017Cultura DevOps - Conferencia Agile Spain 2017
Cultura DevOps - Conferencia Agile Spain 2017
 
TDD y Python
TDD y PythonTDD y Python
TDD y Python
 
01. Taller UX - Prototipado Rápido: Actividades
01. Taller UX - Prototipado Rápido: Actividades01. Taller UX - Prototipado Rápido: Actividades
01. Taller UX - Prototipado Rápido: Actividades
 
The path to automation heaven
The path to automation heavenThe path to automation heaven
The path to automation heaven
 
¿Te Sientes Orgulloso Del CóDigo Que Escribes?
¿Te Sientes Orgulloso Del CóDigo Que Escribes?¿Te Sientes Orgulloso Del CóDigo Que Escribes?
¿Te Sientes Orgulloso Del CóDigo Que Escribes?
 

Ähnlich wie Creando rascacielos con tdd

Ponele el TURBO al Dev Team de tu Startup
Ponele el TURBO al Dev Team de tu StartupPonele el TURBO al Dev Team de tu Startup
Ponele el TURBO al Dev Team de tu Startup
Martin Siniawski
 
XP_PairProgramming_y_TDD
XP_PairProgramming_y_TDDXP_PairProgramming_y_TDD
XP_PairProgramming_y_TDD
Santiago Blanco
 

Ähnlich wie Creando rascacielos con tdd (20)

Módulo 4. Desarrollador ágil
Módulo 4. Desarrollador ágilMódulo 4. Desarrollador ágil
Módulo 4. Desarrollador ágil
 
Desarrollo con Java y metodologías agiles
Desarrollo con Java y metodologías agilesDesarrollo con Java y metodologías agiles
Desarrollo con Java y metodologías agiles
 
Cómo hacer Test Driven Development
Cómo hacer Test Driven DevelopmentCómo hacer Test Driven Development
Cómo hacer Test Driven Development
 
Programación Extrema (XP)
Programación Extrema (XP)Programación Extrema (XP)
Programación Extrema (XP)
 
"Demystifying development techniques" por @eturino
"Demystifying development techniques" por @eturino"Demystifying development techniques" por @eturino
"Demystifying development techniques" por @eturino
 
TDD 101 - Introducción al Desarrollo Dirigido por Pruebas
TDD 101 - Introducción al Desarrollo Dirigido por PruebasTDD 101 - Introducción al Desarrollo Dirigido por Pruebas
TDD 101 - Introducción al Desarrollo Dirigido por Pruebas
 
Crowdar - Introducción a BDD
Crowdar - Introducción a BDDCrowdar - Introducción a BDD
Crowdar - Introducción a BDD
 
Las Claves del Desarrollo Dirigido por Pruebas (o TDD)
Las Claves del Desarrollo Dirigido por Pruebas (o TDD)Las Claves del Desarrollo Dirigido por Pruebas (o TDD)
Las Claves del Desarrollo Dirigido por Pruebas (o TDD)
 
Tdd desde las_trincheras
Tdd desde las_trincherasTdd desde las_trincheras
Tdd desde las_trincheras
 
Metodologías de Desarrollo de Software
Metodologías de Desarrollo de SoftwareMetodologías de Desarrollo de Software
Metodologías de Desarrollo de Software
 
Ponele el TURBO al Dev Team de tu Startup
Ponele el TURBO al Dev Team de tu StartupPonele el TURBO al Dev Team de tu Startup
Ponele el TURBO al Dev Team de tu Startup
 
Valores y prácticas XP
Valores y prácticas XPValores y prácticas XP
Valores y prácticas XP
 
Cursotdd 141202105217-conversion-gate01
Cursotdd 141202105217-conversion-gate01Cursotdd 141202105217-conversion-gate01
Cursotdd 141202105217-conversion-gate01
 
desarrollo agil-2022.pdf
desarrollo agil-2022.pdfdesarrollo agil-2022.pdf
desarrollo agil-2022.pdf
 
Introducción a tdd
Introducción a tddIntroducción a tdd
Introducción a tdd
 
Agilidad, Scrum y otras experiencias.pdf
Agilidad, Scrum y otras experiencias.pdfAgilidad, Scrum y otras experiencias.pdf
Agilidad, Scrum y otras experiencias.pdf
 
Ecuador jug 2017 -incrementando la productividad de proyectos java ee con c...
Ecuador jug   2017 -incrementando la productividad de proyectos java ee con c...Ecuador jug   2017 -incrementando la productividad de proyectos java ee con c...
Ecuador jug 2017 -incrementando la productividad de proyectos java ee con c...
 
Metodologías Agiles - APIT - UTN FRBA
Metodologías Agiles - APIT - UTN FRBAMetodologías Agiles - APIT - UTN FRBA
Metodologías Agiles - APIT - UTN FRBA
 
Metodologias ágiles
Metodologias ágilesMetodologias ágiles
Metodologias ágiles
 
XP_PairProgramming_y_TDD
XP_PairProgramming_y_TDDXP_PairProgramming_y_TDD
XP_PairProgramming_y_TDD
 

Creando rascacielos con tdd