Desarrollo ágil de software

El desarrollo ágil de software[1] es una metodología de desarrollo de software que se caracteriza por el descubrimiento de requisitos y la mejora de soluciones a través del esfuerzo colaborativo de los equipos con sus clientes o usuarios finales,[2] la planificación adaptativa, el desarrollo evolutivo, la entrega temprana, la mejora continua y las respuestas flexibles a los cambios en los requisitos, la capacidad y la comprensión de los problemas que hay que resolver.[3][4]

Es un método de ingeniería del software basado en el desarrollo iterativo e incremental, donde los requisitos y soluciones evolucionan con el tiempo según la necesidad del proyecto. El trabajo es realizado mediante la colaboración de equipos autoorganizados y multidisciplinarios, inmersos en un proceso compartido de toma de decisiones a corto plazo.

Esquema general de una metodología ágil para desarrollo de software

Cada iteración del ciclo de vida incluye planificación, análisis de requisitos, diseño, codificación, pruebas y documentación. Adquiere una gran importancia el concepto de "finalizado" (done), ya que el objetivo de cada iteración no es agregar toda la funcionalidad para justificar el lanzamiento del producto al mercado, sino incrementar el valor por medio de "software que funciona" (sin errores).

Los métodos ágiles enfatizan las comunicaciones cara a cara en vez de la documentación. La mayoría de los equipos ágiles están localizados en una simple oficina abierta, a veces llamadas "plataformas de lanzamiento" (bullpen en inglés). La oficina debe incluir revisores, escritores de documentación y ayuda, diseñadores de iteración y directores de proyecto. Los métodos ágiles también enfatizan que el software funcional es la primera medida del progreso. Combinado con la preferencia por las comunicaciones cara a cara, generalmente los métodos ágiles son criticados y tratados como "indisciplinados" por la falta de documentación técnica.[cita requerida]

Historia

La definición moderna de desarrollo ágil de software evolucionó a mediados de la década de 1990 como parte de una reacción contra los métodos de "peso pesado", muy estructurados y estrictos, extraídos del modelo de desarrollo en cascada. El proceso originado del uso del modelo en cascada era visto como burocrático, lento, degradante e inconsistente con las formas de desarrollo de software que realmente realizaban un trabajo eficiente [1].

Los métodos de desarrollo ágiles e iterativos pueden ser vistos como un retroceso a las prácticas observadas en los primeros años del desarrollo de software (aunque en ese tiempo no había metodologías para hacerlo).[cita requerida]

En el año 2001, miembros prominentes de la comunidad se reunieron en Snowbird, Utah, y adoptaron el nombre de "métodos ágiles". Poco después, algunas de estas personas formaron la "alianza ágil", una organización sin fines de lucro que promueve el desarrollo ágil de aplicaciones. Muchos métodos similares al ágil fueron creados antes del 2000.[5] Entre los más notables se encuentran: Scrum (1986), Desarrollo rápido de aplicaciones,[6][7] Crystal Clear (transparente como el cristal), programación extrema (en inglés eXtreme Programming o XP, 1996), desarrollo de software adaptativo, feature-driven development, método de desarrollo de sistemas dinámicos (1995). Estos miembros eran Kent Beck (Extreme Programming), Ward Cunningham (Extreme Programming), Dave Thomas (PragProg, Ruby), Jeff Sutherland (Scrum), Ken Schwaber (Scrum), Jim Highsmith (Adaptive Software Development), Alistair Cockburn (Crystal), Robert C. Martin (SOLID), Mike Beedle (Scrum), Arie van Bennekum, Martin Fowler (OOAD y UML), James Grenning, Andrew Hunt (PragProg, Ruby), Ron Jeffries (Extreme Programming), Jon Kern, Brian Marick (Ruby, TDD) y Steve Mellor (OOA). Juntos publicaron el Manifiesto para el Desarrollo Ágil de Software.[8]

Algunos métodos ágiles de desarrollo de software:

Véase también

Referencias

  1. «Agile development: ¡así funciona!». IONOS Digitalguide. Consultado el 17 de junio de 2022.
  2. Collier, Ken ([©2012]). Agile analytics : a value-driven approach to business intelligence and data warehousing. [Addison-Wesley]. p. 121. ISBN 978-0-321-66954-4. OCLC 748597334. Consultado el 28 de marzo de 2023.
  3. Beck, Kent M.; Beedle, Mike; Bennekum, Arie van; Cockburn, Alistair; Cunningham, Ward; Fowler, Martin; Grenning, James; Highsmith, Jim; Hunt, Andy; Jeffries, Ron; Kern, Jon; Marick, Brian; Martin, R. C.; Mellor, Steve J.; Schwaber, Ken; Sutherland, Jeff; Thomas, Dave. Manifesto for Agile Software Development. S2CID 109006295.
  4. «What is Agile Software Development?». Agile Alliance. 8 de junio de 2013. Consultado el 4 de abril de 2015.
  5. Swamidass, P. M., ed. (2000), «Heavyweight project organizationHEAVYWEIGHT PROJECT ORGANIZATION», Encyclopedia of Production and Manufacturing Management (en inglés) (Boston, MA: Springer US): 261-262, ISBN 978-1-4020-0612-8, doi:10.1007/1-4020-0612-8_400, consultado el 22 de junio de 2022.
  6. Martin, James (1991). Rapid Application Development. Macmillan. ISBN 978-0-02-376775-3.
  7. Kerr, James M.; Hunter, Richard (1993). Inside RAD: How to Build a Fully Functional System in 90 Days or Less. McGraw-Hill. p. 3. ISBN 978-0-07-034223-1.
  8. Larman, Craig (2004). Agile and Iterative Development: A Manager's Guide. Addison-Wesley. p. 27. ISBN 978-0-13-111155-4.

Bibliografía

Enlaces externos

Este artículo ha sido escrito por Wikipedia. El texto está disponible bajo la licencia Creative Commons - Atribución - CompartirIgual. Pueden aplicarse cláusulas adicionales a los archivos multimedia.