Hoy en día cuando se va iniciar un desarrollo de software es común que en las organizaciones exista la duda sobre si deben utilizar Metodologías Ágiles (como Scrum) dada a su creciente aceptación y lo que han escuchado sobre las ventajas que ofrecen, o bien, seguir trabajando con Metodologías Tradicionales (como Cascada). Para resolver esta duda es muy importante conocer y entender bien las diferencias entre dichas Metodologías y sus respectivos enfoques.
Metodologías Tradicionales
Se utilizan desde hace muchos años y se basa en realizar el desarrollo de software linealmente por etapas. Se tiene un control estricto de roles, actividades, tiempos y se realiza de forma secuencial, no se puede avanzar a la siguiente etapa sin haber concluido la anterior. El valor del producto comienza a producirse al finalizar el proyecto. Principalmente se busca desarrollar un proceso predecible y disciplinado.
Metodologías Ágiles
Su utilización va en aumento a nivel mundial ya que ofrece ventajas que pueden llegar a ser muy importantes para las empresas al desarrollar un Producto, como por ejemplo la flexibilidad ante el cambio, la disminución de riesgos y la obtención de valor desde una etapa inicial y a lo largo de todo el proyecto. Están basadas en el Manifiesto Ágil.
Pilares del Manifiesto Ágil
- Valorar más a los individuos y sus interacciones que a los procesos y herramientas.
- Valorar más el software funcionando que a la documentación extensiva.
- Valorar más la colaboración con el cliente que a la negociación contractual.
- Valorar más la respuesta ante el cambio que seguir un plan.
Adicionalmente, los 12 principios del Manifiesto Ágil se pueden encontrar aquí.
Principales Diferencias
Ágiles (Scrum) | Tradicionales | |
Énfasis | En las personas | En los procesos |
Documentación | Mínima, solo la necesaria | Excesiva |
Estilo de proceso | Iterativo | Lineal |
Planificación por adelantado | Baja | Alta |
Priorización de requerimientos | Basada en el valor que dará el producto al negocio, se actualiza frecuentemente durante el proyecto | Fija en el plan del proyecto |
Organización | Equipos de trabajo autogestionados | Equipos de trabajo gestionados por un Administrador o Líder de proyecto |
Cambios | Se integran directamente al Product Backlog, generalmente pueden ser considerados desde el Sprint posterior al que se llevando a cabo, dependiendo del nivel de prioridad que se les otorgue | Gestión formal de solicitudes de cambio |
Liderazgo | Colaborativo, servicial | Comando y control |
Evaluación del desempeño | Con base en el valor proporcionado al negocio | Con base en el avance en el plan del proyecto |
Retorno de Inversión | Desde el inicio y a lo largo del proyecto | Comienza al finalizar el proyecto |
Participación del Cliente | Alta y a lo largo de todo el proyecto | Variable, se da en algunas etapas del proyecto |
Conclusión
Tomando en cuenta todo lo anterior y en base a mi experiencia, si se tiene la definición muy clara de todo lo que se requiere desarrollar y no existe la necesidad de sacar un MVP (Minimum Viable Product) al mercado para después irlo robusteciendo y además se desea tener un control estricto de Actividades, Fechas y Costos, lo recomendable es usar Metodologías Tradicionales.
Pero si no se tienen definidas todas las características del producto a desarrollar y se requiere innovación, flexibilidad para incorporar cambios, implementar un MVP a la brevedad para aprovechar una oportunidad y obtener valor para el negocio, definitivamente la recomendación es utilizar Metodologías Ágiles como por ejemplo Scrum.