Una de las primeras decisiones a la que nos enfrentamos cuando comenzamos a enfocar un proyecto es elegir la metodología más adecuada para el mismo. Generalmente no es una decisión sencilla, siendo necesario debatir los requerimientos del proyecto antes de elegir la más apropiada.
Las dos metodologías más utilizadas en el desarrollo de proyecto son:
Ambas metodologías son usables, maduras y se pueden implementar en una gran variedad de proyectos. A continuación, analizaremos las fortalezas y debilidades de cada una de ellas.
Esta metodología es una aproximación lineal al desarrollo de software y ha sido la más utilizada durante los últimos 30 años. La secuencia que sigue este método está compuesta de las siguientes fases:
En un desarrollo waterfall puro, cada una de estas fases representan una etapa diferenciada en el desarrollo del producto final. Cada una de estas etapas deben darse por concluidas antes de comenzar con la siguiente. Además, entre cada una de ellas, generalmente tenemos un hito bloqueante que nos impide avanzar a la siguiente si este no se libera adecuadamente. (P.ej. Los requisitos han de ser validados por el cliente antes de avanzar a la fase de diseño.)
No podemos negar que el uso de esta metodología aporta puntos positivos al desarrollo de un proyecto:
Pero también nos encontramos con circunstancias adversas cuando decidimos emplear una metodología waterfall puro:
Agile es un enfoque iterativo y basado en equipos para el desarrollo. Este enfoque enfatiza la entrega rápida de una aplicación en componentes funcionales completos. Cada Sprint tiene una duración definida con una lista continua de entregables, planificada al principio del sprint. Los entregables son priorizados por el valor del negocio, determinado por el cliente. Si no se puede completar todo el trabajo planificado para el sprint, se vuelven a priorizar las tareas y se incluyen en el siguiente sprint.
A medida que el trabajo se completa, este puede ser revisado y evaluado por el equipo del proyecto y el cliente, a través de las ceremonias Agile . Las metodologías Agile cuentan con un alto nivel de participación del cliente en todo el proyecto, pero especialmente durante estas revisiones.
Decidir la metodología más adecuada para cada caso no es una decisión sencilla, cada proyecto, por sus características intrínsecas, requiere distintas formas de gestión. Es conveniente hacer una investigación del proyecto con detenimiento, así como de las circunstancias que lo rodean y del entorno del propio cliente.
En ocasiones, implementar íntegramente una metodología, ya sea waterfall o Agile, es bastante complejo. Es por ello que, dependiendo de la tipología del proyecto, recomendamos un enfoque metodológico híbrido, al que hemos denominamos Hybrid Agile. Esta metodología, parte de Scrum, y suaviza un poco la curva de adaptación al mismo, sin perder la capacidad de introspección, transparencia e iteración de las metodologías Agile, a la vez que introduce ciertas características de metodologías más tradicionales, haciendo así que en entornos que tienen escasa formación en enfoques Agile, los equipos de trabajo y el cliente se sientan más cómodos.
Esta metodología hibrida incluye el uso de prototipos, donde sea posible, para proporcionar al cliente una mejor visión de su producto terminado al principio del ciclo de diseño y desarrollo. Esto ayuda a mejorar la comprensión del equipo de los requisitos y la comunicación con el cliente.
De nuestra experiencia, consideramos los siguientes factores (reflejados en la tabla comparativa) a la hora de elegir una metodología frente a la otra.