Aunque las metodologías de desarrollo de software no varían en lo esencial, sí que se puede hablar de modelos o marcos de trabajo distintos. Son métodos de trabajo que han sido creados para satisfacer necesidades específicas en los proyectos. Veamos los modelos más destacados en esta área:
Una metodología de desarrollo de software brinda al equipo de trabajo un marco para construir aplicaciones de manera eficiente y rigurosa, garantizando un producto cercano al esperado. Si no se desarrolla a partir de una metodología, el resultado final será impredecible y no se podrá controlar el avance del proyecto.
A lo largo de la historia de la computación han
existido diversas metodologías, adaptadas a las posibilidades tecnológicas de
cada momento:
Ø Cascada.
El
desarrollo es visto como el flujo de una catarata: las fases (análisis, diseño,
implementación, testing, integración y mantenimiento) son secuenciales,
impidiéndose iniciar una fase sin haber terminado la anterior.
Ø Prototipado.
A
lo largo de todo el ciclo de desarrollo se van implementando prototipos, o
versiones preliminares del producto, hasta llegar al software final.
Ø Incremental.
Una
combinación de los anteriores. Es una metodología iterativa: en cada
repetición, se entrega un producto no definitivo, pero plenamente funcional,
para someterlo a la evaluación del cliente, con quien se mantiene un contacto
permanente. Así, con cada iteración se avanza hacia el entregable final.
Ø En espiral.
Un
enfoque cíclico: se repiten varias veces las etapas de planificación, análisis,
evaluación y desarrollo. Se minimiza el riesgo al dividir el proyecto en
segmentos pequeños y, por lo tanto, controlables.
Ø Metodologías
ágiles.
Esta
familia de métodos es la que más se aplica en la actualidad. Todos ellos se
caracterizan por una permanente interacción entre los miembros del equipo de
desarrollo, poca planificación, asesoría constante por parte del cliente e
iteraciones cortas, al cabo de las cuales se entrega una demostración
preliminar del producto. Son tanto incrementales como iterativas.
Actualmente, la predominancia de la programación
orientada a objetos y las crecientes exigencias de productividad favorecen la
aplicación de las metodologías ágiles, que más adelante comentaremos en
profundidad.
Estos grandes modelos de metodologías son los más
empleados en la actualidad en la industria del desarrollo de programas de
software. Contrario a lo que pueda pensarse a primera vista, no se excluyen en
absoluto; de hecho, en algunos casos pueden ser complementarios y llegar a
satisfacer necesidades de los proyectos que con un solo modelo no podrían ser
cubiertas. Cuando es así, por lo general dan origen a grandes sistemas.

