SCRUM, METODOLOGIA DE DESARROLLO DE SOLFTWARE AGIL

Dentro de los muchos frameworks para desarrollar software, Scrum se ha convertido en los últimos tiempos en un estándar que muchas grandes empresas de tecnología están utilizando para  acortar sus tiempos de desarrollo, y entregar un producto de calidad.

Aproximadamente en 1986 Hirotaka Takeuchi e Ikujiro Nonaka describieron una nueva forma para el desarrollo productos comerciales, que incrementaba la rapidez y la flexibilidad en el proceso. Ellos comparan este nuevo método, en la cual las fases se traslapan de manera intensa y el proceso completo es realizado por un equipo con funciones diversas, como en el rugby, donde el equipo entero actúa como “un solo hombre para intentar llegar al otro lado del campo, pasando el balón de uno a otro”. Estos casos de estudio se originan de las industrias automovilísticas, así como de fabricación de máquinas fotográficas, computadoras e impresoras.
En 1991 Peter DeGrace y Leslie Stahl en su libro Wicked Problems, Righteous Solutions, se refirieron a esta aproximación como Scrum, un término propio del rugby mencionado en el artículo por Takeuchi y Nonaka.

images (2)

El scrum es una de las formaciones características del rugby. Es un trabajo de equipo.

 Es así como a principios de los años noventa Ken Schwaber empleó una aproximación que lo llevó a poner en práctica el scrum en su compañía. Por aquel tiempo Jeff Sutherland desarrolló una aproximación similar en Easel Corporation y fue el primero en denominarla scrum. Finalmente en 1995 Schwaber y Sutherland, durante la conferencia OOPSLA '95 en Austin, Estados Unidos, presentaron en paralelo una serie de artículos describiendo scrum, siendo ésta la primera aparición pública de la metodología. Después ellos siguieron aportando con su experiencia y escribieron una serie de artículos  y ambos colaboraron para sentar las bases de las mejores prácticas de la industria que hoy en día se conoce como Scrum.

Scrum utiliza un elemento representativo: el sprint, que ingles significa “carrera corta” y representa una etapa de trabajo. Y es así como los creadores de esta metodología ven a una etapa del desarrollo del software. Podemos compararla a la carrera por postas en la que muchos corredores intervienen y en cada fase deben correr una distancia corta o “sprint”.  Esta analogía llevada a la creación de un software, se convierte en una técnica muy dinámica y colaborativa y con muy buenos resultados en calidad  y agilidad.

El Sprint es la unidad básica de desarrollo en Scrum, usualmente va desde una semana hasta un mes y está definida por una fecha de inicio y una fecha de fin. Durante el Sprint los miembros del equipo deben cumplir las tareas y completarlas.  Normalmente un proyecto puede tener varios sprints.

En Scrum existen tres actores o roles principales:

  • El Dueño del Producto (Product Owner), representa a los inversionistas o las personas que requieren el software.
  • El Director Scrum (Scrum Master), es el facilitador del equipo, supervisa al equipo  y verifica que se lleven a cabo las reuniones y se haga uso de los artefactos. Ayuda a que el proyecto tenga éxito. Elimina los problemas e impedimentos que se pudieran presentar. Ayuda a los miembros del equipo a tomar decisiones responsables y los asesora en todas las maneras posibles para que alcancen sus objetivos.
  • Los miembros del equipo (Team Members), son los que desarrollan el software, poseen las capacidades técnicas para fabricar el producto.

También se utilizan tres artefactos:

  • La Pila de Producto (Product BackLog), que es una lista de todas las cosas “Por Realizar” del proyecto. Esta lista es confeccionada por el Dueño del Producto de acuerdo a los requerimientos y esta ordenada por la prioridad que tiene cada elemento en la pila. Es decir de mayor a menor importancia.

images

  • La Pila del Sprint (Sprint BackLog), son las actividades que se van a realizar dentro de un sprint.
  • El Grafico de Trabajo Pendiente (Burndown Chart). Representa visualmente el trabajo que está por hacer versus el tiempo restante del proyecto. El trabajo pendiente se representa en el eje vertical y el tiempo en el eje horizontal. Es útil para predecir en que tiempo se terminaría todo el trabajo, incluso se puede establecer el ritmo de avance del proyecto del equipo.

Se definen tres reuniones que se deben realizar utilizando el método Scrum:

  • Planeación del Sprint (Scrum Planning), con la ayuda del Product Owner y el Scrum Master y el equipo, se compromete con las actividades que se deben realizar de la Pila del Producto. Es decir se seleccionan actividades prioritarias y relacionadas y con la restricción del tiempo existente, para que estas formen parte de la siguiente iteración (Sprint).
  • Reunión Diario de Scrum (Daily Scrum), esta actividad se lleva a cabo todos los días y debe durar quince minutos o menos. Cada miembro del equipo debe comunicar al resto del equipo y al Scrum Master, tres ítems indicados en la Tabla de Tareas: lo que se realizo, lo que se va realizar el día de hoy, y si existe algún impedimento para llevar a cabo el trabajo. Cada tarea debe evolucionar desde  Por hacer (To Do), En Progreso (In Progress), Realizadas (Done). Al finalizar el sprint todas las tareas deben estar realizadas. Esta reunión es muy importante porque aquí los miembros comparten información, para determinar la mejor manera de cumplir sus tareas y poder terminar con las metas del Sprint. Se manifiestan los riesgos encontrados y es útil porque permite que los miembros del equipo sean más eficaces.

Durante esta reunión el Scrum Master debe determinar los problemas e identificar si estos se pudieran convertir en un impedimento para completar el proyecto.

  • Revision del Sprint (Sprint Review). Al final del sprint se muestra a los clientes y al Dueño del Producto lo que ha terminado el equipo. Es decir el Producto Terminado del Sprint- Los clientes proveen del feedback necesario y pueden terminar o no  la necesidad de otro Sprint para mejorar el producto. Esto ayuda a crear el software con los requerimientos exactos del cliente y permite que el equipo sea más eficaz.
  • Retrospectiva del Sprint (Sprint Retrospective). Esta reunión también se lleva al final del Sprint, y a diferencia de la Revisión del Sprint, sirve para mejorar al equipo. Se evalúan los aciertos y desaciertos del equipo en la realización de sus tareas. Y se proveen técnicas para reducir los errores, como pruebas de testing, ayuda de logística. Esto empodera al equipo para que sea exitoso, permitiendo que mejoren en el siguiente Sprint.

 

Ventajas de Scrum:

  • El cliente puede comenzar a utilizar el producto rápidamente.
  • El cliente puede decidir los nuevos objetivos a realizar.
  • Se agila el proceso, porque se divide el problema en pequeñas tareas.
  • Menos probabilidad de que se den sorpresas o desarrollos inesperados porque el cliente va viendo poco a poco lo que se está desarrollando.

Desventajas de Scrum:

  • Existe la tendencia que si se deja una tarea sin terminar y que por las exigencias del Dueño del Producto se deban realizar otras nuevas. Estas tareas no terminadas puedan obstaculizar la planeación de nuevas sprints y se deba volver al problema original.
  • Alto nivel de stress de los miembros del equipo, el desgaste puede ser excesivo y estresante lo que puede disminuir el rendimiento.
  • La necesidad de contar con equipos multidisciplinarios puede ser un problema, porque cada integrante del equipo debe estar en capacidad de resolver cualquier tarea y no siempre se cuenta con este perfil en la empresa.
  • El equipo puede estar tentado de tomar el camino más corto para cumplir con un sprint, que no necesariamente puede ser el de mejor calidad en el desarrollo del producto.

 

COMPARACION METODOLOGIAS RUP, XP, MSF

 

cuadro

 

Enlaces de Referencia:

http://www.youtube.com/watch?v=WxiuE-1ujCM

http://www.youtube.com/watch?v=_QfFu-YQfK4

http://scrum-ing-software.blogspot.com/2010/09/antecedentes.html

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *