Sesiones Agile Open Space 2009 parte 1

En la jornada del sábado después de mucho pensarlo y de tener que descartar algunas charlas en las que me hubiera gustado participar, asistí a las siguientes sesiones:

Lean in agile adoption
En esta sesión Xavier Quesada realizo una introducción a los principios de lean.

Lean trata de eliminar desperdicios y clasifica estos desperdicios en 7 tipos. Lean sobre todo se utiliza en procesos de fabricación en linea, a pesar de eso los principios de lean se pueden aplicar al desarrollo de software.

Xavier también nos explico una herramienta aparentemente simple pero muy efectiva a la hora de encontrar cuellos de botellas en los procesos de una empresa, el Value Stream Mapping.

Control de proyectos con Scrum, métricas ágiles
Rodrigo Corral dirigió esta charla sobre la utilización de métricas para realizar un seguimiento correcto de los proyectos que utilizan Scrum.

Para poder realizar un seguimiento del proyecto necesitamos descomponer las historias de usuario en tareas binarias(esta realizada o no esta realizada) y con una duración de máxima de 2 días.

Realizar una buena estimación es también muy importante. En el proceso de estimación durante el Sprint Planing meeting tiene que participar todo el equipo, de esta manera obtenemos una ganancia de informacion que nos ayudara a obtener una estimacion mucho mas precisa.

Para realizar el seguimiento Scrum nos proporciona el Burndown chart, el cual aporta toda la información necesaria para saber si vamos bien o nos estamos retrasando.

Acceptance Testing (ATDD) y TDD

El acceptance testing es el proceso para obtener casos de prueba desde las historia de usuario y posterior automatización siguiendo TDD.

El proceso seria el siguiente:
Historia Usuario -> Criterios Aceptación -> Test Aceptación -> Casos de prueba (ejemplo que cumplen o no los criterios de aceptación).

Los casos de prueba se implementan siguiendo TDD.

Es importante realizar el test antes de la funcionalidad. Si realizas la funcionalidad antes del test cuando vas a realizar el test tendrás una predisposición a realizarlo para que pase el código que has implementado anteriormente.

Los test también son requerimientos y documentación.

Existen dos herramientas que nos ayudan en el proceso, Concordion y Cucumber.

Kanban

Kanban(visual card) se dio a conocer cuando Toyota explico su sistema de producción.

Kanban se basa en:

  1. Limitar el WIP (work in progress)
  2. Pull & flow, los elementos no se empujan del anterior al siguiente si no que es el siguiente el que pide los elementos al anterior.

Kanban utiliza el sistema de colas para gestionar el trabajo por hacer, un ejemplo de cola típica aplicable al desarrollo de software es el siguiente:
Request -> next -> slots -> done

A la conclusión que llegue es que kanban sobre todo encaja bien en procesos de mantenimiento o helpdesk, aunque también hay ejemplos en los que utilizan kanban para el desarrollo de software.

Bugs Agiles

Esta sesión fue un coloquio entre los asistente para intercambiar experiencias sobre como gestionar los bugs siguiendo una metodología ágil como Scrum.

Primero tenemos que distinguir entre dos tipos de bugs, los bugs stoppers, estos son los causantes de que tengamos que parar lo que estamos haciendo para solucionarlos, y los bugs planificables, son bugs que permiten seguir trabajando al usuario y los podemos resolver en el siguiente Sprint.

Con los Bugs planificables no tenemos problemas ya que podemos planificarlos para el siguiente Sprint, lo único que tenemos que tener en cuenta es si los utilizamos para medir la velocidad del equipo o solo utilizamos la nueva funcionalidad para medir la velocidad.

Para los bugs stoppers lo que podemos hacer es tener un encargado en el equipo de solucionarlos con un factor de foco menor que el resto de componentes del equipo. Esta es una solución pensada para empresas pequeñas, en empresas mas grandes pueden tener un equipo dedicado al mantenimiento.

La experiencia de haber asistido al Agile Open Space 2009 ha sido muy positiva, mucha gente del sector con las misma inquietudes y los mismos problemas. Sin duda se lo recomiendo a cualquiera que estés interesado en las metodologías ágiles.

Desde aquí agradecer a los organizadores y a los patrocinadores el esfuerzo que han realizado para que se pudiera celebrar el Agile Open Space, Gracias !!!.

No Comments | Filed under I2E, Scrum

Agile Open Space 2009 Jornada Inicial.

El pasado fin de semana  estuvimos en el primer Agile Open Space que se celebraba en España, concretamente en la Universidad Politécnica de Madrid, este evento reunió aproximadamente a 160 persona de diferentes puntos de España (y algunos del extranjero) con un interés en común, las metodologías ágiles.

En la jornada del viernes se realizo la presentación al evento y se procedió a la proposición y elección de las distintas charlas que se celebrarían durante la jornada del Sábado. Aunque el proceso para la elección de las charlas pueda parecer caótico resulto ser realmente eficiente. Primero se presentaron las charlas por parte de los asistentes que estuvieran interesados en algún tema en concreto, posteriormente se procedió a votar las charlas propuestas, cada asistente solo tenia 3 votos. Una vez realizados los votos se agruparon las charlas con temática parecida y se ordenaron las sesiones intentando que las mas solicitadas no se solaparan. El resultado final es este panel (foto realizada por Angel Medinilla):

Como podéis ver en la foto, la jornada del sábado constaba de 5 sesiones con 6 tracks diferentes por sesión, esto requería de un esfuerzo de priorización importante. Debido a la gran cantidad de buenas charlas nos separamos para poder asistir a mas sesiones e intercambiar impresiones. En posteriores post os vamos a hacer un resumen de las charlas a las que asistimos Jose Luis y yo.

No Comments | Filed under I2E, Scrum

MDA en I2E

Hace unos días publicábamos la presentación que realizamos en el Especialista Universitario Java Enterprise , con un ejemplo practico de como utilizamos MDA junto con Scrum.

Hoy publicamos la presentación de la parte teórica, en ella realizamos una introducción al desarrollo dirigido por los modelos, a MDA, como integrar MDA con metodologías ágiles como Scrum o AUP y por ultimo las herramientas que utilizamos como soporte al proceso de desarrollo.

Si tenéis cualquier duda o queréis ampliar información no dudéis en poneros en contacto con nosotros.

No Comments | Filed under AndroMDA, I2E, MDA, MDSD, Scrum

Introducción a Scrum en 10 minutos

Si aun no conoces Scrum y quieres saber de que va sin invertir demasiado tiempo, en el siguiente vídeo explica en que consiste Scrum de una manera bastante amena.

Si después de ver el vídeo te has quedado con ganas de mas, os recomendamos las siguientes webs:

ScrumManager

Navegapolis

Proyectos Ágiles

Presión Blogosférica

No Comments | Filed under Scrum

Curso de Scrum de Proyectalis

El pasado 14 y 15 de octubre asistí al curso de Scrum impartido por Ángel Medinilla de Proyectalis. Es un curso muy ameno que se me hizo corto, te da una muy buena visión de la gestión de proyectos ágiles en utilizando Scrum. Ademas de que el contenido del curso es bueno, Ángel lo explica de una manera amena y entra en la arena del debate lo que lo hace aun mas enriquecedor (esto también depende de los asistentes :-D).

Entre los conceptos mas importantes del curso me quedo con los siguientes:

Los principios básicos de Scrum, los cuales no son negociables:

  • Las personas.
  • Scrum diario.
  • Time Boxing (el tiempo esta fijado).
  •  Producto terminado y potencialmente utilizable.
  • Autogestión de los equipos.
  • Desarrollo iterativo e incremental.
  • Solo el equipo maneja la pila del Sprint, solo el dueño del producto maneja la pila del producto.
  • Retrospectivas.

El triangulo que forma las 3 variables de un proyecto: Tiempo, Requisitos y Recursos. Para gestionar un proyecto de forma exitosa solo deberías fijar 2. Por ejemplo en el caso de que tengas el presupuesto y la fechas fijadas entonces los requisitos son variables(negociables). El mayor problema de fijar los 3 es que al final lo que disminuye es la calidad (que quedaría en el centro del triangulo), y la calidad no es negociable.

Un curso muy recomendable si tienes la oportunidad de asistir, aunque si tienes presupuesto para consultoria también puedes encargarle un curso a la medida (no me llevo comisión :-D).

3 Comments | Filed under Ingenieria Software, Scrum

Arquitectura de LinkedIn

Los ingenieros de la LinkedIn estuvieron en la Java One presentando la arquitectura que utilizan, son dos presentaciones muy interesantes, a modo de resumen destacamos lo siguiente:

Toda la arquitectura esta implementada con tecnologías java, entre otras utilizan Spring, Lucene, Grails. Utilizan Eclipse como entorno de desarrollo.

Ademas de la arquitectura actual nos muestran la evolución que ha tenido la arquitectura para poder soporta el gran volumen de visitas que tienen actualmente.

Aunque no lo ponen explícitamente viendo el proceso de ingeniería y la herramienta que utilizan para la gestion de los proyectos (Jira/GreenHopper) podemos suponer que utilizan Scrum.

En definitiva otro ejemplo real de que con java se pueden montar grandes sistemas con un buen rendimiento.

No Comments | Filed under Arquitectura Software, Noticias, Scrum, Web 2.0

La difícil tarea de planificar

Unos de las tareas mas difíciles (si no la mas difícil) a la que nos enfrentamos al abordar el desarrollo de software es realizar la planificación del trabajo a realizar. Para muchos proyectos necesitamos realizar una planificación bastante detallada ya sea para presentar un presupuesto a un cliente o si es una aplicación interna para estimar las fechas de entrega. También hay que tener en cuenta que este plan los vamos a tener que ir revisando Sprint a Sprint para adaptarnos a los cambios que nos encontremos por el camino.

Un buen recurso donde podemos aprender como planificar proyectos si utilizamos Scrum es el libro Agile Estimating and Planning, cubre todos los pasos necesarios para realizar la estimación, la planificación y el seguimiento de los proyectos.

El libro se divide en en siete partes:

Parte I: Realiza una introducción al propósito de la planificación y a la planificación ágil en particular.

Parte II: En esta parte se adentra en estimar el tamaño del trabajo a realizar. Nos proporciona dos medidas para calcular el tamaño, los puntos de historia y los días ideales.

Parte III: Una vez estimado el tamaño tenemos que priorizar las historias para saber en que orden se van a desarrollar.

Parte IV: Lo siguiente es decidir la longitud de las iteraciones y calcular la velocidad para calcular cuanto vamos a tardar en recorrer el tamaño estimado y en base a esto decidir las fechas de entrega. También nos explica a usar los buffers como herramienta para manejar la incertidumbre.

Parte V: Una vez comenzado el proyecto tenemos que realizar un seguimiento del proyecto comparándolo con lo planeado y adaptar el plan si fuera necesario.

Parte VI: Porque la planificación ágil funciona.

Parte VII: Un ejemplo practico donde se pone en acción todo lo visto anteriormente.

En definitiva un libro muy recomendable donde se expone de manera clara y practica todo lo necesario para poder planificar nuestros proyectos si utilizamos Scrum.

No Comments | Filed under Ingenieria Software, Libro, Scrum

Comenzando con Scrum

En I2E hemos comenzado a utilizar Scrum para la gestión de los proyectos de desarrollo. Después de muchas horas de lectura y de probar otras metodologías, nos hemos decido por Scrum.

Scrum nos proporciona una metodología para realizar los proyectos, también nos proporciona herramientas como el burn-down y el burn-up para realizar el seguimiento del desarrollo. Hace hincapié en el feedback continuo entre el equipo de desarrollo con las reuniones diarias y con las retrospectivas al finalizar el Sprint, y también en el feedback continuo con el cliente al entregar un incremento completo al final de cada Sprint.

Podemos complementar Scrum con otras practicas ágiles por ejemplo de XP u otras metodologías que conozcamos. Lo importante es que si utilizamos Scrum vamos a estar mas preparados antes los cambios, y en el desarrollo de software la única cosa segura es que durante el desarrollo las cosas van a cambiar.

Ademas Google, Yahoo y otras grandes compañias utilizan Scrum, lo cual quiere decir que ya esta sobradamente probado y se ha comprobado que funciona.

Estos son algunos de los recursos disponibles que hemos utilizado para aprender sobre Scrum.

Blogs:

Navegapolis
Presión Blogosférica
La masa, el ladrillo, la bota, el bocadillo… Scrum Log

Bibliografia:

Flexibilidad con Scrum
Scrum and XP from the Trenches y su traducción: Scrum y XP desde las trincheras
Agile Estimating and Planning
User Stories Applied: For Agile Software Development
Agile Project Management with Scrum

2 Comments | Filed under Ingenieria Software, Scrum