Scrum – Metodología Agil #Scrum

scrum1

En esta oportunidad quiero presentarles algunas nociones básicas de Scrum como marco de trabajo que nos permite encontrar prácticas emergentes en dominios complejos, como la gestión de proyectos de innovación.

Scrum es un proceso agil que nos permite centrarnos en entregas de valor para el negocio en tiempos cortos. Es decir, manejamos proyectos basados en el desarrollo iterativo e incremental, donde los requisitos y soluciones evolucionan con el tiempo según la necesidad del mismo. Así el trabajo es realizado mediante la colaboración de equipos auto-organizados y multidisciplinarios, inmersos en un proceso compartido de toma de decisiones a corto plazo.

Trabajar con este esquema permite una inspección rápida y continua del software en proceso de desarrollo en intervalos de tiempo cortos.  El negocio establece prioridades y el equipo se auto organiza para encontrar la forma de entregar las funcionalidades con mayor prioridad.  Cada dos o cuatro semanas cualquiera puede ver el trabajo real realizado, decidiendo así mismo si se puede liberar el producto o se debe continuar mejorando.

Veamos a continuación como nos organizamos para trabajar con Scrum.

scrum2.png

Lo primero que debemos definir es el o los equipos de trabajo, es decir tener  uno o más equipos de trabajo, con al menos 3 tres roles básicos dentro del equipo los cuales son:

1.dueño del producto,  Product Owner

Tiene la visión del negocio y conoce a detalle requerimientos del producto que se debe construir, lo que conlleva a ser el líder en cuanto a la toma de decisiones del desarrollo del producto.

2 ScrumMaster

El ScrumMaster es el responsable de que todos los involucrados entiendan y adopten los valores, principios y prácticas de SCRUM.

3 el equipo de desarrollo.

Responsables del diseño construcción y prueba del producto

Para entenderlo mejor veamos las características principales de cada rol.

scrum3

El Product Owner tiene la visión del negocio,  es quien tiene claro los requerimientos del desarrollo del software, siendo este quien tiene definido cada funcionalidad que debe desarrollarse es quien fija orden y prioridades en el product backlog; decide que debe construirse y que no.  En caso de hacer una modificación sobre alguna funcionalidad del software, es el product owner  quien fija las características minimas viables del software.

El Product Owner no da ordenes al equipo de desarrollo, solo debe asegurarse de hacer de conocimiento a cada integrante del equipo el product backlog, debe estar disponible y accesible al equipo para explicar las funcionalidades requeridas cada vez que sea necesario, participar en las reuniones diarias de avance , en los sprint de planificación, revisión y retrospectiva.

El Product Owner debe conocer la velocidad del equipo, para poder realizar las estimaciones de cuando estarán implementadas las necesidades en el producto.

En caso de que se requiera cancelar un Sprint por algún imprevisto externo, es el único responsable de  comunicar la cancelación.

El Product Owner es quien valida las entregas del equipo de desarrollo.

Es indiferente si el producto es una aplicación interna o un producto externo; el dueño del producto tiene la obligación de entregar el mayor valor posible, que incluye el foco en el desarrollo técnico.

scrum4

El Scrum master se encarga de que todo el equipo entienda scrum y lo aplique correctamente, es como un instructor, ayuda al equipo scrum y al resto de la organización a desarrollar la metodología dentro de la organización.  Implementar scrum es un proceso de cambio, el Scrum master apoya a todo el equipo en la adopción de la metodología

El ScrumMaster no tiene autoridad sobre el equipo de desarrollo, este rol no es similar al del jefe de proyecto de desarrollo. El ScrumMaster actúa como un líder, no como un jefe.

Las características más resaltantes del scrummaster:

1.Planifica la Implementación de scrum en conjunto con la organización

2.Ayuda al Product Owner que es quien tiene la visión del negocio a entender la agilidad.

3.Como instructor enseña al product owner a gestionar la planificación, elaboración del product backlog

4.Ayuda al equipo de desarrollo a convertirse en auto-organizado y multifuniocnal

5.Participa en las resuniones y se asegura que cumplan tiempo y objetivos establecidos.

6.Junto al equipo de desarrollo actualiza el progreso del trabajo

7.Promueve las buenas practicas de programación

8.Organiza y ejecuta cursos de aprender scrum si es necesario

scrum5

Equipo de desarrollo

Scrum define el rol de Equipo de Desarrollo, como una colección de diferentes actores, responsables de diseño, construcción o pruebas.

El equipo de desarrollo se debe auto organizar para presentar la mejor manera de cumplir con los requerimientos del usuario.

El equipo de desarrollo por lo general es de 5 a 9 personas; en forma colectiva tienen todas las habilidades necesarias para producir software de calidad.

Si el proyecto requiere de muchas más personas, digamos unas 35 personas, estas deben ser organizadas en equipos de desarrollo de máximo nueve personas.

scrum6

Los procesos de Scrum corresponden a todas aquellas actividades y al flujo de las mismas dentro de un proyecto Scrum.

En total la metodología desarrolla 19 procesos que se agrupan en 5 fases. Cada fases describe cada proceso en detalle, incluyendo sus entradas, herramientas y salidas asociadas. En cada proceso, algunas entradas, herramientas y salidas son obligatorias, y existen otras que son opcionales, cuyo uso dependerá de la naturaleza del proyecto.

Conozcamos un poco las fases y los procesos que incluyen cada una:

  1. Iniciación (6 procesos) 

En esta fase se crea la Visión del Proyecto que sirve de enfoque y dirección del mismo. Se crean e identifican roles claves del proyecto como el Scrum Master, Product Owner, interesados, equipo del proyecto. Así mismo, se define la lista de prioridades o el Product Backlog la cual sirve de base para la elaboración del plan de lanzamiento y tamaño de cada Sprit.

Procesos

Crear la visión del proyecto (Create Project Vision)

Identificar al Scrum Master y a los interesados o socios del proyecto (Identify Scrum Master and Stakeholder(s))

Formación del equipo Scrum (Form Equipo Scrum)

Desarrollo de épica(s) (Develop Epic(s))

Creación de la lista priorizada de pendientes del producto (Create Prioritized Product Backlog)

Realizar el plan de lanzamiento (Conduct Release Planning)

2. Planificación y Estimación (5 procesos):

Aquí se definen y aterrizan en los Sprints las historias de usuarios, se alinean a todo lo que genera valor a la organización y se hacen las estimaciones de tiempo y esfuerzo para cumplirlas, los cuales se traducen en listas de tareas cuyos tiempos de desarrollo se definen en reuniones de equipo correspondientes, así como el proceso de definición del Sprint Backlog que contiene todas las tareas que deben completarse en el Sprint.

Procesos

Elaborar historias de usuario (Create User Stories)

Aprobar, estimar y asignar historias de usuarios (Approve, Estimate, and Commit User Stories).

Elaboración de tareas (Create Tasks)

Estimar tareas (Estimate Tasks)

Elaboración de la lista de pendientes del Sprint (Create Sprint Backlog)

3. Implementación (3 procesos):

En esta fase se trabaja en las tareas del Sprint Backlog para crear Sprint Deliverables, para ello se utiliza a menudo un Scrumboard para realizar el seguimiento del trabajo y de actividades que se llevan a cabo. También,los inconvenientes o problemas que enfrenta el Equipo Scrum se actualizan en un Impediment Log. Durante esta fase se realizan las llamadas Daily Standup Meeting que son reuniones cortas y eficientes en tiempo donde el equipo da el estatus de sus actividades diarias y manifiesta cualquier inconveniente que pueda tener. Igualmente se actualiza o revisa la lista de prioridades de pendientes del producto.

Procesos

Crear entregables (Create Deliverables),

Llevar a cabo el standup diario (Conduct Daily Standup)

Mantenimiento de la lista priorizada de pendientes del producto (Groom Prioritized Product Backlog)

4. Revisión y Retrospectiva (3 procesos):

Para proyectos grandes que involucran varios equipos Scrum, se realiza en esta etapa, reuniones que permitan juntar a estos equipos y discutir y revisar avances, dependencias e impedimentos en el desarrollo del proyecto. También en esta etapa se lleva a cabo el proceso donde el Equipo Scrum le demuestra el Sprint Deliverable al Propietario del producto y a los Socios relevantes en un Sprint Review Meeting. Igualmente, el Scrum Master y el Equipo Scrum se reúnen para discutir las lecciones aprendidas a lo largo del Sprint, información que se documenta como las lecciones aprendidas que pueden aplicarse a los futuros Sprints.

Procesos

Convocar Scrum de Scrums (Convene Scrum of Scrums)

Demostración y validación del Sprint (Demonstrate and Validate Sprint)

Retrospectiva de Sprint (Retrospect Sprint)

5. Lanzamiento (2 procesos):

Finalmente, esta es la fase más esperada por los interesados o socios del proyecto así como del Scrum Master y Equipo Scrum. En esta fase se presentan los entregables y se les entregan a los Socios relevantes. Un acuerdo formal llamado Aceptación de Entregables, documenta la finalización con éxito del Sprint. Del mismo modo, se realizan actividades de restrospectiva que permite identificar mejoras y lecciones aprendidas del proyecto.

Envío de entregables (Ship Deliverables)

Retrospectiva del proyecto (Retrospect Project)

scrum7

Con Scrum El desarrollo se realiza de forma iterativa e incremental. El corazón de Scrum es un Sprint, es un intervalo prefijado durante el cual se crea un incremento de producto “Hecho o Terminado” utilizable, potencialmente entregable. A lo largo del desarrollo hay Sprints consecutivos de duración constante

Cada iteración, denominada Sprint, tiene una duración preestablecida de entre 2 y 4 semanas, obteniendo como resultado una versión del software con nuevas prestaciones listas para ser usadas. En cada nuevo Sprint, se va ajustando la funcionalidad ya construida y se añaden nuevas prestaciones priorizándose siempre aquellas que aporten mayor valor de negocio.

Veamos otros conceptos….

Product Backlog: Conjunto de requisitos demoninados historias descritos en un lenguaje no técnico y priorizados por valor de negocio, o lo que es lo mismo, por retorno de inversión considerando su beneficio y coste. Los requisitos y prioridades se revisan y ajustan durante el curso del proyecto a intervalos regulares.

Sprint Planning: Reunión durante la cual  el Product Owner presenta las historias del backlog por orden de prioridad. El equipo determina la cantidad de historias que puede comprometerse a completar en ese sprint, para en una segunda parte de la reunión, decidir y organizar cómo lo va a conseguir.

Sprint: Iteración de duración prefijada durante la cual el equipo trabaja para convertir las historias del Product Backlog a las que se ha comprometido, en una nueva versión del software totalmente operativo.

Sprint Backlog: Lista de las tareas necesarias para llevar a cabo las historias del sprint.

Daily sprint meeting: Reunión diaria de cómo máximo 15 min. en la que el equipo se sincroniza para trabajar de forma coordinada. Cada miembro comenta que hizo el día anterior, que hará hoy y si hay impedimentos.

Demo y retrospectiva: Reunión que se celebra al final del sprint y en la que el equipo presenta las historias conseguidas mediante una demonstración del producto. Posteriormente, en la retrospectiva, el equipo analiza qué se hizo bien, qué procesos serían mejorables y discute acerca de cómo perfeccionarlos.

Autor: arevalomaria

Ingeniero de Sistemas, Magister en Gerencia y Tecnologia de la Informacion, Certificaciones: ITIL V3, CCNA, Microsoft Certified Professional.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s