Charla Tdd Uji 032010
-
Upload
carlos-ble -
Category
Technology
-
view
671 -
download
2
Transcript of Charla Tdd Uji 032010
![Page 1: Charla Tdd Uji 032010](https://reader033.fdocument.pub/reader033/viewer/2022042602/55a230d11a28ab77428b47f2/html5/thumbnails/1.jpg)
Desarrollo Dirigido por Ejemplos
Concretar en lugar de Abstraer
Carlos Blé Jurado
Marzo 2010 – Universitat Jaume I
www.carlosble.com
![Page 2: Charla Tdd Uji 032010](https://reader033.fdocument.pub/reader033/viewer/2022042602/55a230d11a28ab77428b47f2/html5/thumbnails/2.jpg)
Nada más salir de la facultad...
“¡Podemos programar lo que sea!!”
“¡Despues de la carrerasaco adelantecualquier cosa!!!!!!”
![Page 3: Charla Tdd Uji 032010](https://reader033.fdocument.pub/reader033/viewer/2022042602/55a230d11a28ab77428b47f2/html5/thumbnails/3.jpg)
Y va la experiencia y dice...
“así que... podeishacer lo que sea...”
“¡y quien lo va a mantener!!!!!!”
![Page 4: Charla Tdd Uji 032010](https://reader033.fdocument.pub/reader033/viewer/2022042602/55a230d11a28ab77428b47f2/html5/thumbnails/4.jpg)
No te torturescon códigoimposible ni se lo hagas atus compañeros
No juegues con el dinero del cliente. Dale soluciones, nomás problemas
Tranquilo majete: haz las cosas bien
![Page 5: Charla Tdd Uji 032010](https://reader033.fdocument.pub/reader033/viewer/2022042602/55a230d11a28ab77428b47f2/html5/thumbnails/5.jpg)
¿Y eso como se hace?
“...pero, no veas que broncas tienen con los usuarios...”
“...tengo uncolega en unaempresa dondesaben unmontón deingeniería delsoftware...”
![Page 6: Charla Tdd Uji 032010](https://reader033.fdocument.pub/reader033/viewer/2022042602/55a230d11a28ab77428b47f2/html5/thumbnails/6.jpg)
¡¡¡¡¡¡¡AL REVES!!!!!!!!
A lo mejor es que los estamos haciendo...
![Page 7: Charla Tdd Uji 032010](https://reader033.fdocument.pub/reader033/viewer/2022042602/55a230d11a28ab77428b47f2/html5/thumbnails/7.jpg)
Afrontemos los problemas del software
Tiene defectos(malditos bugs)
No hace lo que el cliente
necesita que haga (hace otros rollitos que están que te
cagas y tal)
Es muy caro de mantener y(más vale que el cliente
evolucionar no pida cambios)
![Page 8: Charla Tdd Uji 032010](https://reader033.fdocument.pub/reader033/viewer/2022042602/55a230d11a28ab77428b47f2/html5/thumbnails/8.jpg)
Los métodos tradicionales no están resultando eficajes para evitarlos
Escuchar (o peor, leer)
Transcribir (volcar los requisitos en 500 páginas)
Abstraer (intentar resumir las 500 páginas en conceptos)
Modelar (diagramas de clases, etc)
Implementar (a picar código)
Probar (tres días usando la app a mano)
Entregar (cobrar y salir pitando)
![Page 9: Charla Tdd Uji 032010](https://reader033.fdocument.pub/reader033/viewer/2022042602/55a230d11a28ab77428b47f2/html5/thumbnails/9.jpg)
En realidad hay aun más problemas
El mundo de la informática es complicado:
Os recomiendo: Informática Profesionalde Roberto Canales
![Page 10: Charla Tdd Uji 032010](https://reader033.fdocument.pub/reader033/viewer/2022042602/55a230d11a28ab77428b47f2/html5/thumbnails/10.jpg)
Pero en el lado técnico, al menos, podemos ser ágiles
for i in iteration:
Escuchar (de primera mano, del cliente)
Transcribir (escribimos historias de usuario)
Concretar (escribir criterios/tests de aceptación)
Probar/Implementar (primero la prueba, ¡cobarde!)
Entregar (una entrega cada 3 semanas y volver al inicio)
![Page 11: Charla Tdd Uji 032010](https://reader033.fdocument.pub/reader033/viewer/2022042602/55a230d11a28ab77428b47f2/html5/thumbnails/11.jpg)
La rueda ágil
![Page 12: Charla Tdd Uji 032010](https://reader033.fdocument.pub/reader033/viewer/2022042602/55a230d11a28ab77428b47f2/html5/thumbnails/12.jpg)
Concretando: TDD
![Page 13: Charla Tdd Uji 032010](https://reader033.fdocument.pub/reader033/viewer/2022042602/55a230d11a28ab77428b47f2/html5/thumbnails/13.jpg)
ATDD + TDD
![Page 14: Charla Tdd Uji 032010](https://reader033.fdocument.pub/reader033/viewer/2022042602/55a230d11a28ab77428b47f2/html5/thumbnails/14.jpg)
ATDD
Historias de Usuario que contienen una lista de ejemplos.
Los ejemplos son el puente que une a técnicos y usuarios/clientes
Eliminan la ambigüedad
Escaner de un tpv:
![Page 15: Charla Tdd Uji 032010](https://reader033.fdocument.pub/reader033/viewer/2022042602/55a230d11a28ab77428b47f2/html5/thumbnails/15.jpg)
Ejemplo de ejemplo :-)
40x20+8x20x1.5+8x20x2
Ejemplo de ejemplo :-)
![Page 16: Charla Tdd Uji 032010](https://reader033.fdocument.pub/reader033/viewer/2022042602/55a230d11a28ab77428b47f2/html5/thumbnails/16.jpg)
Ya sabemos lo que quiere el cliente.
Ahora vamos a pensar cómo queremos diseñar e implementar el software
Y vamos a implementarlo
Escribimos un test (JUnit, NUnit, PyUnit...)
Lo hacemos funcionar lo antes posible (implementamos el código de producción)
Refactorizamos el código
![Page 17: Charla Tdd Uji 032010](https://reader033.fdocument.pub/reader033/viewer/2022042602/55a230d11a28ab77428b47f2/html5/thumbnails/17.jpg)
Un test unitario
![Page 18: Charla Tdd Uji 032010](https://reader033.fdocument.pub/reader033/viewer/2022042602/55a230d11a28ab77428b47f2/html5/thumbnails/18.jpg)
Cada cosa tiene su ámbito
ATDD – ¿Qué quiere el cliente?
TDD – ¿Cómo lo implementamos?
![Page 19: Charla Tdd Uji 032010](https://reader033.fdocument.pub/reader033/viewer/2022042602/55a230d11a28ab77428b47f2/html5/thumbnails/19.jpg)
¿Qué ventajas tiene A/TDD?
Tenemos un producto (parcial) en producción desde las primeras semanas
No se implementa lo que no será usado (YAGNI)
Minimizamos el número de defectosConseguimos código más fácil de mantener
Código preparado para cambiarAumenta la confianza del equipo
Aumenta la productividadDetectamos antes las prioridades del cliente
![Page 20: Charla Tdd Uji 032010](https://reader033.fdocument.pub/reader033/viewer/2022042602/55a230d11a28ab77428b47f2/html5/thumbnails/20.jpg)
¿Cómo aprender todo esto?
Hay un tipo por ahí que imparte cursosHay un libro en castellano sobre el temaHay una comunidad de habla hispanaHay toneladas de herramientas libres¿Tienes ganas?
Just do it!!!
![Page 21: Charla Tdd Uji 032010](https://reader033.fdocument.pub/reader033/viewer/2022042602/55a230d11a28ab77428b47f2/html5/thumbnails/21.jpg)
dirigidoPorTests.com
Agile-spain.com
carlosble.com
Tambien
estamos
en Facebook!: