Agile vs Waterfall: ¿Qué enfoque adoptar en el desarrollo web?

Ágil vs. Cascada: ¿Qué enfoque adoptar en el desarrollo web?

Una de las mayores preocupaciones de toda empresa en el camino hacia la creación de un sitio web es decidir qué metodología de desarrollo utilizar. La metodología de desarrollo es la forma de organizar el trabajo de desarrollo de software. Por un lado, puedes optar por la vía tradicional, en la que todo está preparado, o por la vía libre, en la que adoptas un enfoque iterativo, una forma más flexible de trabajar en un proyecto. Uno se denomina método Waterfall y el otro Agile.

Método en cascada

El método en cascada existe desde hace mucho tiempo, de ahí que sea el enfoque tradicional del desarrollo de software. El proyecto se divide en distintas fases y luego se completa en secuencias. El número exacto de etapas de un método en cascada puede variar de una empresa a otra y de un proyecto a otro, pero he aquí el planteamiento general:

  • Concepción del proyecto – Como su nombre indica, aquí es donde empiezan los primeros pasos del proyecto. Es donde germina la semilla de una idea, y la primera en el Ciclo de Vida del Desarrollo de Software (SDCL).
  • Iniciación – Encontrar a las personas adecuadas para hacer el trabajo y ampliar el alcance del proyecto, con objetivos, propósito y fecha de entrega. Análisis – Se elaborará un documento de especificación de requisitos y se realizará un análisis de viabilidad del proyecto.
  • Diseño – El proyecto adopta una forma definitiva mediante maquetas, wireframes y storyboards. Codificación – Siguiendo el diagrama de diseño (diagramas de flujo, maquetas de diseño) creado en el paso anterior, el equipo empieza a trabajar en la aplicación real.
  • Pruebas – Etapa crítica en la que se ponen a prueba todos los esfuerzos de las etapas anteriores.
  • Producción/Implantación: una vez que se han completado y aprobado todas las fases de prueba, el producto entra en el mercado.
  • Mantenimiento – El equipo de desarrollo realizará continuas actualizaciones y correcciones de errores del producto. También se añaden nuevas funciones para que el producto siga siendo competitivo.

Ágil

El método Ágil, basado en el Manifiesto Ágil, es una forma más reciente utilizada por los desarrolladores en su ciclo de desarrollo de software. Este método se centra en ser lean y desarrollar MVPs o Productos Mínimos Viables a lo largo de cada iteración en lugar de ocuparse de toda la planificación de antemano.

La metodología ágil se rige por el manifiesto ágil establecido en febrero de 2017, y pone gran énfasis en el trabajo en equipo, la iteración continua, la mejora, la retroalimentación del usuario y la adaptabilidad a los requisitos del cliente.

En Agile, las distintas fases del desarrollo del proyecto se suceden en paralelo, mientras que un backlog realiza un seguimiento de las características y mejoras que se han ido añadiendo. Algunas de las implementaciones más populares de Agile son Scrum, Kanban, FDD o desarrollo basado en características, ASD o desarrollo de sistemas adaptativos y XP o programación extrema.

Elegir uno para su proyecto

Tanto la metodología de desarrollo de proyectos en cascada como la ágil son viables y le ayudarán a crear productos de alta calidad. Ambos son flexibles y estables, y te ayudan a organizarte mientras planificas un proyecto.

Puedes utilizar Cascada cuando:

No es probable que el cliente cambie sus requisitos en el transcurso del proyecto. Por eso es más adecuado para proyectos sencillos con resultados predecibles y para clientes con requisitos definidos. La característica de estabilidad de Waterfall y la trayectoria de desarrollo lineal y estructurada facilitan la labor de los equipos de desarrollo de proyectos.

El desarrollo ágil sigue un estilo de desarrollo más evolutivo.

Puedes utilizar Agile cuando:

Cuando el mercado que tenemos ante nosotros es un poco incierto y tenemos que crear un nuevo producto rápidamente, entonces Agile sería una solución factible.

Agile también sería una buena solución si no puede permitirse cometer errores costosos y, sobre todo, si no dispone de mucha información sobre el proyecto. También sería bueno si no puede permitirse requisitos estrictos.

Si no quiere hacer cambios, sobre todo cuando los requisitos cambian constantemente, desea reducir costes, corregir errores en el momento en que se producen y acabar con la incertidumbre durante el ciclo de desarrollo del proyecto, entonces Agile sería una buena elección. Esta sería probablemente la razón por la que las startups están tan a favor de Agile.

En el desarrollo ágil, probadores y desarrolladores trabajan juntos, y al final de cada intención, el producto será enviado y entregado al cliente. Las funciones modificadas y actualizadas serán
empezar a funcionar de inmediato.

Las diferencias de un vistazo:

Los procesos en cascada se prueban una vez realizado el trabajo, por lo que será difícil corregir los errores.

La agilidad permite mucha flexibilidad, y los requisitos en constante cambio no exigen precisión en el mantenimiento de registros.

Sin embargo, es importante avanzar con cautela, porque es probable que estos proyectos fracasen. Este método es más adecuado con desarrolladores muy experimentados y un cliente que haya invertido lo suficiente en el proyecto. La cascada no permite ningún meneo, porque se mueve en un camino bien definido con un meticuloso mantenimiento de registros. Los desarrolladores pueden predecir fácilmente cómo será el producto final. Una vez terminada una etapa del proyecto, no es fácil volver a ejecutarla y hacer cambios. Todos los elementos del proyecto están en su sitio, desde el tamaño del proyecto hasta su calendario y
presupuesto.

Agile se mueve en un proceso de diseño incremental que deja mucho espacio para la mejora. El proyecto se divide en varios modelos que se prueban y evalúan exhaustivamente.

El proceso del enfoque lineal de Waterfall:

  • Recopilar los requisitos de los documentos
  • Realizar el diseño
  • Código y pruebas unitarias
  • Pruebas del sistema
  • Realización de pruebas de aceptación del usuario (UAT)
  • Solucionar problemas
  • Entregar el producto acabado al cliente
  • Ideal para todo tipo de proyectos

El proceso del enfoque por sprints de Agile

  • Enfoque incremental del diseño de software
  • El producto se prueba en iteraciones de 2-4 semanas
  • El cliente ve el producto y sugiere cambios
  • Ideal para proyectos pequeños

Conclusión

Al analizar tanto Agile como Waterfall, resulta obvio que si se busca un proyecto con objetivos claros y una progresión definitiva, Waterfall sería una buena elección. Opte por la vía ágil si desea que su proyecto evolucione a medida que avanza hacia su finalización. Puede que incluso se convierta en algo más de lo que había planeado en las fases iniciales.

Flikr : //visualpun.ch, mandaruby, Lena Ellis


Sobre el autor: Reema trabaja como Thought Leader en PHPBabu.

Deja un comentario