Desarrollo de Aplicaciones

Metodología SCRUM para un desarrollo versátil

Desarrollar un proyecto con esta metodología ágil te permite entregar un producto por fases, de manera muy controlada y con una alta comunicación con tu cliente

Metodología SCRUM

Vivimos en una sociedad altamente cambiante. Muchas veces durante el proceso de desarrollo de un sitio web, el contexto y el mercado en que el cliente se mueve cambia. En algunos casos, incluso la propia estrategia del cliente y lo que espera de su sitio web puede modificarse. 

En cualquier caso, es posible que al llegar la fecha de entrega y el sitio web salga a la luz, la página no responda a las necesidades del mercado y arroje unos resultados por debajo de la media. Obligando rápidamente a ejecutar tareas de remodelación.

Estas tareas también tendrán una fecha de entrega y, cómo puede uno imaginarse, es posible que se vean afectadas por el mismo cambio de mercado. Las soluciones a los problemas pueden llegar siempre tarde.

Una manera de prevenir que el producto quede desfasado es trabajar con entregas más cortas, entregas parciales que se centran en desarrollar funcionalidades una tras otra hasta llegar a un producto final válido para el mercado. Si durante el proceso de desarrollo algún objetivo cambia, es más fácil que los desarrolladores puedan adaptar el código, ya que la comunicación entre cliente y desarrollador es mucho más asidua. Llamamos a este tipo de metodologías de trabajo Ágiles (Agile) por su capacidad para adaptarse en menor espacio de tiempo.

Dentro de las metodologías ágiles, Scrum se ha especializado en la rápida respuesta a cambios sustanciales en el proyecto

Esta metodología, muy sencilla en apariencia, requiere de un alto nivel de comunicación entre todas las partes implicadas. Requiere también un elevado nivel de experiencia por parte del equipo desarrollador. Se focaliza principalmente para equipos de trabajo pequeños; el proyecto, no obstante, no tiene límite de envergadura.

La importancia de los sprints

Scrum se basa en entregas periódicas en un espacio de tiempo de 3 o 4 semanas al que llamamos Sprint. Al principio del sprint, se fijan unos objetivos a conseguir por parte del equipo de desarrollo y al final se realiza una entrega. Posteriormente, se evaluará qué no se ha podido entregar o si algun elemento ha causado conflictos inesperados. De esta manera, el siguiente sprint tendrá como objetivo básico mejorar los elementos del anterior e integrar nuevas funcionalidades.

Para trabajar siguiendo esta metodología, es idóneo disponer de un equipo de desarrollo pequeño y del que se espera un elevado know-how y capacidades para tomar decisiones y ser autosuficientes. Es importante que cada miembro del equipo tenga en cuenta el trabajo de los demás, pero también es importante que puedan tomar decisiones para solucionar de la manera más adecuada cada problema, sorteando las limitaciones que puedan venir del software.

Un requerimiento indispensable para el trabajo en metodologías Scrum es el disponer de una figura de liderazgo para el proyecto. Este líder es una figura central a la que se la llama Facilitador o Scrum Master.

El Scrum Master

El Scrum master cumple un rol triple en el proyecto: comunicación con el cliente, organización del equipo y evaluación de los cambios.

El Facilitador mantiene reuniones con el cliente una vez por sprint para dictaminar los objetivos del nuevo sprint y los resultados del previo. Se evalúan los objetivos a seguir, se priorizan las tareas y se hace un resumen de los resultados esperados.

Posteriormente, se reune con el equipo de desarrollo para transmitir esta información y coordinar el trabajo que cada miembro hará. En esta reunión con el equipo se evalúan los posibles riesgos de la nueva implementación e intentan solucionarse.

Durante esta reunión, se espera del equipo de desarrollo que manifieste todas sus inquietudes respecto a las tareas. Se les otorga la suficiente autoridad como para decidir la mejor manera de implementar las mejoras. Por ello es necesario que su conocimiento del proyecto y de las herramientas sea elevado.  Muchas veces esto facilita también poder trabajar en equipos más pequeños.

Finalmente, cuando el sprint acaba, se realiza una reunión de evaluación con el equipo, para saber qué objetivos han podido cumplirse y cuáles no; qué posibles dificultades se han encontrado durante el desarrollo y qué se puede hacer para evitarlas en un futuro. Esta reunión ayuda a todos los miembros del equipo a mejorar el trabajo ya realizado. Facilitando también un intercambio de información que pueda permitir el cambio de roles entre los desarrolladores.

Control de versiones y entregas

Es importante tener una buena manera de facilitar las entregas. Es por esto que los aplicativos de control de versiones, los sistemas de integración contínua y aplicativos de automatización son tan importantes. Es importante poder tener copias de seguridad y trabajar de una manera organizada que permita gestionar todas las contribuciones de los desarrolladores.

Para dar tareas por acabadas, es necesario tener un buen sistema de pruebas que se ejecuten de manera automática para garantizar el correcto funcionamiento tras el despliegue. Del mismo modo, una herramienta que pueda automatizar estas tareas muchas veces también ejecuta de manera automática una serie de tareas en el servidor para automatizar y minimizar el tiempo de despliegue.

Scrum es un sistema ventajoso en muchos proyectos ya que permite al cliente evaluar el proyecto cada poco tiempo. Pedir cambios y verlos en funcionamiento en poco tiempo facilita la adaptación del producto a las necesidades del mercado y también que las funcionalidades se puedan perfilar para obtener la mejor Experiencia de usuario posible.

Pero también es un sistema ventajoso para los propios desarrolladores, ya que permite que el equipo corra riesgos más controlados dado el tipo de entregas incrementales. A la vez que permite acabar con un entregable cuyo código es de una mayor calidad, algo que nosotros los desarrolladores agradecemos y nos hace sentir orgullosos.

Comparte este artículo

Artículos Relacionados