La semana pasada hablamos de metodologías ágiles como concepto general. Esta semana vamos a profundizar con Scrum, una metodología ágil entre muchas. El Scrum hace especial énfasis en el desarrollo de software para equipos (idealmente) de 3-9 desarrolladores (que curiosamente, o no, sigue la regla de las dos pizzas). Los equipos pequeños tienden a obtener una mejor productividad en general. Los meetings son más directos y requieren menos interacciones. Si cada miembro de un equipo tiene que mantenerse en contacto con los demás miembros el número de interacciones entre participantes se incrementa exponencialmente con el número de integrantes del grupo.

Los integrantes del grupo tienen un tiempo definido para finalizar las tareas asignadas. El tiempo asignado depende de cada equipo. Normalmente se sitúan en 15 días, aunque puede llegar hasta los 30. Estos intervalos de tiempo son comúnmente nombrados “sprints”. Pero para seguir la evolución de las tareas y re-planificar si es necesario, Scrum incorpora standup meetings. Estos meetings son reuniones diarias en las que la duración aproximada es de 15 minutos y se hacen de pie. Los standup meetings tienen el nombre en clave de scrum diario (daily scrum).

La idea principal de scrum se basa en la colaboración plena entre miembros del equipo para la construcción del producto, contrario a otras metodologías más tradicionales. Previamente cada individuo hacia su tarea asignada en base a los requerimientos hecho que incrementaba las probabilidades de fracaso estrepitosamente. Cualquier error de planificación o falta de detalle era pagado con creces ya que a menudo el proyecto tenía que ser desarrollado de nuevo y a menudo requería desechar buena parte del progreso. Lo que intenta hacer Scrum es evitar justamente todo esto. Scrum intenta adaptarse a los cambios con facilidad y poder desechar partes sin que el coste total del proyecto se incremente prohibitivamente.

Implícitamente Scrum reconoce que los clientes no saben lo que quieren y que sus necesidades evolucionan continuamente adaptándose a las nuevas tendencias. A menudo los cambios son impredecibles y consecuentemente imposibles de planificar. Con todo este en mente, Scrum crea un marco en el que la adaptabilidad permite responder a los cambios emergentes, nuevas tecnologías y cambios en el mercado.