Scrum: La Metodología Ágil

Scrum: La Metodología Ágil

¡Nuevo artículo sobre el mundo laboral! En esta ocasión abordaremos en detalle una de las metodologías de trabajo que más éxito está teniendo en los último años. Nos referimos a Scrum, la metodología ágil por excelencia. Más concretamente, veremos su definición, características, elementos, roles y funcionamiento general.

¿Qué es Scrum?

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. 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

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.

Scrum

Se suele planificar por semanas. Al final de cada sprint o iteración (que suele durar entre 2 y 4 semanas), se va revisando el trabajo validado de la anterior semana. En función de esto, se priorizan y planifican las actividades en las que invertiremos nuestros recursos en el siguiente sprint. Cada una de estas iteraciones (o sprints) tiene que proporcionar un resultado completo, es decir, un incremento de producto final que sea susceptible de ser entregado con el mínimo esfuerzo al cliente cuando lo solicite.

Scrum

La metodología Scrum se centra en ajustar sus resultados y responder a las exigencias reales y exactas del cliente. Es por ello que se va revisando cada entregable, dado que los requerimientos van variando a corto plazo. 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 (que el equipo estima considerando la “Definición de Hecho” o “Definition of Done”) y quedan repartidos en iteraciones y entregas.

Scrum

Se realiza un desarrollo incremental, en lugar de la clásica planificación del desarrollo completo de un producto o servicio. Además, sus equipos de trabajo se caracterizan por ser auto-organizados, y se centra en el producto final, en la calidad del mismo. Por otro lado, se solapan diferentes fases de desarrollo, en lugar de llevar a cabo una planificación secuencial o de cascada.

Scrum

Características

Scrum es el nombre con el que se denomina a los marcos de desarrollo ágiles caracterizados por:

  • Adoptar una estrategia de desarrollo incremental, en lugar de la planificación y ejecución completa del producto.
  • Basar la calidad del resultado más en el conocimiento tácito de las personas en equipos auto-organizados, que en la calidad de los procesos empleados.
  • Solapamiento de las diferentes fases del desarrollo, en lugar de realizar una tras otra en un ciclo secuencial o en cascada.

Scrum

Sus principales características son:

  • Gestión regular de las expectativas del cliente.
  • Resultados anticipados (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.
  • Flexibilidad/adaptación: gran capacidad de reacción ante los cambiantes requerimientos generados por las necesidades del cliente o la evolución del mercado.
  • Retorno de 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.
  • Mitigación de riesgos: el hecho de desarrollar, en primer lugar, las funcionalidades de mayor valor y de saber la velocidad a la que el equipo avanza en el proyecto, permite despejar riesgos efectivamente de manera anticipada.​
  • 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 pueden estructurarse de manera autónoma.
  • Calidad: 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.
  • Predicciones de tiempos: 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.
  • Alineamiento entre cliente y equipo: fomentado por las continuas reuniones planificadas que van realizando.
  • Equipo motivado: al tratarse de un grupo auto-dirigido y auto-organizado.

Scrum

Se realiza a diario una reunión de Scrum (Daily Scrum), que no dura más de 15 minutos, con el objetivo de obtener realimentación sobre las tareas del equipo y los obstáculos que se presentan.

Pizarra de Scrum

Por su parte, existen varias implementaciones de sistemas para gestionar el proceso de Scrum, que van desde notas amarillas “post-it” y pizarras hasta paquetes de software. Si se utiliza una pizarra con notas autoadhesivas, cualquier miembro del equipo podrá ver tres columnas: trabajo pendiente (“backlog”), tareas en proceso (“in progress”) y hecho (“done”). De un solo vistazo, una persona puede ver en qué están trabajando los demás en un momento determinado.

Pizarra de Scrum

Entre los beneficios de esta metodología tenemos:

  • Se fomenta el trabajo en equipo, focalizando todos los esfuerzos en alcanzar un objetivo común. Se trata de un modelo basado en la auto-disciplina y la auto-gestión, lo que repercute positivamente en la responsabilidad. Respecto al aspecto comunicativo, esta metodología fomenta la comunicación entre los distintos miembros del equipo.
  • Los Stakeholders tienen un mayor control y transparencia sobre el proyecto, permitiendo una mejor organización. El cliente puede hacer seguimiento más cercano de lo que pasa, sin tener que esperar a un resultado final que no le convenza. Además, con las metas intermedias se minimizan riesgos.
  • En definitiva, la adopción de estas buenas prácticas permite reducir el tiempo de desarrollo de productos, más capacidad de adaptación y flexibilidad frente a un entorno y unos requisitos cambiantes aumentando el valor que se aporta a los clientes.

Beneficios de Scrum

Elementos

En cuanto a los elementos que forman parte de esta metodología (algunos ya mencionados), tenemos:

  • Sprint: periodo en el que se realizan todas las acciones pactadas en el Sprint Backlog y supone entregas parciales para ir testeando el producto final. Se recomienda que la duración de los sprints sea constante y definida por el equipo en base a su propia experiencia. Se puede comenzar con una duración de sprint en particular (2 o 3 semanas) e ir ajustándolo según el ritmo del equipo (aunque sin relajarlo demasiado). Al final de cada sprint, el equipo deberá presentar los avances logrados, y el resultado obtenido es un producto que, potencialmente, se puede entregar al cliente.
  • Product Backlog: archivo genérico que recoge el conjunto de tareas, requerimientos y funcionalidades requeridas por el proyecto, el cual contiene descripciones genéricas de funcionalidades deseables, priorizadas según su retorno sobre la inversión (ROI). Contiene estimaciones realizadas a grandes rasgos, tanto del valor para el negocio, como del esfuerzo de desarrollo requerido. Esta estimación ayuda al product owner a ajustar la línea temporal (KEV) y, de manera limitada, la prioridad de las diferentes tareas. Por ejemplo, si dos características tienen el mismo valor de negocio, la que requiera menor tiempo de desarrollo tendrá probablemente más prioridad, debido a que su ROI será más alto.
  • Sprint Backlog: documento que recoge el subconjunto de requisitos que serán desarrollados durante el siguiente sprint. Por lo general, los requisitos se subdividen en tareas, a las cuales se asignan ciertas horas de trabajo, pero ninguna tarea con una duración superior a 16 horas. Si una tarea es mayor de 16 horas, deberá ser dividida en otras menores. Las tareas en el sprint backlog nunca son asignadas, son tomadas por los miembros del equipo del modo que les parezca adecuado.
  • Sprint Planning: reunión donde se determinan los elementos del Product Backlog que forman parte del sprint. El Product Owner identifica los elementos del Product Backlog que quiere ver completados y los hace del conocimiento del equipo. Entonces, el equipo conversa con el Product Owner buscando la claridad y magnitud adecuadas para luego determinar la cantidad de ese trabajo que puede comprometerse a completar durante el siguiente sprint.
  • Burn Chart (Diagrama de Quemado): gráfica mostrada públicamente que mide la cantidad de requisitos en el Backlog del proyecto pendientes al comienzo de cada Sprint. Dibujando una línea que conecte los puntos de todos los Sprints completados, podremos ver el progreso del proyecto. Lo normal es que esta línea sea descendente (Burn Down Chart) hasta llegar al eje horizontal, momento en el cual el proyecto se ha terminado (no hay más requisitos pendientes de ser completados en el Backlog). Si durante el proceso se añaden nuevos requisitos, la recta tendrá pendiente ascendente en determinados segmentos (Burn Up Chart), y si se modifican algunos requisitos la pendiente variará o incluso valdrá cero en algunos tramos.

Scrum

Se recomienda no agregar objetivos al sprint o sprint backlog a menos que su falta amenace al éxito del proyecto, ya que la constancia permite la concentración y mejora la productividad del equipo de trabajo.

Roles

La metodología Scrum tiene unos roles y responsabilidades principales, asignados a sus procesos de desarrollo, como son:

  • Scrum Master (o facilitador): su trabajo primario es eliminar los obstáculos que impiden que el equipo alcance el objetivo del sprint, manteniéndolo activo y productivo. 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 y que pueda afectar a su compromiso o productividad. Básicamente se asegura de que el proceso Scrum se utiliza como es debido (hace que las reglas se cumplan), garantizando el cumplimiento de objetivos.
  • Product Owner: representa la voz del cliente y del resto de interesados no implicados directamente en el proyecto (stakeholders). Este perfil es el encargado de definir los objetivos del proyecto y de garantizar que el equipo trabaja del modo adecuado para alcanzar dichos objetivos en línea con la estrategia del negocio. Además, ayuda al usuario a escribir las historias de usuario, las prioriza, y las coloca en el Product Backlog.
  • Team (equipo): estructura horizontal auto-organizada capaz de auto-gestionarse a sí misma y cuya responsabilidad es la de desarrollar y entregar el producto. Es recomendable un pequeño equipo de 5 a 9 personas con las habilidades transversales necesarias para realizar el trabajo (análisis, diseño, desarrollo, pruebas, documentación, etc).
  • Stakeholders: aquellos perfiles interesados en el producto (directores, dueños, comerciales, clientes, proveedores, etc.) que hacen posible el proyecto y para quienes el proyecto producirá el beneficio acordado que justifica su desarrollo. Sólo participan directamente durante las revisiones del sprint.
  • Administradores (managers): responsables de establecer el entorno para el desarrollo del proyecto.

Roles de Scrum

Funcionamiento

A lo largo de toda la vida del proyecto se va elaborando y adaptando el “Product Backlog”. Cualquier miembro del equipo puede modificar este documento, pero el único con autoridad para agregar prioridades es el Product Owner, que es el responsable del documento. A partir de ahí, el trabajo se organiza a lo largo de varios sprints.

Product Backlog en Scrum

Al comienzo de cada sprint, el equipo de scrum tiene un evento de planificación de sprint (Sprint Planning Meeting), que consta de 2 partes:

  • Selección de requisitos (4 horas máximo). El cliente presenta al equipo la lista de requisitos priorizada del producto o proyecto (establecidos en el Product Backlog). 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.
  • 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 autoasignan las tareas. El objetivo debe ser alcanzable, y el equipo sólo abordará un conjunto de tareas asumible (si su volumen es muy grande, será recomendable crear metas intermedias).

Scrum: Sprint Planning Meeting

Cada día del sprint, se realiza un reunión de seguimiento (daily scrum), normalmente delante de un tablero físico o pizarra (Scrum Taskboard), en la que se controla el cumplimiento de las tareas asumidas. Se basa en poner en común y sincronizar actividades para elaborar el plan del día, pactándose los objetivos para el día siguiente y analizándose los posibles problemas que hayan limitado o impedido directamente el cumplimiento de los objetivos. Esta reunión tiene una duración fija de 15 minutos, de forma independiente del tamaño del equipo, donde cada miembro del equipo responde a tres preguntas:

  1. ¿Qué he hecho desde la última reunión de sincronización?
  2. ¿Qué voy a hacer a partir de este momento?
  3. ¿Qué impedimentos tengo o voy a tener?

Scrum

Al final de un sprint, el equipo realiza dos eventos: la revisión del sprint y la retrospectiva del sprint.

Scrum

En la reunión de revisión de sprint el equipo presenta al cliente (Product Owner) 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 en el Product Backlog, definiendo los aspectos a cambiar (en caso necesario), de mayor valor o probables, para planificarlos en el siguiente Sprint.

Scrum

Por su parte, en la retrospectiva (que tiene un tiempo fijo de 4 horas) todos los miembros del equipo dejan sus impresiones sobre el sprint recién superado, analizando cómo ha sido su manera de trabajar y cuáles son los problemas que podrían impedirle progresar adecuadamente, intentando conseguir una mejora continua del proceso. El Facilitador (Scrum Master) se encargará de ir eliminando los obstáculos identificados.

Scrum: Retrospectiva

Este flujo deberá repetirse hasta que todos los elementos del Blacklog hayan sido entregados, tal que entre los distintos sprints no se deben dejar tiempos sin productividad. Además, todas las acciones que se realicen han de tener un control. Es en el “Burn Down” donde marcamos el estado y la evolución del mismo, indicando las tareas y requerimientos pendientes de ser tratados.

Scrum: Funcionamiento

Como hemos comentado, de forma recurrente el cliente junto con el equipo refinan la lista de requisitos (para prepararlos para las siguientes iteraciones), actualizando el Product Backlog. De ser necesario, cambian o replanifican los objetivos del proyecto para maximizar la utilidad de lo que se desarrolla y el retorno de inversión.

Deja un comentario