Si sabes inglés, este video explica muy bien en 8 minutos en qué consiste: Scrum in under 10minutes (algún día lo subtitularé).
Si no sabes inglés, empezaré por este diagrama que condensa la esencia del método Scrum:
El principal objetivo de Scrum es crear valor al producto por capas. Esto es importante. Al contrario que el modelo de cascada donde se todo se especifica al principio en largos documentos, luego se diseña, se implementa, se prueba y se entrega, en Scrum el producto se crea por etapas o módulos que se van añaden van añadiendo al producto por capas.El desarrollo del producto se organiza por iteraciones de corta duración (una, dos, cuatro semanas; el dibujo pone 30 días). El producto se desglosa en "historias de usuario" (user stories) que siempre han de añadir valor al producto. Una historia de usuario no es mas que una descripción corta (tres líneas) de una determinada funcionalidad que el cliente quiere añadir a su producto. El conjunto total de historias de usuario es lo que en el dibujo se llama "product backlog".
Al comienzo de cada iteración se seleccionan un conjunto de historias que han de ser desarrolladas, probadas y entregadas al final. Esto es lo que en el dibujo se llama Sprint backlog.
A lo largo de la duración de la iteración se piensa, se diseña, se desarrola, y se prueba el producto. Se sostienen reuniones diarias cortas de unos 15 minutos de duración en la que cada miembro del equipo comunica al resto qué es lo que ha hecho el día anterior, lo que va a hacer hoy y si tiene algún problema. Esta reunión es muy importante ya que permite transmitir al equipo el estado del desarrollo de los módulos de la iteración. Permite pedir ayuda, ayudar a otros e informar al gestor del proyecto de si vamos bien o nos estamos retrasando.
Al final de la iteración se hace una demostración al cliente de las nuevas funcionalidades desarrolladas.
Después de finalizar la iteración es importante también mantener una reunión más técnica (sin el cliente) en la que se hace una retrospectiva de cómo ha ido la iteración: por qué no ha dado tiempo a terminar esta historia? qué nos impide ser más rápidos? qué podemos hacer para serlo?
En mi empresa, las iteraciones son de dos semanas. Los viernes, clientes, gestores de proyecto, desarrolladores y testers mantenemos una reunión con el cliente. Pensamos cada una de las funcionalidades que vamos a desarrollar en la nueva iteración. Definimos lo mejor posible las historias de usuario y adjuntamos diferentes ejemplos de cómo se usaría. Estimamos el esfuerzo de cada una de ellas mediante "el juego del póker" y seleccionamos el número de historias que desarrollarán en esa iteración (sprint backlog) de una forma acorde a nuestra productividad. Luego nos ponemos manos a la mas: desarrollamos las historias de usuario durante esas dos semanas y al final se hace una demo al cliente de las historias terminadas y probadas el Jueves antes de que termine la iteración. Cuando el cliente se marcha, nos encerramos otra media hora para hacer la retrospectiva: pensar qué hemos hecho mal y cómo podemos mejorar o para pensar otras cuestiones técnicas.
Esto es básicamente cómo funciona Scrum. En próximas entregas explicaré más detalles de cada proceso.