Qué es una Metodología Agile y sus PROS Vs CONS
Podemos decir que las metodologías ágiles son una serie de métodos y prácticas que nacen como una alternativa a las metodologías formales o tradicionales para el desarrollo de software. Estos “métodos ágiles” surgen en el 2001 y quedan recogidos en el Manifiesto Ágil.
Dentro del Agile existen diferentes enfoques y uno de ellos es el Scrum que es el que más se suele utilizar para el desarrollo del software y otros proyectos IT. Así pues, podemos decir que el Agile representa los valores y principios de esta cultura o forma de hacer las cosas, y el Scrum representaría una de las maneras de poner en práctica esta cultura.
Dicho lo anterior, cuando hablamos de abordar un proyecto bajo metodología Agile estamos hablando de hacerlo bajo un enfoque iterativo (recordar que el enfoque tradicional, cuyo máximo exponente es la metodología waterfall, está basado en un enfoque secuencial).
Qué significa por tanto hacerlo de esta manera, pues básicamente, que la solución final se va construyendo, entregándose y validándose por partes o paquetes funcionales completos a través de lo que se denominan sprints, donde el cliente prioriza sus requerimientos de negocio y en cada uno de ellos identifica todas las tareas y entregables necesarios. Así pues, el usuario toma contacto con la solución desde el inicio del proyecto con lo que puede ver si lo que se está construyendo en estos sprints se ajusta a sus necesidades y si falta o sobra algún componente funcional.
Este método se basa en la colaboración y en el trabajo en equipo, y tiene como ventajas principales:
- construcción de la solución está centrada en el usuario, ya que éstos están involucrados desde el inicio del proyecto en su definición, construcción y validación.
- el trabajo diario en el equipo cliente-proveedor mejora la comunicación y reduce la burocracia lo que hace que estos proyectos sean mas productivos.
- capacidad de adaptación y flexibilidad, ya que el producto se va entregando por partes y por tanto se pueden hacer cambios antes que esté completamente finalizado.
- el cliente adquiere un mayor sentimiento de propiedad ya que participa activamente en todo el proyecto y en consecuencia reduce la resistencia al cambio.
- mejora el cumplimiento de expectativas ya que tras la definición de los requerimientos iniciales el usuario participa directamente en la construcción de la solución y no tiene que esperar a la conclusión de esta fase para ver el resultado final del producto.
- y finalmente, ligado al punto anterior, se produce una reducción de los riesgos y una mayor transparencia.
No obstante, también presenta inconvenientes ya que suele ser complicado cerrar a priori un presupuesto dado que cuando se empieza a probar el producto puede faltar parte del software o que cambien los requisitos iniciales y aunque no debería haber problema en añadir nuevos requisitos puede verse afectado el precio final. Así mismo, otro inconveniente es que demanda una participación muy alta por parte del cliente cosa que a veces no es del todo posible y esto es muy importante porque los proyectos Agile funcionan mejor cuanto mayor es la dedicación de todos los miembros del equipo.