Retrospectiva de Agile Spain 2010, la primera conferencia sobre metodos ágiles en España

Estas son mis notas y retrospectiva acerca de la Conferencia Agile Spain 2010, la primera conferencia de metodologias ágiles en España celebra en Madrid durante los días 10 y 11 de Junio.
Jueves 10 de Junio
Llegué bastante pronto en el cercanías a Vallecas. Pensé que sería de los primeros. En el camino, coincido con algunos de los chicos de Mobivery y me uno a ellos en la “ginkana” que nos llevaría hasta la zona de recogida de acreditaciones. Una vez allí, mucha gente ya esperando, algunos con camisetas amarillas moviéndose de un lado a otro a un ritmo frenético, ultimando los detalles.
Tras unos minutos deambulando por la sala y reconociendo el terreno en busca de alguna cara conocida me doy cuenta de que no conozco a nadie… ¿Cómo puede ser que ningún compañero de facultad esté por aquí? O ¿algún antiguo compañero de trabajo? Me doy cuenta de que he de ser ágil si quiero integrarme un poco.
Se abre la recogida de acreditaciones. En la fila oigo voces de latinoamericanos detrás mío. “Estos no son de Vallecas”, pienso… Nos presentamos. Se trata de Facundo, Fernando y Francisco, socios de la empresa 3F Soluciones Informáticas y recién llegados de Argentina. Desayunamos juntos y empiezo a conocer a algunos twitteros como Jorge Uriarte y Carmen Vidal.
Tras la presentación del evento por el parte del equipo organizador (Agustín Yagüe, Xavi Albadalejo, Juan Garbajosa), comienza la Keynote de Henrik Kniberg, titulada “The essence of Agile”. Henrik disfruta explicando e introduciendo todos esos términos que posteriormente se desarrollarían en sesiones y talleres (SCRUM, XP, Pair Programming, etc.)
Comienzan las sesiones y la gente comienza a desperdigarse…
Behavior Driven Development aplicado en Acceptance Test Automation (Christian Ramírez)
Llego a la sala y está repleta de gente. Mucha gente de pié y algunos en la puerta. Entro y decido sentarme en el suelo, practicando la postura del sastre con el portátil en las piernas.
Christian nos explicó el lenguaje que se utiliza a la hora de definir los tests de aceptación automáticos y que permite centrarse en el negocio. Se habla de las historias de usuario como herramienta para capturar los requisitos de un proyecto y describir las unidades mínimas de funcionalidad a implementar.
En la segunda parte, Christian nos explica dos herramientas concretas:
- Cucumber, que soporta más de 30 idiomas y está basado en el lenguaje Gherkin. Funciona con Ruby, Java, .NET, Python y otros.
- Twist. Herramienta de ThoughtWorks con un IDE propio.
Por último vimos un ejemplo de código de un proyecto real. Por problemas de la conexión con la wi-fi, Christian no pudo ejecutar la demo que traía preparada
.
Enterprise Scrum – Scrum en la empresa (Xavier Quesada)
Salgo rápidamente a la siguiente sala. Resuelvo de nuevo la “ginkana” y llego a tiempo. Aula más grande y muchos sitios libres. Xavier comienza la charla de fórma ágil con un experimento. Nunca había asistido a algo así. Los asistentes propusimos y priorizamos los temas a tratar.

Empezamos hablando sobre las distintas condiciones que podían darse en una empresa referidas a la implantación de metodologías ágiles (apoyo de la gerencia o no, existencia de algún proyecto piloto,experiencia previa, etc). Me gustó el concepto de “Scrum de Guerrilla”, es decir, utilizar métodos ágiles sin que nadie lo sepa, ya sea a nivel individual (con prácticas como TDD) o a nivel de equipo. Si en tu empresa no te permiten hacer Pair Programming, tendrás que “Pair under the radar”
.
Xavi recomienda contratar a un ScrumMaster al principio para guiar al equipo en algún proyecto piloto de pequeña envergadura y nos relata de forma muy amena algunas de sus experiencias pasadas y actuales en Bélgica.
Pasamos a hablar de Prácticas Técnicas que todo equipo ágil debe utilizar: Control de versiones (parece mentira pero hay gente que no lo usa), Integración Contínua que permita hacer despliegues automáticos y que incluya un ambiente de prubas, una cobertura mínima de Tests funcionales automatizados (por ejemplo con Selenium) y Tests de unidad.
El tiempo pasó rápido y hubo muchas preguntas en la sala, dando lugar a un interesante debate.
Comida
Quite hungry, I head towards the restaurant. I’m alone again. I don’t find any familiar face around. Fortunately, I realise that Erling Wegger Linde is the person behind me in the queue. I don’t have the oportunity to speak to a Thoughtworks‘s employee everyday, so I don’t doubt it and start talking to him. We ended up having lunch together and I had the oportunity to ask him about his company, about life in London and Norway, and about the industry of software development. I had a very good time. Thanks dude!
Pair Programming Strategies (Erling Wegger Linde)
Earling me abandona para terminar su presentación, y yo busco a los chicos de 3Fs para “platicar” un rato con ellos. Conozco a Joseba y a otro chico más de Bilbao y hablamos hasta que Jorge Uriarte nos avisa de que ya es la hora.
Me dirigo al taller de Pair Programming and when I arrive, the classroom it’s full again. I manage to find a chair and I sit at the back of the classroom. Beside me, Mike Scott sitting on the floor.

It was my first time to take part in an Open Space Session. After a short introduction by Erling, we proposed tracks to talk about, prioritize them and choose three of them. I participated in the “How to get started with Pair Programming” one, mostly because I have never practiced Pair Programming inside a company, and also because Henrik Kniberg was there and I felt like speaking in english. Henrik talked us about “Ping pong pair programming” which consists in one person writting a test and switching the keyboard to the other person so that he/she has to write the code to make the test pass. He proposed that the driver should program for 3 minutes and “slide” the keyboard to his partner. We also talked about things like visualizing the current story the programmers are working on, the needs of a special physical space to pair program, the pressure and necessary resting periods, etc.
Among my group, there were some members of Mobivery, a programmer from EA, Mike Scott, and more.
The rest of the groups talked about “Distributted Pair Programming” and another topic I don’t get to remember
.
After a short presentation of each group’s results, Erling asked us to evaluate his session with some Post-its on the door (see the picture on top of this post).
I ended up with the convinction that Pair Programming can be really useful and its regular practice can reduce the number of bugs in the code. I’ll have to practice it from now on
. Erling posted a summary of the discussions in his blog.
Integración Continua punta a punta (Xavier Quesada)
Continúo de nuevo in Spanish. Me quedo sin bajar al café para asegurarme un sitio en la siguiente charla. Volvemos con Xavier Quesada. La sala 4 abarrotada. Las personas que están fuera fuera del aula se quejan (con razón) y los organizadores deciden cambiarnos de sala. Nada grave, los agilistas recibimos con gusto los nuevos requisitos
.

Xavi retoma la charla a toda pastilla y comenta las claves de la integración contínua:
- Usar un sistema de control de versiones (Git está de moda, pero SVN también vale lógicamente)
- Hacer varios commits al día.
- Llevar a cabo la integración contínua cada vez que se hace un commit. Remarca que este proceso no debería tardar más de 10 minutos.
Después comienza a dibujar en la pizarra su entorno de integración ideal, que incluye:
- Los desarrolladores con su PC y BD propia,
- Un ambiente de testing con una BD predecible, donde se ejecutan los tests de regresión y con posibilidad de refrescar los datos de prueba,
- Un ambiente demo donde se ejecutan los User Acceptance Tests y que, dada la fiabilidad del deploy en este punto, puede atacar a los datos de producción para ejecutar estos tests.
- Ambiente de producción.
Reconozco que me suena todo un poco a ciencia ficción y que nunca he trabajado en un entorno tan complejo (aunque me encantaría verlo funcionando). Ante la pregunta de “¿De donde sacamos tantos ordenadores en la empresa para montar esto?”, Xavi responde muy expontáneamente “¡Los robais!”. Risas mil en el público.
Prácticas de programación para hacer realidad la agilidad: Refactorización, IC y TDD (Alberto Pérez y Carmen Vidal)
La última charla del día, cortesía de Carmen Vidal y Alberto Pérez, de Paradigma Tecnológico(patrocinador de la conferencia). Carmen comienza nombrado los nombres de algunos twitteros como Israel Alcázar, Joaquín (A.K.A. Kinisoftware), y el mío propio, por sendos posts en los que publicamos que asistiríamos a su charla. Gracias a estos comentarios tuve la oportunidad de desvirtualizar a Israel y Joaquín
.
La afluencia es masiva aunque se ven ya caras de cansancio (incluída la mía). Carmen y Alberto dieron un muy buen repaso a muchas de las técnicas propias del desarrollo ágil: testing, refactoring, propiedad colectiva del código, etc. La charla fue muy completa, aunque varias cosas ya habían sido explicadas (al menos en mi itinerario) en sesión anteriores. Me sirvió para descubrir una empresa en la que seguramente no me importaría trabajar
.
Termina el Jueves y vuelvo a coincidir con Erling, con quien comparto el viaje de vuelta en metro. Seguimos charlando sobre las diferencias entre las ciudades europeas y llegamos a la conclusión que son todas bastante parecidas en general.
Viernes 11 de Junio
Llego bastante justito de tiempo al Panel. Interesante discusión con varias figuras claves en esto del agilismo. Preguntas y respuestas fluyen por el auditorio. Pregunto por twitter por qué no se está enseñando esto ya en la universidad. Alguien por detrás grita: “¡La universidad es Waterfall!”. Muchas risas. Juan Garbajosa contesta que lógicamente no es muy sencillo modificar un plan de estudios. Me quedo tranquilo al saber que gente como él y Agustín Yagüe están metidos en el equipo docente de la UPM.
Actualmente trabajo en la Universidad de Oviedo y estoy en un punto en que debo decidir si continuar mi carrera profesional por la rama de la Investigación. Me interesaba mucho la sesión de contribuciones para ver sobre qué se está investigando en estos temas pero… no podía irme de Agile Spain 2010 sin ver una sesión de Ángel Medinilla. Cambié ágilmente mis planes y decidí ir a ver la primera sesión de Ángel y la segunda parte de la sesión de Contribuciones…
Gestión Ágil de equipos (Ángel Medinilla)
Cómo Ángel ha colgado su presentación, la incrusto aquí porque creo que merece la pena verla. Ángel es un auténtico “showman” y consigue ganarse al público con sus experiencias y analogías. Habló de liderazgo, de motivación a los equipos de desarrollo, anti-patrones en la gestión de equipos, etc. En definitiva nos dió las claves para un correcta gestión de un equipo, sin estructuras verticales, eliminando la cultura del miedo, etc. He aquí su presentación:
Me gustó mucho el “Piensa en el peor jefe que hayas tenido y nunca hagas lo que te hizo a tus empleados. Piensa en el mejor jefe que hayas tenido y sé como él cada día con tus empleados”.
Contribuciones (2ª parte)
Me incorporo a la 2ª parte de la sesión de contribuciones. Muchos comentarios en twitter apuntaban a que estaba siendo un éxito. Se presentan algunos papers muy interesantes. Me gustaron especialmente KOWLAN: A Multi Agent System for Bayesian Diagnosis in Telecommunication Networks por mostrar un caso real de implantación de Scrum en una empresa de gran tamaño como Telefónica I+D (donde por cierto inicié mi carrera profesional) y Spanish vs European Agile Methods Adoption: Results of an Empirical Study, que compara la implantación de metologías ágiles en España y Europa.
En definitiva una fuente de inspiración para posibles artículos de investigación en estos temas. Al final de la sesión tuve la oportunidad de hacerme con un ejemplar de las “Actas de 1ª conferencia de Agile-Spain CAS 2010″ donde se incluyen todos los papers. Thanks!
Se nos echó el tiempo encima y salí a comer rápidamente junto con Facundo, Fernando y Jorge Uriarte.
Gestión ágil de requisitos – Construyendo nuestro backlog (Jose Luis Soria)
Pasamos a una de las charlas que más ganas tenía de ver para intentar solucionar muchas de mis dudas sobre las historias de usuario y el Product Backlock.
En esta charla, Jose Luis nos contó el formato de las historias de usuario y tests de aceptación. Una de mis dudas era cuando y en qué medida hay que detallar las historias de usuario. Según Jose Luis se debe:
- Detallar lo suficiente para poder empezar a trabajar.
- Detallar más las historias más importantes (que saldrán antes del Backlog).
- Esperar a que los detalles más concretos surjan y aborden durante el desarrollo.
Se habló de las características que debe cumplir una buena historia de usuario: INVEST.
Algunos consejos referentes a las historias de usuario:
- Dividir las historias hasta que proporcionen funcionalidad demostrable.
- Las historias deben estar basadas en objetivos del usuario.
- El aumento de detalles debe ser progresivo.
- No detallar demasiado las interfaces de usuario.
- Hay cosas que no son historias ()
- Especificar bien los roles de los usuarios.
- Tratar los requisitos no funcionales como restricciones de cada historia, en la parte de los tests de aceptación.
Posteriormente, Jose Luis habló un poco sobre las distintas formas de realizar las estimaciones, ya sea en forma de medidas absolutas (días, horas, etc) o de medidas relativas (tallas de camiseta, puntos de historia). Se discutieron las ventajas de cada sistema y tengo la sensación de que la gente se decantaba más por el sistema absoluto por ser más objetivo, robusto y coherente en el tiempo.
Por último Jose Luis nos introdujo algunos “bad smells” en proyectos ágiles:
- Historias de usuario demasiado pequeñas.
- Historias de usuario dependientes entre sí.
- Requisitos inventados por los usuarios.
- Historias de usuario con demasiados detalles.
- Historias dificilmente priorizables.
- Clientes que no se involucran en el proyecto.
Charla muy productiva para mí. Muchas dudas resueltas, aunque supongo que en la práctica no será todo tan bonito como aquí se pintó
.
Integrando prácticas ágiles y de experiencia de usuario en Telefónica I+D (Mónica Izquierdo y Ana Mª de Alarcón)
La charla sobre la experiencia de Telefónica I+D me interesaba porque, como comenté anteriormente trabajé allí durante 6 meses durante mi último curso de carrera… y no recuerdo que la cosa fuese muy ágil por aquellos entonces
. Me senté en una de los laterales de la sala para enchufar el portátil y poder seguir tomando notas.
Las ponentes comenzaron introduciendo la iniciativa “Agile Telefónica I+D” explicando como un grupo de personas tomaron la iniciativa y empezaron a investigar y evangelizar a los compañeros en temas de metodologías ágiles. Actualmente forman parte de un grupo dentro de TID destinado a asesorar en temas de métodos ágiles a sus propios compañeros.
Mónica y Ana explicaron 8 puntos clave para la implantación de metodologías ágiles:
- Equipo de UX, diseñadores y desarrolladores forman un único equipo.
- Un representante de UX forma parte del Product Owner Team.
- Realizan user insights para generar ideas o productos.
- Utilizan Personas como método guía para identificar las historias de usuario.
- Realizan un trabajo de conceptualización y diseño previo.
- Utilizan la técnica de Parallel Tracks para abordar el problema del diseño de interfaces: La historia de usuario se diseña en un sprint y se codifica en el siguiente.
- Prueban continuamente los incrementos con usuarios finales, y disponen de un entorno ficticio donde realizar estas pruebas.
- Realizan documentación de lo imprescindible, dando prioridad a la comunicación cara a cara.
Me gustó especialmente porque se hizo mucho hincapié en el tema de la Experiencia de Usuario, algo que yo considero sumamente importante para el éxito de un proyecto. Sin duda, se enfrentan un gran reto y un trabajo apasionante al mismo tiempo.
Testing de aceptación con Ruby (Luismi Cavallé y Sergio Gil)
La última sesión fue bastante intensa. Luismi Cavallé y Sergio Gil nos sorprendieron con una presentación muy bien preparada y algunos ejemplos en video. En la sala, algunos cracks como David Calavera y Fernando Guillén, a quienes me había presentado en un descanso.
Volvimos a repasar el formato de los tests de aceptación y escenarios en las historias de usuarios y Luismi nos mostró cómo estos pueden ser generados a partir de una descripción textual con Cucumber. Tendremos que probarlo.
Sergio nos explicó Capybara, un DSL que permite simular el comportamiento de un navegador en un lenguaje cercano a los usuarios. Entre otras acciones, es posible: visitar una página, pinchar enlaces, rellenar campos de texto, marcar checkboxes, comprobar que una página ha renderizado determinados elementos, etc. También explicó las características de algunos de los drivers:
- Rack Test (Viene por defecto)
- Selenium (De facto, depende de Java, el único que usa realmente el navegador)
- Celerity/Culerity (depende de Java)
- Envjs (Basado en SpiderMonkey)
Sergio presentó finalmente la herramienta que ellos utilizan, y que ha sido creada por el propio Luismi: steak, otro DSL para describir tests de aceptación en Ruby.
Por si no fuera poco, hicieron un repaso de más herramientas y técnicas: fixture replacement (en Ruby puro o con Factory Girl y similares), delorean (volver al pasado), database cleaner, email spec, webmock (simulación de peticiones http), y MundoPepino (Colección de pasos muy genéricos).
He de decir que al final quedé un poco abrumado con tantos “productos” diferentes y no sé si algún día tendré tiempo de probarlos todos, pero la sesión mereció la pena.
Conclusiones
Terminaron las sesiones y participé en la última parte de la Retrospectiva. En general casi no hubo comentarios negativos, sí algunos puntos en los que se podría mejorar.
Personalmente quedé muy satisfecho con el encuentro. Salvo las mínimas molestias ocasionadas en la sala 4, que quedó un poco pequeña en algunos casos, me pareció un precio muy razonable y 2 días me parece una duración adecuada (más tiempo habría sido mucho para participantes y organizadores). Aprendí mucho, aunque finalmente me quedé con ganas de apuntarme a algún taller para practicar un poco.
Lo más importante para mí, sin duda alguna, fue comprobar que cosas sobre las que llevo leyendo algunos meses son ya una realidad en España, y que hay una auténtica comunidad de personas muy motivadas que utilizan y promueven las metologías ágiles en España. Poder compartir un tiempo con ellos, es algo que no tiene precio
.
Aprovecho para felicitar a la organización. ¡Nos vemos en la próxima!

Excelente retrospectiva Pablo. No me perderé la próxima conferencia. Estate seguro.
Me interesó especialmente la keynote acerca de la gestión ágil de equipos. Por cierto, las slides son muy zen, estoy seguro que la presentación habrá sido de gran calidad!
Qué crack Pablo, se nota que no te perdiste ni un solo detalle. Felicidades por el post. Está muy trabajado.