SCRUM

      Scrum es una metodologia Agil y flexible que trata de ser de utilizar en proyectos donde el nivel de incertidumbre es alto. Su objetivo será controlar y planificar proyectos con un gran volumen de cambios de última hora, en donde la incertidumbre sea elevada.

     La metodología Scrum se centra en ajustar sus resultados y responder a las exigencias reales y exactas del cliente. De ahí, que se vaya revisando cada entregable, ya que los requerimientos van variando a corto plazo.

Serie Scrum] Apuntes para entender esta metodología ágil (1)

     Entre las principales características de la metodología Scrum , desataca que es un desarrollo incremental en lugar de la clásica planificación del desarrollo completo de un producto o servicio. Sus equipos de trabajo se caracterizan por ser auto-organizados. Y se centra en el producto final, en la calidad del mismo.

¿Cuando utilizar Scrum?
  • Cuando se tienen proyectos en entornos complejos.
  • Cuando se necesitan obtener resultados en cortos plazos de tiempo.
  • Donde los requisitos del proyecto son cambiantes o poco definidos.
  • Donde la innovación, la competitividad, la flexibilidad y la productividad son fundamentales.
  • Cuando no se esta entregando al cliente lo que requiere.
  • Cuando las entregas se aplazan demasiado.
  • Donde la calidad no es aceptable.
  • Donde se disparan los costes del proyecto.
  • Cuando la moral de equipo de trabajo es baja y existe una rotación alta.

¿Como implementamos Scrum en nuestro proyecto?

      Para poder implementar Scrum es necesario saber que esta se basa basicamente en hacer reuniones periodicas con base a ver los avances del proyecto, es decir se realizan reuniones para asegurar el cumplimiento de los objetivos establecidos, a este tipo de reuniones en este modelo se le conocen como Sprints, estos son el corazón de Scrum, es el contenedor de los demás eventos. Todo lo que ocurre para entregar valor está dentro de un Sprint. La duración máxima es de 1 mes, el tiempo se determina en base al nivel de comunicación que el cliente quiere tener.

     De esta menera se puede tener un desarrollo iterativo pues los Sprints deben de llevarse acabo periodicamente. En pocas palabras un Sprint es un conjunto de reuniones que se realizan durante el desarrollo del proyecto.

       Un Sprint consta de los siguientes pasos:
  1. Sprint planning - Planificación del Sprint: En ella, se divide el tiempo de duración del Sprint, así como el objetivo y entregable del mismo. Además, el equipo de desarrollo deberá saber cómo realizarlo. En pocas palabras es la fase inicial de la reunión, donde se establece que temas se estarán tratando y que objetivos se pretenden lograr. La primera reunión que se hace en el sprint, tiene una duración de 8 horas para Sprints de 1 mes.
  2. Daily meeting - Reunión diaria: Se basa en poner en común y sincronizar actividades para elaborar el plan del día. Es una reunión diaria dentro del Sprint, que tiene como máximo 15 minutos de duración. En ella debe participar, si o si, el equipo de desarrollo. En esta reunión diaria el equipo de desarrollo hace las siguientes 3 preguntas: ¿Qué hice ayer? ¿Qué voy a hacer hoy? ¿Tengo algún impedimento que necesito que me solucionen? Esta reunión es la más oportuna para poder inspeccionar al equipo, y poder adaptarse en caso de que haya cambio de tareas dentro de un Sprint.
  3. Sprint review - Revisión del Sprint: Reunión con el cliente o dueño del proyecto, en la que se estudia y revisa el proyecto.  Su duración es de 4 horas para Sprints de 1 mes, y es la única reunión de Scrum a la que puede asistir el cliente. En ella el Product Owner presenta lo desarrollado al cliente, y el equipo de desarrollo muestra su funcionamiento. El cliente valida los cambios realizados, y además nos brinda feedback sobre nuevas tareas.
  4. Sprint retrospective - Retrospectiva del proyecto: La retrospectiva es el último evento de Scrum, tiene una duración de 3 horas para Sprints de 1 mes, y es la reunión del equipo en la que se hace una evaluación de cómo se ha implementado Scrum en el finalizado Sprint. Es una gran oportunidad para el equipo Scrum de inspeccionarse a si mismo, proponiendo mejoras para el siguiente Sprint. En pocas palabras es una revisión del trabajo realizado y la propuesta de mejoras.
Roles:

       En Scrum existen 3 roles:

Product owner - Dueño del Proyecto:
     Es la persona que tiene asignado el proyecto, es básicamente el responsable (el que da la cara) del mismo. Se encarga de maximizar el valor del trabajo del equipo de desarrollo. La maximización del valor del trabajo viene de la mano de una buena gestión del Product Backlog.
     Es el único rol que habla constantemente con el cliente, lo que le obliga a tener muchos conocimientos sobre negocio. Un equipo Scrum debe tener solo 1 Product Owner, y este además puede ser parte del equipo de desarrollo.

Scrum Master - Facilitador: 
     Es el responsable de que Scrum sea comprendido y aplicado en la organización. Es el manager de Scrum, pero en ningún momento se le puede considerar un jefe. Líder servil que se encarga de eliminar impedimentos o inconvenientes que tenga el equipo dentro de un sprint, aplicando las mejores técnicas para fortalecer el equipo de marketing digital.
     Dentro de la organización, el Scrum Master tiene la labor de ayudar en la adopción de esta metodología en todos los equipos.

Development Team Member - Equipo de Desarrollo:
     Son los encargados de realizar las tareas priorizadas por el Product Owner. Es un equipo multifuncional y auto-organizado. Son los únicos que estiman las tareas del product backlog, sin dejarse influenciar por nadie.
     Los equipos de desarrollo no tienen sub-equipos, o especialistas. La finalidad de esto es transmitir la responsabilidad compartida si no se llegan a realizar todas las tareas de un sprint.
Son básicamente los encargados de crear el producto para que pueda estar listo con los requerimientos necesarios. Se recomienda que sea un equipo multidisciplinar, de no más de 10 personas. Sin embargo, empresas como Google disponen de unos 15.000 desarrolladores trabajando en una rama del código. Y con una metodología Scrum. La automatización en el testeo explica sobre por qué este gran volumen en el equipo.

Conceptos agregados del Scrum:

Product Backlog:
    Básicamente, el Product Backlog es el listado tareas que engloba todo un proyecto. Cualquier cosa que debamos hacer debe estar en el Product Backlog, estimado por el equipo de desarrollo.
     La responsabilidad exclusiva de ordenar el Product Backlog es del Product Owner, que se encuentra en constante comunicación con el cliente para asegurarse de que las prioridades están bien establecidas.
     La ordenación también es 100% responsabilidad del Product Owner, donde las tareas que están más arriba son las de mayor prioridad.
     El equipo de desarrollo elige tareas del Product Backlog en el Sprint Planning para generar tanto el Sprint Backlog como el Sprint Goal.

Sprint Backlog:
     Es el grupo de tareas del Product Backlog que el equipo de desarrollo elige en el Sprint Planning junto con el plan para poder desarrollarlas.
     Debe ser conocido por todo el equipo, para asegurarse que el foco debe estar en este grupo de tareas.
   El Sprint Planning no cambia durante el sprint, solo se permite cambiar el plan para poder desarrollarlas.

Ventajas de Scrum
  • Scrum es muy fácil de aprender, los roles, eventos y artefactos son claros y tienen un objetivo muy relacionado a nuestra manera diaria de trabajar.
  • El cliente puede comenzar a usar su producto rápidamente.
  • Se agiliza el proceso, ya que la entrega de valor es muy frecuente.
  • Menor probabilidad de sorpresas o imprevistos, porque el cliente está viendo frecuentemente el proyecto.
Desventajas de Scrum
  • Aunque Scrum sea fácil de aprender, es muy difícil poder implementarlo. Esto supone una predisposición y un cambio de cultura de la organización que debe ir desde los altos mandos hasta los clientes.
  • La necesidad de tener equipos multi-disciplinares puede ser un problema, ya que es difícil encontrar personas que sean capaces de hacer todo el trabajo de un equipo.
  • El equipo puede tender a realizar el camino más corto para conseguir el objetivo de un Sprint, el cual no siempre es el de mayor calidad.
¿Qué podemos conseguir con Scrum?
  • Temprana y constructiva retroalimentación para realizar ajustes.
  • El intercambio de conocimientos y la comunicación interna frecuente para mejorar nuestro desempeño.
  • Los equipos inspeccionan cada iteración a fondo y se adaptan rápidamente.
  • Mitigar los riesgos y resolver problemas fácil y rápidamente.
  • Salidas casi instantáneas de parches para problemas críticos.
  • Scrum es una metodología apropiada para proyectos con requisitos inestables que requieran rapidez y flexibilidad y cuente con equipos autogestionados y multidisciplinares.
     Veamos algunos videos de refuerzo del tema:





Metodologías ágiles

Copyright @ 2013 Metodología de Desarrollo de Software. Designed by Templateism | MyBloggerLab Editado por: Georgelys Marcano

Síguenos

en las RRSS