Historia de las Metodologías Ágiles en Contexto




Es usual mencionar a las metodologías ágiles como "la nueva" forma de desarrollo de software, de manera evolutiva, iterativa e incremental que llegaron para reemplazar a las viejas y deprecadas metodologías de desarrollo como el famoso modelo de desarrollo en cascada o Waterfall

Investigando un poco me llamó la atención que el modelo Waterfall fue recién definido en 1970 por Wiston Royce en su artículo "Administrando el desarrollo de sistemas de software grandes" -todavía sin el nombre "Waterfall" y sin las etapas con las que finalmente se usó ampliamente- mientras que la ideas metodologías ágiles son anteriores. La idea de desarrollo en ciclos cortos iterativos e incrementales data de 1939 y el término Scrum como analogía del Rugby para el desarrollo de software data de 1986.

Otro dato curioso, es que el paradigma de programación orientada objetos fue creado antes que el paradigma de programación estructurada cuando en la práctica vemos al primero como más moderno que el segundo.

Preparé una línea de tiempo con algunos hitos importantes en la historia del desarrollo de software y de la informática en general para un análisis más profundo y poner también a las metodologías de desarrollo en contexto.




Nota: 

El presente documento es fruto de investigación propia y se encuentra en constante actualización a medida que encuentro información nueva y más precisa. Las fuentes consultadas son páginas de internet, artículos y libros que pueden consultarse al final de la página. Te invito a aportar con datos que te resulten de interés en los comentarios de este artículo y serán incorporados a la Línea de Tiempo.



Línea de Tiempo:










  • 1891: Frederick Taylor define la Administración Científica del Trabajo. Expandiendo ideas sobre la división del trabajo a tareas simples y rutinarias, la motivación extrínseca, productividad a través del control y supervisión de los empleados. (EEUU).








  • 1924: Sakichi Toyoda (Japóninventa e implementa por primera vez la automatización "con un toque humano". Concepto conocido como Jidoka. Inventa una máquina de telar capaz de detectar automáticamente cuándo el hilo se rompía y deteniendo la producción para evitar desperdicios o defectos en el tejido final. Sakichi Toyoda, quien luego en Toyota, aplicaría estos conceptos conocidos hoy en día como Manufactura Lean. Ideas que confrontan directamente al Taylorismo. 












  • 1946: El ENIAC, la primera computadora digital de la historia. (EEUU)

















  • 1957: FORTRAN, el primer lenguaje de programación de alto nivel (IBM)






  • 1959: Se crea el lenguaje de programación COBOL. (Foto: Consola UNIVAC I

  • 1962J.C.R. Licklider de MIT hizo la primera propuesta de una red de computadoras global y fue Departamento de Defensa de EEUU para desarrollarla.


  • 1966-1969: Desarrollo de ARPANET, primera red de computadoras, progenitora de Internet. Creado por el departamento de defensa de EEUU








  • 1970: DrWinston Royce escribe el paper que hizo historia "Managing the Development of Large Software Systems". A este paper se ha atribuido muchas veces la primera definición del proceso secuencial para desarrollo de software. Hoy conocido como Waterfall. Aunque si vemos en detalle el Paper, Royce no recomienda este método, prevé sus riesgos y sugiere que se debe iterar por lo menos dos veces.  En el paper menciona que este proceso "invita al fracaso".







  • 1971Ray Tomlinson creó el E-mail, escogiendo la arroba de los caracteres disponibles en el teclado.













  • 1974: Se usa el término Internet por primera vez para denominar a la red que hoy conocemos, que se originó como ARPANET





  • 1976: Bell, T., & Thayer, T.  publican un paper llamado "Software requirements: Are they really a problem?" luego de la segunda Conferencia Internacional de Ingeniería del Software (ICSE '76). Aquí se registra el primer uso del término "Waterfall" (Desarrollo en Cascada) y menciona al Paper de Dr. Wiston Royce de 1970.


  • 1983: Todas las computadoras de ARPANET comienzan a utilizar el protocolo TCP/IP. El protocolo de Internet que sigue vigente hoy día.


  • 1985: el Departamento de Defensa de los Estados Unidos hace Estándar la adopción del Modelo en Cascada, con la publicación del Estándar 2167 (DoD-STS-2167). Esta publicación se basa en una incorrecta interpretación del Paper de Winston Royce de 1976 donde en realidad desaconseja su uso. Este Estándar de DoD influencia a los estándares que luego se adoptarían en Europa (Inglaterra, Francia y Alemania).

  • 1985: El primer dominio Web ".com" registrado (symbolics.com) 


  • 1986: El primer registro del término SCRUM en el desarrollo de producto en el articulo “The New New Product Development Game.” publicado en el Harvard Business Review. Los autores, Takeuchi, Hirotaka and Nonaka, Ikujiro aplicaron estas metodologías en empresas como Fuji-Xerox, Canon, Honda, NEC, Epson, Brother, 3M, Xerox, and Hewlett-Packard. De aquí toman el nombre Jeff Sutherland y Ken Schwaber en 1995. El termino ‘Scrum’ refiere al Rugby para destacar la importancia del trabajo en Equipos para el éxito en el desarrollo.  




  • 1987: Ivar Jacobson implementa un modelo iterativo e incremental de desarrollo en Suecia, conocido como Objectory. Si bien es Iterativo e Incremental, es considerado un proceso pesado



  • 1988: Se utiliza por primera vez el término Lean Manufacturing en el artículo "Triumph of the Lean Production System" (John Krafcik) basado en la su tesis en MIT Sloan School of Management









  • 1993: Jeff Sutherland crea el framework de Scrum, tomando el término "Scrum" del paper de Takeuchi and Nonaka (1986), adaptándolo para el desarrollo de Software.
  • 1994: Standish Group publica un estudio conocido como "CHAOS Report" donde se evidencian las bajos resultados de los proyectos de Desarrollo de Software. Siendo aquí el modelo estándar el Waterfall. 
    • 31.1% de los proyectos fracasaron, fueron cancelados
    • 52.7% de los proyectos se excedieron en costos y/o tiempo
    • 16.2% de los proyectos fueron exitosos




  • 1995: Jim Coplien y Larry Constantine separadamente introducen la idea de Programación en Pareja (Pair Programming)

  • 1995:  Rasmus Lerdorf (foto) lanza PHP al tiempo que James Gosling lanza JAVA. Los dos lenguajes de programación más populares hoy en día. El proyecto de desarrollo de JAVA comenzó en 1991 mientras que PHP comenzó en 1994.





  • 1996Rational Software promueve el Proceso de Desarrollo Unificado (RUP), un proceso de de desarrollo iterativo e incremental que intenta resolver los problemas de Waterfall, pero sin dejar de ser un proceso "pesado". Adaptado del original de Ivar Jacobson de 1987. El propio Jacobson "evoluciono" a un modelo ágil. [ref]


  • 1998: Larry Page y Sergey Brin inician Google en un garage. El proyecto comenzó en 1996.











  • 2001: 17 agilistas se juntaron a discutir y firmar el Manifesto Ágil con los cuatro valores y doce principios. (Kent Beck, Mike Beedle, Arie van Bennekum, Alistair Cockburn, Ward Cunningham, Martin Fowler, James Grenning, Jim Highsmith, Andrew Hunt, Ron Jeffries, Jon Kern, Brian Marick, Robert C. Martin, Steve Mellor, Ken Schwaber, Jeff Sutherland and Dave Thomas). De [aquí] podés descargar las notas originales del Manifesto







    • 2001: Se publica el libro "The Toyota Way" con los 14 Principios de Lean Manufacturing 







    • 2006: Jeff Sutherland funda la empresa Scrum.inc.



    • 2008: Surge la certificación de Scrum Product Owner (CSPO)

    • 2009: Ken Schawber funda Scrum.org
    • 2010: Primera publicación de la Guía Oficial de Scrum (http://www.scrumguides.org/)




    ¿Sabés quién es el personaje de la foto principal de este artículo?


    Nació en Budapest en 1903, fue compañero de Albert Einstein en la construcción de la bomba atómica e hizo innumerables aportes en varios campos de la ciencia, como matemáticas y a la computación.

    En 1945 diseño la arquitectura utilizan las computadoras actuales, en cuyo diseño propone el uso de los programas de Software almacenados en memoria junto con los datos. Hasta ese momento las instrucciones de la computadora se hacían por medio de cableados físicos. Participo en la construcción de la primera computadora (ENIAC). Creó el algoritmo de ordenamiento Merge Sort ampliamente utilizado.

    "Si la gente no piensa que las matemáticas son simples, es sólo porque no se dan cuenta de lo complicada que es la vida." - John Von Neumann

    Más Información:

    • En www.agilefluenca.org puede encontrarse una línea de tiempo de hitos en las metodologías ágiles

    Referencias:

    • http://scrum.jeffsutherland.com/2010/08/mike-beedle-on-early-history-of-scrum.html
    • http://sewiki.iai.uni-bonn.de/teaching/labs/xp/2009b/seminar/history
    • http://setandbma.wordpress.com/2012/03/23/agile-history/
    • http://finding-marbles.com/2012/04/15/a-brief-history-of-agile-and-lean-events/
    • https://www.it.uu.se/edu/course/homepage/acsd/vt08/SE1.pdf
    • http://www.craiglarman.com/wiki/downloads/misc/history-of-iterative-larman-and-basili-ieee-computer.pdf
    • https://www.it.uu.se/edu/course/homepage/acsd/vt08/SE1.pdf
    • http://en.wikipedia.org/wiki/Iterative_and_incremental_development
    • http://en.wikipedia.org/wiki/Project_Mercury
    • http://intenseminimalism.com/2012/a-brief-history-of-agile-methods/
    • http://www.nr.no/en/about-main
    • http://cm.bell-labs.com/cm/cs/who/dmr/picture.html
    • http://walthowe.com/navnet/history.html
    • http://guide.agilealliance.org/timeline.html
    • The Leader's Guide to Radical Management: Reinventing the Workplace for the 21st Century (Denning, Stephen)
    • http://www.martinalaimo.com/es/blog/waterfall-la-historia-detras-del-error
    • http://www.toyota-global.com/company/history_of_toyota/1867-1939.html
    • http://www.ingsoftagil.com/articulos/jidoka
    • http://www.product-lifecycle-management.com/
    • http://www.cs.umd.edu/class/spring2003/cmsc838p/Process/waterfall.pdf
    • https://www.dagstuhl.de/Reports/96/9635.pdf
    • https://www.scrumalliance.org/why-scrum
    • https://www.standishgroup.com/sample_research_files/chaos_report_1994.pdf
    • https://hbr.org/1986/01/the-new-new-product-development-game
    • http://www.scrumguides.org/history.html
    • http://www.informit.com/articles/article.aspx?p=664147&seqNum=7

    Investigación realizada por Damián Buonamico.

    Twitter: @dbuo
    LinkedIn: http://www.linkedin.com/in/buonamico


    Entradas populares de este blog

    Visual User Story Mapping Aplicado

    Los Bugs en Scrum