Buscar
  • k19jao

Metodología Tradicional v/s Agil... ¿Cuál aplicar?

Describiremos y compararemos el enfoque de Desarrollo de Sw basado en Metodología Tradicional v/s Ágil.



Metodología Tradicional

En el Desarrollo de Software se habla de Metodología Tradicional del desarrollo a todas aquellas metodologías que se inspiran y emulan el proceso de construcción de productos físicos (naves, puentes, edificios, vehículos, etc.). 


Estas metodologías "tradicionales" del desarrollo del software se caracterizan por definir y utilizar como molde un Ciclo de Desarrollo del Software En Cascada, denominado así pues organiza los proyectos en Fases tapas que se ejecutan rigurosamente en forma secuencial. Un Ejemplo de las fases típicas de este enfoque es:

  1. Especificación de Requisitos

  2. Análisis

  3. Diseño

  4. Construcción (Desarrollo del código)

  5. Pruebas

  6. Producción (Implantación)

  7. Mantenimiento

Además, ejecutan las fases una sola vez, pues, lo que se define en cada etapa es inamovible y hasta que no finaliza con éxito una etapa no se pasa a la siguiente. Por Ejemplo, hasta que no se aprueba el diseño del software no se inicia el desarrollo y construcción del mismo.


Otra característica es definir etapas claramente diferenciadas en las que participan distintos profesionales especializados.

Algunos de sus Inconvenientes son:

  • El usuario no ve el producto hasta el final, no puede ir validando hitos intermedios e ir verificando que lo que se ha construido es lo que necesita.

  • Si mi negocio es muy cambiante, pueden variar las necesidades desde el día que se toman los requisitos hasta el día de inicio la construcción.

  • Si durante una etapa del Ciclo del Desarrollo del software nos damos cuenta de que algo está mal, la vuelta a una etapa anterior no está bien definida en la metodología.

Metodología Ágil

Su visión es que el desarrollo del software no tiene las mismas características que la construcción de productos físicos, pues, aquí está en juego un proceso creativo basado en la iteración constante, pues, se va co-construyendo constantemente.


Así entonces, una metodología ágil tiene como visión fundamental un Ciclo de Desarrollo del Software iterativo e incremental. Es decir, permite que se repitan las etapas de cada ciclo, se va añadiendo funcionalidad al producto y se comprime al máximo el tiempo de las iteraciones, son iteraciones cortas de semanas. Se hacen entregas parciales del producto para ir validando con el usuario que el producto cumple los requisitos.


Además, se entremezclan las etapas, pues, no siempre dentro de cada iteración tiene que haber etapas en cascada, por ejemplo, la etapa de Test se fusiona con la etapa de Desarrollo o la del Diseño con la etapa de Construcción.


Otra característica es que se cambia la documentación por una interacción cara a cara con el usuario, hay equipos multidisciplinarios sin separación de roles (todos pueden opinar, diseñar e incluso programar) y, se tiende a una gestión de proyecto como equipo auto organizado y colaborativo.

Algunos de sus Inconvenientes son:

  • Es fundamental disponer de asignación dedicada full de usuarios claves del negocio, como parte integrante del Equipo de Proyecto.

  • Hay riesgo de entrar en un ciclo de entrega de prototipos y, nunca cerrar el proyecto.

  • La gestión es más rigurosa y con menos holgura para cometer errores.


Ambas metodologías son buenas, sólo hay que identificar cuál es la que mejor se ajusta a tu proyecto.


Sin embargo, hay un elemento central en todo esto: Independiente del enfoque metodológico que se utilice, sea orientado a Cascada ó Agilidad, siempre será crítico aplicar oportunamente técnicas de Aseguramiento de Calidad de Software,de manera de que el equipo de proyecto gestione la madurez de c/u de las etapas y entregables.


0 vistas

RDS, Aurora, PostgresSQL, MS SQL Server, Oracle, MySQL, MariaDB​

AWS