Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

Desarrollo ágil y testing

No description
by

Alberto Rodriguez

on 28 November 2014

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of Desarrollo ágil y testing

Desarrollo ágil y testing
Madrid
Letterkenny, Irlanda
Londres
Polar, HP, GFI, Indra
Tecnologias: Java, Spring, JSF, Struts, iBatis, Hibernate...
Prudential Finantial
TDD, CI
Springer + Thoughtworks
Tecnologias: Scala, Ruby, MarkLogic, Play, AngularJS.
Agile, Pair Programming, TDD, BDD, CI, DevOps.
Stand-ups
Stand-up general
Pair programming
"Swap-pairing" cada 2-3 dias
Historias de usuario
Valor de negocio
Integración continua
Visibilidad: monitores y dashboards
DevOps
Romper la barrera Devs | Ops
Retros
Por proyecto y general
Stand-up stream
La pareja se elige al comienzo del día
Creadas por BA´s y consensuadas con el product owner
Si la build se rompe: HAY QUE ARREGLARLA
Se crea unidad en el proyecto y se evita la sensación de autoría de código (el código es de TODOS)
Rotar entre equipos
Ping-pong TDD
Desarrollo agil
Acciones -> Responsables
In DEV
Ready for QA
In QA
QA's despliegan a entorno de QA
* Go: http://www.thoughtworks.com/products/go-continuous-delivery
Sign-Off
Story DEMO (entorno desarrollo):
* Obligatorio: DEV's y QA's
* Opcional: UX, DevOps y Tech-leader
In Analisis
BA's y Product Owner crean la historia
Historias: Ciclo de vida
Tarjeta física en el muro y en Mingle:
http://www.thoughtworks.com/products/mingle-agile-project-management
CRITERIOS DE ACEPTACIÓN
Ready for DEV
Kick-off
* Obligatorio: Dev Pair, QA, BA
* Opcional: UX, DevOps
* Revisión de la historia sobre Mingle
* Si la historia lo requiere UX, DevOps
pueden añadir criterios de aceptación.
¿Nueva feature?
* Definición de escenarios BDD entre Devs y QAs
Mid-Demos
* DEV: Ver siguientes diapositivas
Se revisan TODOS los criterios de aceptación
Se revisan pruebas unitarias y funcionales (los QAs pueden y suelen sugerir nuevas pruebas)
Si la historia lo requiere se revisan métricas, logs, riesgos operacionales...
Testing manual
Si la historia lo requiere:
* Dev-QA pairing
Desarrollo orientado a tests
TDD
Escribir nuevo código sólo si tenemos primero un test que falla
Implicaciones técnicas
Diseñar el código según escribimos nuestros tests
Ciclo de desarrollo
Ventajas
Cada pocos segundos/minutos se comprueba que el código hace lo que debería
Ventajas
Eliminar duplicación
El entorno de desarrollo tiene que ser capaz de decirnos rápidamente el estado de nuestro código en todo momento
Diseñar componentes altamente cohesivos y muy poco acoplados para conseguir probarlos fácilmente
Si algo va mal sólo hay unas pocas lineas de código que comprobar
Errores son fáciles de encontrar y arreglar
Escribir tests antes que el código = centrarnos en interfaces = mejor código
Los tests se suben al repo con el código -> documentación -> cada programador ejecuta los tests en cada build
¡¡Vamos a probar!!
Consejos
Que podemos aplicar (IMHO)
Marcador de bolera
Juego
Marcador
Tirada
Cuanto más experiencia tienes en TDD tus pasos van siendo mas cortos y vas más rápido.
Todo el mundo puede empezar a utilizar TDD HOY:
"It's one of those things that takes moments to learn and a lifetime to master"
James Shore: The Art of Agile
Mi forma de programar ha mejorado mucho practicando TDD:
"Test infected"
Erich Gamma: http://junit.sourceforge.net/doc/testinfected/testing.htm
¡¡Evita dejar ventanas rotas!!
Jeff Atwood: http://tinyurl.com/22w3a2v
Robert C. Martin y Robert S. Koss:
http://www.objectmentor.com/resources/articles/xpepisode.htm
Una herramienta de SCRUM
Definir criterios de aceptacion SIEMPRE
CI: Visibilidad con dashboards
Interaccion QAs-DEVs
DevOps
Testing, testing + testing
Que podemos aplicar (IMHO) (II)
Aprender + Innovar
Lunch & Learn
Code Reviews
Charlas
Retros
Agenda
1. Mi experiencia
2. Metodología ágil
3. ¿Qué es TDD?
4. Ejemplo práctico de TDD
5. Consejos y aplicación de técnicas
Que podemos aplicar (IMHO) (III)
¡¡¡¡¡Comprar un futbolín!!!!!
Sobre mi...
Ingeniero Superior en Informática
10 años de experiencia como desarrollador
¿A qué me dedico?
Desarrollar aplicaciones web
Sistemas de procesamiento real y distribuido
Intentar mejorar la forma de hacer SW
Madrid
Paradigma
BigData: Scala, Storm,
Spark, Cassandra...
Alberto Rodríguez de Lema
https://github.com/ardlema/tdd-bowling-demo
“As a <type of user>, I want <some goal> so that <some reason>.”
Full transcript