¿Cómo hemos llegado hasta el Agile Development?

Blog Single

Para conocer nuestro presente, es importante entender nuestro pasado y cómo hemos llegado hasta aquí. Es por ello que vamos a descubrir cómo hemos llegado al punto que nos encontramos actualmente con las famosas metodologías Agile haciendo un recorrido por la historia del desarrollo del software.

Los inicios

A primeros de siglo XX comienza a forjarse el nacimiento de la ciencia de la computación, con Alan Turing considerado uno de los padres de esta y precursor de la informática moderna con su máquina “Enigma”. Los avances durante la guerra mundial y posterior comenzaron a dar paso al desarrollo del software como hoy en día lo conocemos. (Si no habéis visto la película “Enigma” estáis tardando)

En los últimos 50 años ha existido un auge en la ingeniería del software. Durante décadas los desarrolladores de software han desarrollado productos software con distintas aproximaciones y metodologías, tratando de construir cada vez mejores productos.

La crisis del software

En todos estos intentos también hemos vivido la “Crisis del software”. Este concepto es un término acuñado en 1968 en la primera conferencia que la OTAN celebró sobre desarrollo de software. En este término se trató de agrupar y entender los distintos problemas que en ese momento se tenían en la construcción de software, como planificaciones que no se cumplían, malas estimación de costes y problemas de funcionalidad.

Existen unos casos de ejemplo de esta época muy sonados que marcaron la situación del desarrollo software del momento. Entre ellos se encuentran un accidente de un caza F-18 en 1986, por un error en un condicional, una máquina de radioterapia que aplicaba altos niveles de radiación asociados a problemas en el  software o la cancelación de un proyecto para el sistema “Bank of America” por el gran sobrecoste del software.

Aunque el término  de “Crisis del Software” se le atribuyó a Friedrich Bauer ya había sido utilizado por Edsger Dijkstra en su libro “The Humble Programmer”. Edsget Dijkstra es un gran conocido en las ciencias de la computación por la creación del famoso algoritmo de Dijkstra, también conocido como algoritmo de caminos mínimos, consiste en la determinación del camino más corto, haciendo grandes avances en la teoría de grafos.

El nacimiento de la ingeniería del software

Para dar solución a los problemas que se presentaban en esta conferencia se creó una nueva rama de ingeniería, conocida como la ingeniería de software. Es por ello, que con la profesión de ingeniero software, se han realizado esfuerzos ingenieriles tratando de construir modelos de datos, patrones de diseño, lenguajes de programación, herramientas de testing para intentar construir mejores productos.

Esto también introdujo la burocracia y creación de gran cantidad de  documentos a la hora de construir un producto software y el uso de metodologías pesadas del software con ciclos de vida en cascada. El mayor problema de estas estrategias es que los requisitos formales definidos en fases previas ya habían cambiado cuando el sistema se iba a entregar. En estos momentos no éramos capaces de adaptarnos al cambio

La necesidad de Agile

Es por ello que en los años 90, empiezan a surgir nuevas corrientes para tratar de solucionar este tipo de problemas. De esta manera, nace en 1991 Rapid Application Development de mano de James Martin como respuesta de a inadecuadas metodologías en cascada.

Con esta metodología se empiezan a combinar las metodologías tradicionales con nuevos conceptos como las iteraciones, el prototipado, la entrega evolutiva y la colaboración de los clientes. Con este punto de inflexión empieza el auge de las conocidas como “metodologías ligeras” en las que empiezan a surgir conocidos como Scrum (1995), Extreme Programming (1999) o Adaptative Software Development (2000).

El Manifiesto Agile

En 2001, nace el Agile Manifesto (https://agilemanifesto.org/iso/es/manifesto.html) firmado por grandes conocidos del desarrollo software como Kent Beck, Martin Fowler o Robert. C Martin. Este movimiento trae una nueva manera de enfrentar el desarrollo software centrado en las personas, en el producto y en una entrega continua de software funcional.

A partir de este instante nacen organizaciones como la “Agile Alliance” que comienzan a dar conferencias, escribir libros sobre el concepto Agile en el desarrollo del software y a definir distintas prácticas que deben ser llevadas por los equipos para el éxito de los proyectos.

Conclusión

Y este es el punto en el que nos encontramos actualmente, aunque pensamos que las metodologías ágiles son algo reciente llevan más de 20 años con nosotros y todavía estamos aprendiendo de ellas para obtener el éxito en nuestros proyectos. Es importante entender nuestro pasado, para aprender de los errores y no volver a caer en los mismas problemáticas.

Nube de Tags

agilescrum
Comparte el artículo si te ha resultado interesante: