10ma Edición | DICIEMBRE 2022 | ISSN 2618-1894 | Artículos científicos
Al poco tiempo este modelo fue modificado para poder volver sobre etapas anteriores si lo
que fallaba en las pruebas lo ameritaba. En efecto, si del resultado de las pruebas se infería
que había un problema, no de construcción, sino de diseño, había que regresar, al menos con
parte del producto, a la fase de diseño. Lo mismo ocurría con el análisis, y así sucesivamente.
Pero todo se reducía a volver atrás con una parte y repetir la “cascada” desde allí. Incluso el
mantenimiento, que era un problema cada vez más presente, se resolvía con un nuevo
proyecto por cada cambio, que también se encaraba con la filosofía de cascada.
Los años ochenta, que tantos avances trajeron en los lenguajes y paradigmas de
programación, no impactaron demasiado en lo metodológico.
En los noventa empezaron a surgir procesos de desarrollo iterativos, entre los que destaca el
Proceso Unificado. La filosofía de los procesos iterativos de primera generación sostenía que
el software se debía construir por iteraciones, en las cuales había un poco de cada actividad.
Así, las etapas se convirtieron en iteraciones, pero ahora ya no atadas a una actividad en cada
una, sino que en una misma iteración podía haber algo de requisitos, algo de diseño, algo de
construcción, algo de pruebas, y hasta podía ser que en algunas de ellas, sobre todo una vez
que el proyecto estaba encaminado, podía haber uno o más despliegues del producto. Hay
algo más que quedó en evidencia con los métodos iterativos: el desarrollo de software
permite el cambio de alcance durante los mismos proyectos, sobre todo porque a quien ve
software funcionando se les disparan nuevas ideas para mejorarlo.
Pero comenzar a hablar de iteratividad, menor resistencia al cambio y entregas antes de
terminar el proyecto, fue como abrir la caja de Pandora: al poco tiempo nacieron los métodos
iterativos-incrementales, y detrás de ellos, los primeros métodos llamados “ágiles”.
La filosofía del agilismo, resumida en pocas palabras, es que el desarrollo de software es más
un problema de diseño que de fabricación (Farley, 2022), y que requiere menos papeleo,
menos rigidez metodológica, más atención a las personas, a entregar valor a los clientes en
incrementos pequeños de producto y más apertura a cambios (Beck, 2001). Los años 2000
fueron los años del agilismo, al punto que al día de hoy son pocos los que lo cuestionan y
menos aún los que ponen en duda las premisas del manifiesto. Muchos colegas afirman que
ya no tiene sentido hablar de métodos ágiles, porque ya están establecidos como la manera
en que se construye el software. Como los métodos ágiles propugnan la entrega frecuente de
producto, casi todos ellos plantean que a la salida de cada iteración, que se asume de unas
pocas semanas, hay que estar en condiciones de entregar un incremento de producto.
Pero sin dejar de lado los principios ágiles, hace unos diez años comenzamos a dar otra vuelta
de tuerca. Se empezó a cuestionar que el software se deba construir con un modelo de
proyectos, que asume un principio y un fin. Así nació el ciclo de vida de flujo continuo que,
contrariamente al modelo iterativo-incremental, no requiere la existencia de iteraciones para
la entrega de producto, sino que el mismo debería estar en condiciones de ser entregado en
cualquier momento. Así, pasamos de iteraciones de meses a semanas, de semanas a una
semana y luego a nada, con el timebox discreto degenerando en un ciclo continuo (Henney,
2021). Las iteraciones siguen existiendo, y son el marco en el cual se realiza la planificación,
las revisiones al proceso, algunas reuniones internas y con los clientes, pero ya no guardan la
relación unívoca con las entregas que existía en los métodos ágiles de primera generación. Es
decir, el nuevo modelo no requiere terminar una iteración para entregar producto, sino que
constituye una línea de producción continua que empieza tomando una característica para