Agile y Scrum
Hacer software en ciclos cortos, mostrar resultados seguido y ajustar sobre la marcha.
Agile (ágil) es una familia de formas de organizar el trabajo de software alrededor de ciclos cortos y feedback constante, en lugar de un gran plan ejecutado durante un año. Lo bautizó en 2001 un grupo de developers que escribió el Manifiesto Ágil, que valora el software que funciona, la colaboración con el cliente y la respuesta al cambio por encima de la documentación pesada y los contratos rígidos. El estilo anterior contra el que reaccionaba suele llamarse cascada (waterfall): especificar todo, después construir todo, después probar todo y recién ahí entregar.
Scrum es la forma más usada de llevar Agile a la práctica. El trabajo se hace en sprints, períodos fijos de hasta un mes, muy seguido de dos semanas. Todo lo pendiente vive en una lista priorizada llamada product backlog. Al arrancar un sprint, el equipo elige lo que puede terminar; todos los días hace una reunión corta, la daily scrum o daily; al final muestra lo que construyó en una sprint review y charla cómo trabajar mejor en una retrospectiva.
Scrum define tres roles: el product owner, que decide qué importa más; el Scrum Master, que ayuda al equipo a seguir el proceso y saca obstáculos del camino; y los developers, que hacen el trabajo. Kanban es una alternativa más liviana, sin sprints: las tareas avanzan por un tablero de "por hacer" a "hecho", con un límite de cuántas pueden estar en curso a la vez. En la práctica muchos equipos mezclan las dos, y a veces "ágil" termina queriendo decir solo "muchas reuniones", que es justo no entender la idea.
Para quedarse
- Agile es un conjunto de valores; Scrum es una forma concreta de aplicarlos.
- Scrum trabaja en sprints de hasta un mes, muchas veces de dos semanas.
- Cada sprint debería terminar con algo que funcione y que la gente pueda ver y usar.
- Kanban deja de lado los sprints y limita cuánto trabajo hay en curso.