Metodología Scrum para gestionar un proyecto de software con especificaciones cambiantesTrabajo en un proyecto para un cliente que cambia continuamente las especificaciones. Debemos adaptar nuestra forma de trabajar a esta particularidad. Por este motivo, utilizamos una metodología Agile, como
Scrum, para el desarrollo de firmware del producto.
Posteriormente, y desde mi punto de vista como desarrollador del Equipo de Desarrollo, enumero las ventajas de la metodología Scrum y te diré cómo seguimos las fases de Scrum todos los días.
Las ventajas de la metodología Scrum:
- Agilidad para adaptar el producto a posibles cambios futuros en las especificaciones.
- De acuerdo con las recomendaciones de Scrum, el equipo de desarrollo entrega la versión de firmware con frecuencia (mensualmente). De esta forma, y lo antes posible, el cliente devuelve sus comentarios de cada versión de firmware al Equipo de Desarrollo indicando posibles modificaciones. Esta retroalimentación se considera durante la próxima planificación del sprint. Esta estrecha relación entre el Equipo de Desarrollo y el cliente genera un alto nivel de satisfacción del cliente.
- No es necesario definir todas las especificaciones para iniciar el desarrollo, ya que el desarrollo se produce de forma incremental. -Una vez que se definen las especificaciones mínimas, se puede iniciar el desarrollo.
- Después de la planificación del sprint, el trabajo de todos los miembros del equipo de desarrollo estará bien definido.
- Los objetivos generales más importantes del sprint son más importantes que los objetivos específicos de un miembro de desarrollo. Por esta razón, el trabajo en equipo es más importante que el trabajo individual.
- La fecha límite del sprint es fija. En consecuencia, el equipo de desarrollo asegura que la versión del firmware se entregue sin demora. El nivel de confianza del cliente aumenta significativamente.
- Forzar la planificación y la supervisión del proyecto de forma iterativa.
Nuestro equipo ScrumEn nuestro proyecto, el Scrum Team consta de los siguientes miembros:
- Un Product Owner: define las especificaciones del producto y prioriza el trabajo de acuerdo con los requisitos del cliente. Proporciona comentarios de los clientes al equipo de desarrollo después del lanzamiento y entrega de un firmware.
- Un Scrum Master: es responsable de supervisar que todas las fases del scrum se completen con éxito.
- El Equipo de Desarrollo: consta de 10 desarrolladores que implementan el firmware del producto, observando los requisitos proporcionados por el Product Owner.
Trabajar con Scrum a diarioEl tiempo de desarrollo se configura en 3 semanas (la recomendación de la guía de referencia de Scrum aproximadamente), divididas en 2 semanas para el desarrollo de la nueva funcionalidad y 1 semana dedicada a aplicar pruebas de integración intensivas y corregir los bugs encontrados que ocasionalmente se detectan. Durante la fase de desarrollo, se realizan varios análisis estáticos del código fuente, utilizando el analizador Klockwork y se realizan diferentes análisis dinámicos del código fuente utilizando la herramienta Valgring.
Cuando se lanza un sprint, realizamos una reunión de
Sprint Planning de 3 horas para planificar las tareas a realizar durante el sprint, observando la prioridad y duración (en horas) de las tareas. utilizamos la herramienta Redmine para la planificación de Sprint. El equipo de desarrollo es responsable de actualizar el estado de la tarea a "Terminado" cada vez que se completa una tarea.
El Equipo de Desarrollo lleva a cabo una breve reunión diaria de 15 minutos designada como
Scrum diario. Durante esa reunión, cada desarrollador resume el trabajo realizado durante el día anterior, planifica su trabajo para el día actual y, si es necesario, solicita el apoyo de otro desarrollador. Estas reuniones son dirigidas por el Scrum Master.
Cuando finaliza el sprint, celebramos una reunión de
revisión del sprint de 2 horas durante la cual el equipo de desarrollo demuestra el "incremento del sprint" al propietario del producto, así como a los miembros del departamento de pruebas.
Finalmente, llevamos a cabo una reunión
retrospectiva de Sprint de 2 horas, durante la cual el equipo Scrum reflexiona sobre los errores ocurridos durante el sprint y desarrolla nuevos conceptos para mejorar los próximos sprints.
ConclusionesUna metodología ágil como Scrum solo se puede aplicar cuando el producto se puede desarrollar de forma
iterativa e
incremental. Desafortunadamente, este no es el caso de todos los productos.
Escrito por
Ángel Gutiérrez