Metodologías de desarrollo de software

Infografía
turned-on black LG flat screen monitor

¿Qué son?

Una metodología de desarrollo es un marco común de trabajo que se usa para estructurar, planificar y controlar el proceso de desarrollo en sistemas de información. 

La composición de una metodología de desarrollo de software varía dependiendo de la metodología específica a la que se haga referencia y, más en concreto, a si la metodología es tradicional o ágil.

Metodologías tradicionales de desarrollo

CASCADA

Se caracteriza por ofrecer un proyecto bien estructurado y de robusta documentación. Permite una definición precisa de los requerimientos del proyecto.

Los proyectos complejos son imposibles de fragmentar. Es estricta frente a cualquier tipo de cambio o modificación.

ESPIRAL

Es permisiva con los cambios dado su carácter iterativo. Además, el cliente puede participar activamente en el proceso.

Su proceso iterativo puede prolongar la duración del proyecto. Por su parte, requiere de expertos en el ámbito del control de riesgos.

POR PROTOTIPOS

Destaca por no precisar de requerimientos robustos o estables para iniciar el proyecto. Facilita la presentación de los resultados del proyecto a los clientes.

El prototipo generado suele confundirse con el producto final, aun cuando no está finalizado.

DESARROLLO RÁPIDO DE APLICACIONES

Destaca por su flexibilidad y adaptabilidad a los cambios. El producto es fácil de trasladar a otros entornos.

La metodología requiere de tiempos de entrega precisos para funcionar. No se aconseja utilizar en proyectos de menor escala. 

Se crearon con el propósito de mejorar el pésimo tratamiento que se le daba al software durante sus primeros años de vida. Estas se caracterizan por su poca flexibilidad a los cambios.

Las metodologías tradicionales se rigen bajo una estructura secuencial inalterable basada en etapas. Dichas etapas son: el análisis de requerimientos, diseño, programación, pruebas y mantenimiento.

Metodologías ágiles de desarrollo

Se caracterizan por su versatilidad debido a lo sencillo que les resulta el adaptarse a los cambios, sin alterar las características originales del proyecto en el proceso. 

En principio, estas surgen como respuesta a las carencias de las metodologías tradicionales. Sin embargo, gracias a los constantes cambios en los mercados y los entornos de trabajo, estas han ido evolucionando, en favor de un proceso de desarrollo optimizado.

PROGRAMACIÓN EXTREMA (XP)

Las constantes pruebas al producto, garantizan un código de mayor calidad. El cliente puede participar activamente en el proceso.

Al enfocarse meramente en la programación, el proceso es mucho más complicado. Posee una fuerte dependencia al equipo de trabajo del proyecto. 

KANBAN

Al implementar esta metodología se garantiza una constante supervisión del rendimiento tanto del equipo como del producto. Se mantienen los tiempos de producción estables, evitando los excesos.

Una mala gestión del modelo puede provocar incongruencias en los tiempos de trabajo. Su amplio almacenamiento implica mayores costos. 

SCRUM

Constante retroalimentación por parte del equipo de trabajo y los clientes. Posee calendarios de entrega y supervisión bien definidos.

En esta metodología es precisa una planificación exhaustiva de las tareas y fechas de entrega del proyecto. Los expertos participantes deben estar sobre calificados en sus respectivos ámbitos.

LEAN

Con ayuda de esta metodología se optimizan los costos de producción y la velocidad de entrega del proyecto. Cualquier elemento sin valor para el cliente es eliminado.

Se requiere de expertos en todos los ámbitos que el proyecto dicte necesitar. Los costos de desarrollo del proyecto son muy elevados.