¿Qué es el desarrollo Waterfall?

¿Qué es el desarrollo Waterfall?

El modelo de desarrollo Waterfall es la contraposición al desarrollo iterativo incremental. Se trata de un modelo de desarrollo lineal derivado de la ingeniería tradicional y algo anticuado en cuanto a su utilización en el desarrollo software. Se llama así porque funciona y se desarrolla de manera escalonada. Al igual que una cascada, siempre avanza y volver hacia atrás tiene altos costes.

En este modelo los requisitos, tanto por parte del cliente como de la empresa que lo gestione, se recopilan al comienzo del proyecto para luego ir creando un plan secuencial que facilite su puesta en marcha.

Esta metodología es ampliamente utilizado en algunas industrias como la construcción, también se ha utilizado en el desarrollo software, sin embargo, en este último no se han obtenido los mejores resultados ya que cada software es completamente distinto uno de otro y esta metodología nace en proyectos de ingeniería donde los procesos se pueden estandarizar, como por ejemplo, en la construcción de un puente.

¿Cuáles son las fases en el modelo Waterfall?

Pueden existir diferentes fases dentro del modelo en cascada o waterfall, este puede ser un ejemplo de una estructura típica:

  1. Toma de requisitos: el aspecto clave de este modelo, tal como hemos apuntado arriba, es que todos los requisitos necesarios para su desarrollo se recopilan al principio, lo que permite que el proyecto y las demás fases avancen sin una participación alta del cliente.
  2. Diseño: cuando hablamos de diseño en Waterfall, no hablamos de dotar al software de un aspecto más atractivo visualmente, sino de cómo se va a preparar la aplicación internamente y qué va a contener. En esta fase se construye la arquitectura del software. Además, se establecen las relaciones existentes entre cada uno de los elementos que formarán parte de la aplicación (facturas, clientes, empresas, ítems…etc.)
  3. Implementación: esta fase comienza cuando los programadores comprenden los requisitos y especificaciones de las fases anteriores y empiezan a programar código. Aquí es donde van a empezar a surgir las dudas y donde se va a ver cómo de válido es el planteamiento inicial. El tiempo que pasa hasta que empieza la implementación es un tiempo que se puede perder si algo de lo anterior no funciona correctamente o no fue bien planeado.
  4. Verificación: en esta fase se instala el software. El cliente lo revisa para asegurarse de que los requisitos establecidos al principio del proyecto se están cumpliendo realmente.
  5. Mantenimiento: el cliente ya está utilizando regularmente el producto lo que hace que se empiecen a descubrir errores o características que no les satisfacen completamente. En esta fase el equipo de mantenimiento aplicará soluciones según las necesidades del cliente, hasta que este quede satisfecho.

Ventajas

Aunque a priori puede parecer que este es el modelo de desarrollo más intuitivo lo cierto es que aporta pocas o ninguna ventaja en el desarrollo de software.

Desventajas

El plan de contenido

Entre otras estas son algunas de sus desventajas:

  1. Feedback loop largo: esto quiere decir que hasta el proceso de verificación el cliente no sabe realmente qué se está haciendo y cómo es el software.
  2. Difícil introducir cambios: los requisitos son cimientos sobre los que se asienta el desarrollo Waterfall, por lo que si alguno de ellos no se ha fijado de manera correcta y posteriormente se quiere cambiar algo va a ser muy complicado y se va a tener que reconstruir el software de manera completa.
  3. Detección de errores muy tardíos: los errores se empiezan a captar una vez el cliente empieza a probar la herramienta, que suele ser pasado un tiempo considerable. Los errores pueden aparecer por ambas partes: tanto por parte del cliente como de la empresa encargada de desarrollar el software.
  4. Se tarda más en obtener valor de dicho software: es una de las principales desventajas de este sistema con respecto al iterativo incremental. En los desarrollos agile, se puede empezar a obtener beneficios del software poco tiempo después de empezar a trabajar con él, ya que se van instaurando las partes del software poco a poco, sin embargo, en el Waterfall solo se empieza a obtener beneficios cuando el software está completo al 100%.
  5. Si los requisitos no son correctos el impacto en el funcionamiento del software es muy grande y es muy complicado hacer que funcione.
  6. Los clientes acaban agregando frecuentemente requisitos al proyecto, lo que hace que se retrase la producción.

¿Como es su adopción en la industria?

Aunque hace años la mayoría de las empresas utilizaban este modelo, y los jefes de proyectos eran expertos en el uso de microsoft planner, hoy en día la mayoría de las empresas han dejado esta metodología en desuso y han adoptado en mayor o menor medida alguna de las metodologías ágiles que hay disponibles.

En futuras entradas hablaremos de ellas:

  1. Scrum
  2. Kanban
  3. extreme programming