¿QUÉ ES SCRUM?
Scrum es una metodología ágil y flexible para gestionar el desarrollo de
software, cuyo principal objetivo es maximizar el retorno de la inversión para
su empresa (ROI). Se basa en construir primero la funcionalidad de mayor valor
para el cliente y en los principios de inspección continua, adaptación,
auto-gestión e innovación.
A Scrum 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.
¿CUÁNDO SE UTILIZA?
Con la metodología Scrum el cliente se entusiasma y se compromete con el proyecto dado que lo ve crecer iteración a iteración. Asimismo le permite en cualquier momento realinear el software con los objetivos de negocio de su empresa, ya que puede introducir cambios funcionales o de prioridad en el inicio de cada nueva iteración sin ningún problema.
Esta metódica de trabajo promueve la innovación, motivación y compromiso del equipo que forma parte del proyecto, por lo que los profesionales encuentran un ámbito propicio para desarrollar sus capacidades.
Con la metodología Scrum el cliente se entusiasma y se compromete con el proyecto dado que lo ve crecer iteración a iteración. Asimismo le permite en cualquier momento realinear el software con los objetivos de negocio de su empresa, ya que puede introducir cambios funcionales o de prioridad en el inicio de cada nueva iteración sin ningún problema.
Esta metódica de trabajo promueve la innovación, motivación y compromiso del equipo que forma parte del proyecto, por lo que los profesionales encuentran un ámbito propicio para desarrollar sus capacidades.
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. De manera regular el cliente puede maximizar la utilidad de lo que se desarrolla y el retorno de inversión mediante la re-planificación de objetivos del producto, que realiza durante la iteración con vista a las siguientes iteraciones.
Las actividades que se llevan a cabo en Scrum son las siguientes:
El primer día de la iteración se realiza la reunión de planificación de
la iteración. Tiene dos partes:
1. Selección de requisitos (4 horas máximo). El cliente
presenta al equipo la lista de requisitos priorizada del
producto o proyecto. El equipo pregunta al cliente las dudas que surgen y
selecciona los requisitos más prioritarios que se compromete a completar en la
iteración, de manera que puedan ser entregados si el cliente lo solicita.
2. Planificación de la
iteración (4 horas máximo). El equipo elabora la lista de tareas de la iteración necesarias para desarrollar
los requisitos a que se ha comprometido. La estimación de esfuerzo se hace de
manera conjunta y los miembros del equipo se auto asignan las tareas.
Cada día el equipo realiza una reunión de sincronización (15 minutos máximo). Cada miembro
del equipo inspecciona el trabajo que el resto está realizando (dependencias
entre tareas, progreso hacia el objetivo de la iteración, obstáculos que pueden
impedir este objetivo) para poder hacer las adaptaciones necesarias que
permitan cumplir con el compromiso adquirido. En la reunión cada miembro del
equipo responde a tres preguntas:
- ¿Qué he hecho desde la última reunión de sincronización?
- ¿Qué voy a hacer a partir de este momento?
- ¿Qué impedimentos tengo o voy a tener?
- Durante la iteración el Facilitador (Scrum Master) se encarga de que el equipo pueda cumplir con su compromiso y de que no se merme su productividad.
- Elimina los obstáculos que el equipo no puede resolver por sí mismo.
- Protege al equipo de interrupciones externas que puedan afectar su compromiso o su productividad.
INSPECCIÓN Y ADAPTACIÓN
El último día de la iteración se realiza la reunión de revisión de la
iteración. Tiene dos partes:
1. Demostración (4 horas máximo). El equipo presenta al cliente los
requisitos completados en la iteración, en forma de incremento de producto
preparado para ser entregado con el mínimo esfuerzo. En función de los
resultados mostrados y de los cambios que haya habido en el contexto del
proyecto, el cliente realiza las adaptaciones necesarias de manera objetiva, ya
desde la primera iteración, replanificando el proyecto.
2. Retrospectiva (4 horas máximo). El equipo
analiza cómo ha sido su manera de trabajar y cuáles son los problemas que
podrían impedirle progresar adecuadamente, mejorando de manera continua su
productividad. El Facilitador se encargará de ir eliminando los obstáculos
identificados.
BENEFICIOS DE SCRUM
- Flexibilidad a cambios. Gran capacidad de reacción ante los cambiantes requerimientos generados por las necesidades del cliente o la evolución del mercado. El marco de trabajo está diseñada para adecuarse a las nuevas exigencias que implican proyectos complejos.
- Reducción del Time to Market. El cliente puede empezar a utilizar las características más importantes del proyecto antes de que esté completamente terminado.
- Mayor calidad del software. El trabajo metódico y la necesidad de obtener una versión de trabajo funcional después de cada iteración, ayuda a la obtención de un software de alta calidad.
- Mayor productividad. Se logra, entre otras razones, debido a la eliminación de la burocracia y la motivación del equipo proporcionado por el hecho de que son de que pueden estructurarse de manera autónoma.
- Maximiza el retorno de la inversión (ROI). Creación de software solamente con las prestaciones que contribuyen a un mayor valor de negocio gracias a la priorización por retorno de inversión.
- Predicciones de tiempos. A través de este marco de trabajo se conoce la velocidad media del equipo por sprint, con lo que es posible estimar de manera fácil cuando se podrá hacer uso de una determinada funcionalidad que todavía está en el Backlog.
- Reducción de riesgos El hecho de llevar a cabo las funcionalidades de mayor valor en primer lugar y de saber la velocidad a la que el equipo avanza en el proyecto, permite despejar riesgos efectivamente de manera anticipada.
ROLES PRINCIPALES EN SCRUM
Product
Owner
El Product
Owner representa la voz del
cliente. Se asegura de que el equipo Scrum trabaje de forma adecuada desde la
perspectiva del negocio. El Product Owner escribehistorias de usuario, las
prioriza, y las coloca en el Product Backlog.
ScrumMaster (o Facilitador)
El Scrum es facilitado por un ScrumMaster, cuyo trabajo
primario es eliminar los obstáculos que impiden que el equipo alcance el
objetivo del sprint. El ScrumMaster no es el líder del equipo (porque
ellos se auto-organizan), sino que actúa como una protección entre el equipo y
cualquier influencia que le distraiga. El ScrumMaster se asegura de que el
proceso Scrum se utiliza como es debido. El ScrumMaster es el que hace que las
reglas se cumplan.
Equipo de desarrollo
El equipo tiene la responsabilidad de entregar el
producto. Un pequeño equipo de 3 a 9 personas con las habilidades transversales
necesarias para realizar el trabajo (análisis, diseño, desarrollo, pruebas,
documentación, etc).
ROLES AUXILIARES
Los roles auxiliares en los "equipos
Scrum" son aquellos que no tienen un rol formal y no se involucran
frecuentemente en el "proceso Scrum", sin embargo deben ser tomados
en cuenta. Un aspecto importante de una aproximación ágil es la práctica de
involucrar en el proceso a los usuarios, expertos del negocio y otros
interesados (stakeholders). Es importante que esa gente participe y entregue
retroalimentación con respecto a la salida del proceso a fin de revisar y
planear cada sprint.
Stakeholders (Clientes, Proveedores, Vendedores, etc)
Se refiere a la gente que hace posible el proyecto y para
quienes el proyecto producirá el beneficio acordado que justifica su
producción. Sólo participan directamente durante las revisiones del sprint.
Administradores (Managers)
Es la gente que establece el ambiente para el desarrollo
del producto.
REUNIONES
EN SCRUM
Daily Scrum o Stand-up meeting
Cada día de un sprint, se realiza la reunión sobre
el estado de un proyecto. Esto se llama daily
standup o Stand-up meeting. El scrum
tiene unas guías específicas:
- La reunión comienza puntualmente a su hora.
- Todos son bienvenidos, pero sólo los involucrados en el proyecto pueden hablar.
- La reunión tiene una duración fija de 15 minutos, de forma independiente del tamaño del equipo.
- La reunión debe ocurrir en la misma ubicación y a la misma hora todos los días.
- Durante la reunión, cada miembro del equipo contesta a tres preguntas:
- ¿Qué has hecho desde ayer?
- ¿Qué es lo que harás hasta la reunión de mañana?
- ¿Has tenido algún problema que te haya impedido alcanzar tu objetivo? (Es el papel del ScrumMaster recordar estos impedimentos).
Scrum de Scrum
Cada día normalmente después del “Daily Scrum”:
- Estas reuniones permiten a los grupos de equipos discutir su trabajo, enfocándose especialmente en áreas de solapamiento e integración.
- Asiste una persona asignada por cada equipo.
- La agenda será la misma que la del Daily Scrum, añadiendo además las siguientes cuatro preguntas:
- ¿Qué ha hecho tu equipo desde nuestra última reunión?
- ¿Qué hará tu equipo antes que nos volvamos a reunir?
- ¿Hay algo que demora o estorba a tu equipo?
- ¿Estás a punto de poner algo en el camino del otro equipo?
Reunión de Planificación del Sprint (Sprint Planning Meeting)
Al inicio del ciclo Sprint (cada 15 o 30 días), una
“Reunión de Planificación del Sprint” se lleva a cabo.
- Seleccionar qué trabajo se hará
- Preparar, con el equipo completo, el Sprint Backlog que detalla el tiempo que tomará hacer el trabajo.
- Identificar y comunicar cuánto del trabajo es probable que se realice durante el actual Sprint
- Ocho horas como límite
- Al final del ciclo Sprint, dos reuniones se llevarán a cabo: la “Reunión de Revisión del Sprint” y la “Retrospectiva del Sprint”
Reunión de Revisión del Sprint
(Sprint Review Meeting)
- Revisar el trabajo que fue completado y no completado
- Presentar el trabajo completado a los interesados (alias “demo”)
- El trabajo incompleto no puede ser demostrado
- Cuatro horas como límite
Retrospectiva del Sprint (Sprint
Retrospective)
Después de cada sprint, se lleva a cabo una
retrospectiva del sprint, en la cual todos los miembros del equipo dejan sus
impresiones sobre el sprint recién superado. El propósito de la retrospectiva
es realizar una mejora continua del proceso. Esta reunión tiene un tiempo fijo
de cuatro horas.
ORIGEN DE SCRUM
Scrum, como marco de trabajo para el desarrollo de
nuevos productos, fue identificado y definido por Ikujiro Nonaka e Hirotaka
Takeuchi a principios de los 80, al analizar cómo desarrollaban los nuevos
productos las principales empresas de manufactura tecnológica: Fuji-Xerox,
Canon, Honda, Nec, Epson, Brother, 3M y Hewlett-Packard (Nonaka & Takeuchi,
The New Product Development Game, 1986)
En su estudio, Nonaka y Takeuchi compararon la
nueva forma de trabajo en equipo, con el avance en formación de Scrum de los jugadores
de Rugby, a raíz de lo cual quedó acuñado el término “Scrum” para referirse a
ella.
Aunque esta forma de trabajo surgió en empresas de
productos tecnológicos, resulta apropiada para proyectos con requisitos
inestables o en aquellos que requieren rapidez y flexibilidad, situaciones
frecuentes en el desarrollo de determinados sistemas de software.
En 1995 Ken Schwaber presentó “Scrum Development
Process” en OOPSLA 95 (Object-Oriented Programming Systems & Applications
conference) (SCRUM Development Process), un marco de reglas para desarrollo de
software, basado en los principios de Scrum, y que él había empleado en el
desarrollo de Delphi, y Jeff Sutherland en su empresa Easel Corporation
(compañía que en los macrojuegos de compras y fusiones, se integraría en VMARK,
y luego en Informix y finalmente en Ascential Software Corporation).
No hay comentarios:
Publicar un comentario