Noticias javaHispano.org

domingo, 27 de junio de 2010

Resumen de sesiones en CAS2010 (Día 1)

Hacía tiempo que tenía pendiente hacer esta entrada, pero por diversas circunstancias nunca encontraba un rato para sentarme y volcar todo lo que viví esos días de Junio.
Voy a hacer breves resúmenes de las sesiones a las que me presenté:

Día 1

1. Keynote de Henrik Kniberg: The Essence of Agile

Debo reconocer que tengo debilidad por este hombre. Desde que devoré su libro Scrum and XP from the Trenches y me mostró cómo trabajar con una metodología desde el núcleo de un equipo y que funcionaba y no era un rollo a seguir con una guía de buenas maneras, sino algo sencillo y directo que todo el equipo se podía leer de una manera rápida y entendible para ponerla en práctica.

En cuanto sacó el siguiente libro Kanban and Scrum - making the most of both me atrajo porque conocía su lenguaje directo y porque en ese momento me interesaba profundizar en Kanban. Por esto participé modestamente en su traducción al castellano como he hablado en un post anterior.
La keynote fue un gran resumen en una hora de las metodologías y prácticas ágiles, explicado de una manera sencilla y poniendo cada cosa en su lugar. Con un mensaje directo y fluido nos introdujo en la agilidad, explicando los conceptos de Scrum y XP, referencias al Manifiesto Agil y a autores como Ken Beck y Robert C Martin.
La segunda parte de su presentación se orientó hacia Kanban, sacando referencias que aparecen en su segundo libro y mostrando diferentes escenarios y cómo trabajarlos con Kanban.
Me quedo con una palabra de su presentación: ¡Experimenta!

2. Desarrollo de aplicaciones en la nube con Scrum y XP (Leo Antoli e Iván Zaera)

Tenía ganas de que alguien me contara qué es eso de la nube, el Cloud Computing y cómo llevarlo a la práctica.
Leo e Iván cumplieron con mis expectativas, salvo que no vi la relación directa con Scrum como ponía el título, supongo que realmente eran las ventajas de trabajar en la nube en un equipo ágil.
Comenzaron distinguiendo las diferentes capas que nos encontramos en estas tecnologías: SaaS, PaaS e IaaS, y para cada una de ellas pusieron ejemplos como Google Docs, Google App Engine, Azure y Amazon EC2.
La charla se centró en GAE (Google App Engine) que es con lo que ellos estaban trabajando. Las razones para trabajar de esta manera las resumieron en 2: precio y mantenimiento. La primera azón, el precio, porque el hosting es menor que en un servicio tradicional y porque pagas por consumo. El mentenimiento es mucho más evidente, ya que Google se encarga del mantimiento planificado y el no planificado, siendo transparente para nosotros.
Sin embrago también hay que saber cuáles son las limitaciones que tiene GAE, y no son pequeñas: tiempo de respuesta limitado a 30 segundos y base de datos noSQL (DataStore en terminología GAE).
La primera limitación nos puede dar quebraderos de cabeza si queremos hacer uploads, y también en la primera carga de una página, ya que tiene que arrancar todo y tenemos ese límite de 30 segundos. Otro problema es que la aplicación está en máquinas distribuidas, si te mueven la aplicaciónde una máquina a otra hay que volver a levantar todo el contenedor y puede ser un incordio si la aplicación es pesada. No lo controlas tú.
Para el futuro plantean introducir MySQL, aunque el uso de noSQL es precisamente porque las base de datos relacionales no son escalables (o casi imposible).
Para garantizar la alta disponibilidad la sesión debe ser serializabe y no pude ser una sticky session. Esto es un problema para aplicaciones con JSF y su gestión de datos en sesiones (habría que serializar toda la información de los diferentes componentes de una página JSF).
Respecto al rendimiento hablaron de dos elementos:
  • Cola de tareas (API experimental)
  • Servicio memcache
Explicaron por encima las diferencias entre SQL y noSQL, y alí con una sensación de absoluto desconocimiento y de cambio de mentalidad bastante fuerte. Habrá que darle una vuelta.
Para la pruebas diferenciaron dos puntos:
  • Pruebas en Servidor: con un Runner de JUnit que se sube al GAE
  • Pruebas en Cliente: soporte JUnit para GWT (lento) o usar el patrón MVP
Respecto a la Seguridad en la nube: es una cuestión de confianza y cultural.
Versioneado: Trabajan con varios entornos (dev, pre, pro / entornos cliente / funcionales...). Hay un límite de despliegues al día, 100 y sólo se pueden hacer cada 15 minutos.

3. Enterprise Scrum (Xavier Quesada)

En esta sesión Xavier Quesada esperaba la asistencia de personal de grandes empresas y del apartado de gestión  y se encontró con una mayoría de técnicos que no habíamos entendido el sentido de Enterprise (o sí) y queríamos saber cómo emter agilidad en nuestra empresa, aunque fuera tomando como modelo ejemplos de grandes corporaciones.
Xavier es una persona que sabe cautivar al personal y desde su gran experiencia nos hizo elegir de qué hablar en la sesión partiendo de 5 puntos, de los cuales tratamos tres:

-> Lidiar con la metodología actual

En este caso es importante contar con el apoyo de la gerencia para provocar el cambio. Detectamos varios problemas que hay en este cambio. Importante si lo hacemos desde abajo que los compañeros estén convencidos, los requerimientos siempre están visibles y conforman el backlog para trabajar. Si eres gerente, provocar el cambio es difícil por la resistencia que encontrarás. En este caso es mejor traer a alguien de fuera que explique la metodología y haga un coaching de la misma para adaptar los equipos a la nueva cultura.

-> Prácticas técnicas
Control de Versiones, Integración Contínua (despliegue automático y ambientes de testing) y Unit Test.

-> Cómo empezar

Trabajar con un proyecto piloto es la mejor solución. Con un tiempo limitado para mostrar los resultados del mismo ante la gerencia. Los resultados y beneficios hay que mostrarlos en calidad de dos parámetros: velocidad y software entregado y dentro de presupuesto.
Tener en cuenta que la velocidad no es la medida de la productividad.
Para mostrar los resultados hay unos indicadores:
Calidad dada mediante el número de bugs en User Acceptance Test, número de bugs en Producción durante el periodo de garantía.
Satisfacción del cliente, es algo objetivo pero igualmente válido
Encuesta del euipo de desarrollo para comparar con la metodología anterior.


4. Gestión ágil de la configuración (José Luis Soria)

La verdad es que de esta sesión esperaba más. No por ello estuvo mal, sino que le había puesto el listón muy alto y lo que me contaron ya era en cierta forma conocido por mi.
Dentro de la gestión de la configuración sólo se habló del control de versiones y sus estrategias.
Notas tomadas: seguir un modelo de aislamiento mediante una estructura de branches (qué ramas hay y su objetivo), ante una nueva funcionalidad crear una nueva branch, y definir el completado de funcionalidad, cuándo realizar el acercamiento de una rama a la troncal o master.

5. Comunidades locales de Agile Spain (Jorge Jiménez y David Esmerodes)

Esta me la guardo para una entrada propia en el blog, ya que fui protagonista de la misma



No hay comentarios: