Hoy nos centraremos en explicar qué son las metodologías ágiles y Scrum, como parte de estas metodologías: herramientas básicas para aumentar la productividad en nuestro trabajo diario.
¿Nos acompañáis?
Las Metodologías ágiles: ¿Qué son y en qué consisten?
Como programadores, nos enfrentamos a cambios constantes que afectan a nuestro trabajo diario. Las últimas tendencias que aplicamos hoy, puede que no sean las últimas tendencias del mañana. Por eso, existen las Metodologías ágiles: donde los requisitos y soluciones evolucionan mediante la colaboración de grupos auto organizados y multidisciplinares.
Podemos definir las Metodologías ágiles como el conjunto de técnicas dirigidas a la gestión de proyectos, que han surgido como contraposición a los métodos clásicos de gestión como CMMI. Todas las metodologías que se consideran ágilescumplen con el Manifiesto ágil, que no es más que una serie de principios agrupados en tres valores: 1. Los individuos y su interacción: Por encima de los procesos y herramientas.
2. El software: Que funciona, frente a la documentación exhaustiva. 3. La colaboración con el cliente: Por encima del seguimiento de un plan. De manera popular, se cree que las Metodologías ágiles suponen una falta de control sobre el proyecto, unidas a una falta de documentación. Esto es rotundamente falso. Lo que se pretende con este tipo de metodologías es primar las tareas realmente importantes frente a las que pueden ser menos importantes de cara al desarrollo del producto. Lo que mejora en gran medida la productividad en el proceso de desarrollo. |
Dentro de todos los métodos de desarrollo ágil, vamos a centrarnos en el que actualmente domina el panorama: Scrum.
¿Qué es Scrum?
Scrum es un método de trabajo ágil 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 dentro de un proyecto, minimizando así los riesgos derivados de los desarrollos muy largos. Para esto es primordial la colaboración con el cliente, ya que es éste quien establece las prioridades en función de sus necesidades.
Por ello, Scrum está especialmente indicado para proyectos en entornos complejos, donde se necesitan obtener resultados de manera inmediata y donde la innovación, la competitividad, la flexibilidad y la productividad son fundamentales.
Por tanto, ¿Qué beneficios aporta Scrum al proceso de desarrollo?
1. Gestión de las expectativas del cliente
Es muy común en los desarrollos tradicionales que, desde la toma de requisitos hasta la entrega del producto terminado, pase mucho tiempo y las necesidades y expectativas del cliente cambien. Con Scrum, el cliente establece sus expectativas indicando el valor que le aporta a cada requisito del proyecto y cuándo espera que esté completado. Así, el cliente comprueba de manera regular si se van cumpliendo sus expectativas durante todo el desarrollo del proyecto, dándole la posibilidad de poder cambiar los requisitos y prioridad de los mismos.
¿En definitiva? Se ahorra esfuerzo y tiempo al evitar hipótesis.
2. Reducción en tiempos de desarrollo y puesta en marcha
Al finalizar cada iteración, se entregan funcionalidades completas y funcionales, por lo que el usuario es capaz de utilizarlo desde ese mismo momento sin la necesidad de que el proyecto esté completamente finalizado.
3. Capacidad de adaptación
Gracias a que, con Scrum, el cliente está revisando el producto al final de cada iteración, éste es capaz de adaptar los requerimientos o la prioridad de los casos de uso.
4. Aumento de la productividad
Scrum se basa en un proceso de mejora continua, con una constante revisión del trabajo, realizada por el propio equipo, identificando las fortalezas y debilidades del mismo, con el objetivo de mejorar al máximo el sprint anterior.
5. Estimación de esfuerzo continua
En el inicio de la iteración, los miembros del equipo estiman de manera conjunta el esfuerzo necesario para completar requisitos y tareas.
¿Quién participa en el proceso?
Como podemos comprobar, Scrum y las Metodologías ágiles apuestan por el trabajo en equipo y de manera colaborativa, para obtener el mejor resultado posible del proyecto. En Scrum existen una serie de roles definidos por la propia metodología. Todos y cada uno de estos roles son imprescindibles para que el proceso funcione
|
¿Cómo funciona el proceso?
Hasta aquí, la parte de Metodologías ágiles.
Espero que os sirva en vuestro trabajo como desarrolladores.
¡Ya sabéis! ¡El trabajo en equipo es el mejor compañero de la productividad!
Escrito por Jesús Pérez Alabarce, analista programador .NET en Bravent.
Fuentes utilizadas: Proyectos ágiles, i2btech, Agilemanifiesto.