Scrum es un proceso en el
que se aplican de manera regular un
conjunto de buenas prácticas para
trabajar colaborativamente, en equipo,
y obtener el mejor
resultado posible de un proyecto. Estas prácticas se apoyan unas a otras y su selección tiene origen en un estudio de la manera de trabajar de equipos altamente productivos.
En Scrum se realizan
entregas parciales y regulares del producto final, priorizadas por el beneficio
que aportan al receptor del proyecto. Por ello, Scrum está especialmente
indicado para proyectos en entornos complejos, donde se
necesita obtener resultados
pronto, donde los requisitos son cambiantes o poco definidos, donde la innovación, la competitividad, la flexibilidad y la productividad son
fundamentales.
Scrum también se utiliza
para resolver situaciones en que no
se está entregando al cliente lo que necesita, cuando las
entregas se alargan demasiado, los costes se disparan o la
calidad no es aceptable, cuando se
necesita capacidad de
reacción ante la competencia, cuando la moral de los equipos es baja y la rotación
alta, cuando es necesario identificar y solucionar ineficiencias
sistemáticamente o cuando se quiere
trabajar utilizando un proceso
especializado en el desarrollo de producto.
En Scrum un
proyecto se ejecuta en bloques temporales cortos y fijos ( iteraciones de un mes natural y hasta de dos semanas, si así se necesita). Cada iteración
tiene que proporcionar un resultado completo, un incremento de producto final
que sea susceptible de ser entregado con el mínimo esfuerzo al cliente cuando
lo solicite.
El
proceso parte de la lista de objetivos/requisitos priorizada del
producto, que actúa como plan del proyecto. En esta lista el cliente prioriza
los objetivos balanceando el valor que le aportan respecto a su coste y quedan
repartidos en iteraciones y entregas.
Fases
de ejecución
- Planteamiento: un proyecto gestionado bajo el modelo SCRUM parte de los objetivos que han trazado con anterioridad el cliente y la empresa. Lo primero es fraccionarlo en entregas parciales, de manera que el cliente pueda replantear aspectos a los que en principio no prestó la importancia debida o que simplemente desconocía. Esos aspectos pueden ser sobre costes, estrategias, producción, etc.
- Lista de tareas: el equipo de trabajo elabora la lista de tareas que debe tener en cuenta para cada entrega de resultados. Es muy importante hacer una estimación del esfuerzo requerido para, de esta manera, fijas plazos proporcionados.
- Reuniones: lo ideal es que cada día el equipo dedique 15 minutos para reunirse y ponerse al tanto de la evolución del plan. En estas sesiones, el líder del proyecto (Scrum Master) debe encargarse de que cada miembro cumpla con las labores que le han sido asignadas y de motivarles para que su productividad no descienda. En caso de que detecte alguna incidencia dentro del grupo, es necesario que tome las opciones más adecuadas, que pueden ir desde un relevo de la función hasta el nombramiento de miembros de apoyo.
- Demostración: una vez ejecutadas las labores de cada fase, el equipo se reúne con el cliente para mostrar los avances correspondientes. El cliente decide si replantea los elementos del proyecto. Si es necesario, el equipo asume nuevos compromisos.
- Retrospectiva: los miembros del equipo se reúnen para valorar el proceso de entrega de resultados y analizan los factores que podrían mejorar de cara al final del proceso. La función del Scrum Master será eliminar dichos obstáculos.
Roles
Product Owner
- Las responsabilidades del Product Owner (que puede ser interno o externo a la organización) son:
- Ser el representante de todas las personas interesadas en los resultados del proyecto (internas o externas a la organización, promotores del proyecto y usuarios finales [idealmente también debería ser un usuario clave] o consumidores finales del producto) y actuar como interlocutor único ante el equipo, con autoridad para tomar decisiones.
- Definir los objetivos del producto o proyecto.
- Dirigir los resultados del proyecto y maximizar su ROI (Return Of Investment).
- Es el propietario de la planificación del proyecto: crea y mantiene la lista priorizada con los requisitos necesarios para cubrir los objetivos del producto o proyecto, conoce el valor que aportará cada requisito y calcula el ROI a partir del coste de cada requisito que le proporciona el equipo.
- Reparte los objetivos/requisitos en iteraciones y establece un calendario de entregas.
- Antes de iniciar cada iteración replanifica el proyecto en función de los requisitos que aportan más valor en ese momento, de los requisitos completados en la iteración anterior y del contexto del proyecto en ese momento (demandas del mercado, movimientos de la competencia, etc.).
- Colaborar con el equipo para planificar, revisar y dar detalle a los objetivos de cada iteración:
- Participar en la reunión de planificación de iteración, proponiendo los requisitos más prioritarios a desarrollar, respondiendo a las dudas del equipo y detallando los requisitos que el equipo se comprometer a hacer.
- Estar disponible durante el curso de la iteración para responder a las preguntas que puedan aparecer.
- No cambiar los requisitos que se están desarrollando en una iteración, una vez está iniciada.
- Participar en la reunión de demostración de la iteración, revisando los requisitos completados.
Scrum Master (facilitador)
Lidera
al equipo llevando a cabo las siguientes responsabilidades:
- Velar por que todos los participantes del proyecto sigan las reglas y proceso de Scrum, encajándolas en la cultura de la organización, y guiar la colaboración intraequipo y con el cliente de manera que las sinergias sean máximas. Esto implica:
- Asegurar que la lista de requisitos priorizada esté preparada antes de la siguiente iteración.
- Facilitar las reuniones de Scrum (planificación de la iteración, reuniones diarias de sincronización del equipo, demostración, retrospectiva), de manera que sean productivas y consigan sus objetivos.
- Enseñar al equipo a autogestionarse. No da respuestas, si no que guía al equipo con preguntas para que descubra por sí mismo una solución.
- Quitar los impedimentos que el equipo tiene en su camino para conseguir el objetivo de cada iteración (proporcionar un resultado útil al cliente de la manera más efectiva) y poder finalizar el proyecto con éxito. Estos obstáculos se identifican de manera sistemática en las reuniones y en las reuniones de retrospectiva.
- Proteger y aislar al equipo de interrupciones externas durante la ejecución de la iteración(introducción de nuevos requisitos, "secuestro" no previsto de un miembro del equipo, etc.). De esta manera, el equipo puede mantener su productividad y el compromiso que adquirió sobre los requisitos que completaría en la iteración.
Team (equipo)
Grupo de personas
que de manera conjunta desarrollan el producto del proyecto. Tienen un objetivo
común, comparten la responsabilidad del trabajo que realizan (así como de sucalidad) en cada iteración y en el proyecto.
El tamaño del
equipo está entre
5 y 9 personas. Por debajo de 5 personas
cualquier imprevisto o interrupción sobre un miembro del equipo compromete
seriamente el compromiso que han adquirido y, por tanto, el resultado que se va
a entregar al cliente al finalizar la
iteración. Por encima de 9 personas, la comunicación y colaboración entre todos
los miembros se hace más difícil y se forma subgrupos (ver los requisitos de Scrum).
De cualquier
manera, se puede hacer Scrum con 3 personas y se ha utilizado en proyectos con
250 personas en varios equipos. Cuando es
necesario que más de un equipo trabaje de manera ágil en un mismo proyecto,
existen diferentes técnicas que permiten esta colaboración, desde el Scrum de
Scrums hasta equipos de integración que dedican parte de su tiempo a trabajar
con los equipos de desarrollo, siempre completando incrementos de producto de
manera regular.
Es un equipo autoorganizado, que comparte información y cuyos miembros confían
entre ellos. Realiza de manera conjunta las siguientes actividades:
- Seleccionar los requisitos que se compromete a completar en una iteración, de forma que estén preparados para ser entregados al cliente.
- Estimar la complejidad de cada requisito en la lista de requisitos priorizada del producto o proyecto.
- En la reunión de planificación de la iteración decide cómo va a realizar su trabajo:
- Seleccionar los requisitos que pueden completar en cada iteración, realizando al cliente las preguntas necesarias.
- Identificar todas las tareas necesarias para completar cada requisito.
- Estimar el esfuerzo necesario para realizar cada tarea.
- Cada miembro del equipo se autoasigna a las tareas.
- Durante la iteración, trabajar de manera conjunta para conseguir los objetivos de la iteración. Cada especialista lidera el trabajo en su área y el resto colaboran si es necesario para poder completar un requisito.
- Al finalizar la iteración:
- Demostrar al cliente los requisitos completados en cada iteración.
- Hacer una retrospectiva la final de cada iteración para mejorar de forma continua su manera de trabajar.
Componentes
Pila del producto (Product Backlog)
- Responsable: Product Owner
- Relación de requisitos del producto, no detallados excesivamente
- Priorizados
- Todo el mundo puede añadir elementos pero solo el Product Owner añade prioridades.
Pila del sprint (Sprint Backlog)
- Requisitos comprometidos por el equipo para el sprint.
- Suficientemente detallado para su ejecución
Incremento
- Parte del producto desarrollada en 1 sprint
- En condiciones de ser usada (pruebas, codificación limpia y documentada)
Ventajas
- Entrega mensual (o quincenal) de resultados (los requisitos más prioritarios en ese momento, ya completados).
- Gestión regular de las expectativas del cliente y basada en resultados tangibles.
- Resultados anticipados (time to market).
- Flexibilidad y adaptación respecto a las necesidades del cliente, cambios en el mercado, etc.
- Gestión sistemática del Retorno de Inversión (ROI).
- Mitigación sistemática de los riesgos del proyecto.
- Productividad y calidad.
- Alineamiento entre el cliente y el equipo de desarrollo.
- Equipo motivado.
Desventajas
- Si no se define una fecha de fin, los stakeholders siempre pedirán nuevas funcionalidades.
- Si una tarea no está bien definida puede incrementar costes y tiempos.
- Si el equipo no se compromete hay mucha probabilidad de fracasar.
- Solo funciona bien en equipos pequeños y ágiles.
- Se requieren miembros del equipo experimentados.
- Solo funciona cuando el Scrum Manager confía en su equipo.
- Que un miembro abandone el equipo durante el desarrollo puede conllevar grandes problemas.
Características
- Enfatiza valores y prácticas de gestión, sin pronunciarse sobre requerimientos, prácticas de desarrollo, implementación y demás cuestiones técnicas
- Hace uso de Equipos auto-dirigidos y auto-organizados
- Puede ser aplicado teóricamente a cualquier contexto en donde un grupo de gente necesita trabajar junta para lograr una meta común.
- Desarrollo de software iterativo incremental basado en prácticas agiles
- Iteraciones de treinta días; aunque se pueden realizar con más frecuencia, estas iteraciones, conocidas como Sprint
- Dentro de cada Sprint se denomina el Scrum Master al Líder de Proyecto quien llevará a cabo la gestión de la iteración
- Se convocan diariamente un “Scrum Daily Meeting” el cual representa una reunión de avance diaria de no más de 15 minutos con el propósito de tener realimentación sobre las tareas de los recursos y los obstáculos que se presentan. En la cual se responden preguntas como: ¿Qué has hecho desde el último encunetro? ¿Qué obstaculos hay para cumplir la meta? ¿Qué haras antes del proximo encuentro?
No hay comentarios:
Publicar un comentario