SlideShare una empresa de Scribd logo
1 de 57
GERARDO BARCIA PALACIOS
www.gerardobarcia.com
@gerardobarciap
4 Julio, 1996
overflow 37 segundos después del despegue del ARIA
Con consecuencias
gravísimas…
La falla se produce cuando un float
se convierte a entero corto
$370 se perdieron
Esta excepción no podría ocurrir en su antecesor el Ariane 4, por
lo que la reutilización de componentes se hizo sin pruebas del
sistema a fondo, pues era caro. ¡FUE AÚN MÁS CARO!
“Los desastres causados por el software son
muy famosos. Por el Hardware, son difíciles de
encontrar.”
– Gerald Weinberg, Weinberg’s Second Law
“Si los constructures construyesen los edificios
de la misma forma en que los programadores
escriben los programas, el primer pájaro
carpintero que llegase destruiría la civilización”
Motivación de la charla
¿Qué ha pasado?
David Heinemeier Hansson
(DHH) comenzó a expresar su
descontento con TDD y los
UnitTest en la comunidad de
Rails.
Kent Beck y Martin Fowler
(defensores de TDD) se han
unido al debate.
¿TDD COMO PROBLEMA?
¿De qué conversaremos?
TDD
DHH
BECK Y
FOWLER
Sandi
Metz
Dos Conceptos
Arquitectura Hexagonal
Técnica 1: Usar casos de Servicios
Técnica 2: Controladores Pasivos
Técnica 3: Uso de repositorios
¿Qué plantea DHH?
Ingeniero de Software VS Escritor de
Software
LAS PRUEBAS
PRIMERO
¿Es fundamentalismo?¿Cuál
es su límite?
TDD
Impacto en el
diseño
- ¿Hacer código más
testeable?
- Arquitecturas viciadas y
código ilegible
COSTO != VALOR
Mejorar el diseño de nuestras apps
leyendo, no solo con TESTS
¿De qué conversaremos?
TDD
DHH
BECK Y
FOWLER
Sandi
Metz
– Kent Beck
“Escribir las pruebas primero es solo uno de
los caminos para hacer código de calidad”
¿La culpa de llegar a un mal lugar es del coche?
El viejo dilema de
Acoplamiento y Cohesión
Beck y Fowler plantean que el
problema es de diseño, no de TDD
¿De qué conversaremos?
TDD
DHH
BECK Y
FOWLER
Sandi
Metz
Conoce tus intenciones
Conoce que Probar
Conoce cuando Probar
Conoce como probar
PRINCIPIOS
Enfocarse en los mensajes
Pensar en los objetos como simples conectores
TÉCNICAS
la idea central es realizar test cuando sea
necesario y los necesarios. TDD es recomendable.
no obligatorio.
REFLEXIONES
ES SANO CUESTIONAR
Contexto
Generalizar es
equivocarse siempre
Los extremos pueden ser
buenos
Ha comenzado una carrera por
salvar al agilizo de los agilitas
#TDDisDead
#NoEstimate
fin?
ELIGE TUS BATALLAS
http://martinfowler.com/articles/is-tdd-dead/
Ampliar la información
GERARDO BARCIA PALACIOS
www.gerardobarcia.com
@gerardobarciap

Más contenido relacionado

Similar a Debate sobre TDD: sus beneficios y límites

+Ficha tecnica investigación tecnológica
+Ficha tecnica investigación tecnológica+Ficha tecnica investigación tecnológica
+Ficha tecnica investigación tecnológicaGabriel Eduardo Vasquez
 
Retos en la Adopción del Refactoring - Junta General del MexALN 28/06/2012
Retos en la Adopción del Refactoring - Junta General del MexALN 28/06/2012Retos en la Adopción del Refactoring - Junta General del MexALN 28/06/2012
Retos en la Adopción del Refactoring - Junta General del MexALN 28/06/2012Alfredo Chavez
 
A1 modelado de los requerimientos de un sistema de informacion
A1   modelado de los requerimientos de un sistema de informacionA1   modelado de los requerimientos de un sistema de informacion
A1 modelado de los requerimientos de un sistema de informacionmariopino129
 
Cursotdd 141202105217-conversion-gate01
Cursotdd 141202105217-conversion-gate01Cursotdd 141202105217-conversion-gate01
Cursotdd 141202105217-conversion-gate01Javier Morales
 
Historia del Software
Historia del SoftwareHistoria del Software
Historia del SoftwareChinita Hans
 
Sistemas Gestores de Bases de Datos
Sistemas Gestores de Bases de DatosSistemas Gestores de Bases de Datos
Sistemas Gestores de Bases de Datoslatukiss
 
Meetup: Sesión #8 Domain Driven Design
Meetup: Sesión #8 Domain Driven DesignMeetup: Sesión #8 Domain Driven Design
Meetup: Sesión #8 Domain Driven DesignOsvaldo Mercado Coss
 
Vivencias desarrollando cocos2d
Vivencias desarrollando cocos2dVivencias desarrollando cocos2d
Vivencias desarrollando cocos2dRicardo Quesada
 
Diapositiva hadware y software5
Diapositiva hadware y software5Diapositiva hadware y software5
Diapositiva hadware y software5yank1720
 
Entity Framework Core Con MongoDB
Entity Framework Core Con MongoDBEntity Framework Core Con MongoDB
Entity Framework Core Con MongoDBCamilo Bernal
 
Metodologías Ágiles en la Práctica
Metodologías Ágiles en la PrácticaMetodologías Ágiles en la Práctica
Metodologías Ágiles en la PrácticaManuel Rubio
 

Similar a Debate sobre TDD: sus beneficios y límites (20)

+Ficha tecnica investigación tecnológica
+Ficha tecnica investigación tecnológica+Ficha tecnica investigación tecnológica
+Ficha tecnica investigación tecnológica
 
+Ficha tecnica investigación tecnológica
+Ficha tecnica investigación tecnológica+Ficha tecnica investigación tecnológica
+Ficha tecnica investigación tecnológica
 
Retos en la Adopción del Refactoring - Junta General del MexALN 28/06/2012
Retos en la Adopción del Refactoring - Junta General del MexALN 28/06/2012Retos en la Adopción del Refactoring - Junta General del MexALN 28/06/2012
Retos en la Adopción del Refactoring - Junta General del MexALN 28/06/2012
 
Developing for Android (The movie)
Developing for Android (The movie)Developing for Android (The movie)
Developing for Android (The movie)
 
A1 modelado de los requerimientos de un sistema de informacion
A1   modelado de los requerimientos de un sistema de informacionA1   modelado de los requerimientos de un sistema de informacion
A1 modelado de los requerimientos de un sistema de informacion
 
Cursotdd 141202105217-conversion-gate01
Cursotdd 141202105217-conversion-gate01Cursotdd 141202105217-conversion-gate01
Cursotdd 141202105217-conversion-gate01
 
Exposicion
ExposicionExposicion
Exposicion
 
Sistemas
SistemasSistemas
Sistemas
 
TDD Course (Spanish)
TDD Course (Spanish)TDD Course (Spanish)
TDD Course (Spanish)
 
Ingenieria de Software
Ingenieria de SoftwareIngenieria de Software
Ingenieria de Software
 
Historia del Software
Historia del SoftwareHistoria del Software
Historia del Software
 
Sistemas Gestores de Bases de Datos
Sistemas Gestores de Bases de DatosSistemas Gestores de Bases de Datos
Sistemas Gestores de Bases de Datos
 
Programacion
ProgramacionProgramacion
Programacion
 
Meetup: Sesión #8 Domain Driven Design
Meetup: Sesión #8 Domain Driven DesignMeetup: Sesión #8 Domain Driven Design
Meetup: Sesión #8 Domain Driven Design
 
Vivencias desarrollando cocos2d
Vivencias desarrollando cocos2dVivencias desarrollando cocos2d
Vivencias desarrollando cocos2d
 
Diapositiva hadware y software5
Diapositiva hadware y software5Diapositiva hadware y software5
Diapositiva hadware y software5
 
Anti patrones
Anti patronesAnti patrones
Anti patrones
 
Entity Framework Core Con MongoDB
Entity Framework Core Con MongoDBEntity Framework Core Con MongoDB
Entity Framework Core Con MongoDB
 
Metodologías Ágiles en la Práctica
Metodologías Ágiles en la PrácticaMetodologías Ágiles en la Práctica
Metodologías Ágiles en la Práctica
 
HA2NV50 EQ8 - XP
HA2NV50 EQ8 - XPHA2NV50 EQ8 - XP
HA2NV50 EQ8 - XP
 

Debate sobre TDD: sus beneficios y límites