Articulo de referencia

Desarrollo ágil de software

El desarrollo ágil de software es un término general para los enfoques de desarrollo de software que reflejan los valores y principios acordados por The Agile Alliance, un grupo...

El desarrollo ágil de software es un término general para los enfoques de desarrollo de software que reflejan los valores y principios acordados por The Agile Alliance, un grupo de 17 profesionales del software, en 2001. [ 1 ] Como se documenta en su Manifiesto para el Desarrollo Ágil de Software , los profesionales valoran: [ 2 ]

  • Los individuos y las interacciones por encima de los procesos y las herramientas.
  • Software funcional por encima de una documentación exhaustiva
  • Colaboración con el cliente en la negociación de contratos
  • Responder al cambio en lugar de seguir un plan.

Los profesionales citan como inspiración nuevas prácticas de la época, como la programación extrema , Scrum , el método de desarrollo de sistemas dinámicos , el desarrollo de software adaptativo y la comprensión de la necesidad de una alternativa a los procesos de desarrollo de software pesados ​​y basados ​​en la documentación. [ 3 ]

Muchas prácticas de desarrollo de software surgieron de la mentalidad ágil. Estas prácticas basadas en la metodología ágil, a veces llamadas Ágil (con A mayúscula), [ 4 ] incluyen la definición de requisitos, el descubrimiento y la mejora de soluciones mediante el esfuerzo colaborativo de equipos autoorganizados y multifuncionales con sus clientes / usuarios finales . [ 5 ] [ 6 ]

Aunque existen numerosas evidencias anecdóticas de que la mentalidad ágil y las prácticas basadas en metodologías ágiles mejoran el proceso de desarrollo de software, la evidencia empírica es limitada y poco concluyente. [ 7 ] [ 8 ] [ 9 ]

Historia

Los métodos de desarrollo de software iterativos e incrementales se remontan a 1957, [ 10 ] con la gestión de proyectos evolutiva [ 11 ] [ 12 ] y el desarrollo de software adaptativo [ 13 ] surgiendo a principios de la década de 1970. [ 14 ]

Durante la década de 1990, surgieron varios métodos ligeros de desarrollo de software en respuesta a los métodos pesados ​​predominantes (a menudo denominados colectivamente como cascada ) que los críticos describían como excesivamente regulados, planificados y microgestionados . [ 15 ] Estos métodos ligeros incluían el desarrollo rápido de aplicaciones (RAD), desde 1991; [ 16 ] [ 17 ] el proceso unificado (UP) y el método de desarrollo de sistemas dinámicos (DSDM), ambos desde 1994; Scrum , desde 1995; Crystal Clear y la programación extrema (XP), ambos desde 1996; y el desarrollo impulsado por características (FDD), desde 1997. Aunque todos estos se originaron antes de la publicación del Manifiesto Ágil , ahora se les conoce colectivamente como métodos ágiles de desarrollo de software. [ 3 ]

Ya desde 1991 se habían estado produciendo cambios similares en la fabricación [ 18 ] [ 19 ] y en el pensamiento de gestión [ 20 ] derivados de la gestión lean .

En 2001, diecisiete desarrolladores de software se reunieron en un complejo turístico en Snowbird, Utah, para discutir métodos de desarrollo ligero. Eran Kent Beck (Programación Extrema), Ward Cunningham (Programación Extrema), Dave Thomas ( Programación Pragmática , Ruby), Jeff Sutherland (Scrum), Ken Schwaber (Scrum), Jim Highsmith (Desarrollo de Software Adaptativo), Alistair Cockburn (Crystal), Robert C. Martin ( SOLID ), Mike Beedle (Scrum), Arie van Bennekum, Martin Fowler ( OOAD y UML ), James Grenning, Andrew Hunt (Programación Pragmática, Ruby), Ron Jeffries (Programación Extrema), Jon Kern , Brian Marick (Ruby, Desarrollo guiado por pruebas ) y Steve Mellor ( OOA ). El grupo, The Agile Alliance, publicó el Manifiesto para el Desarrollo Ágil de Software . [ 2 ]

En 2005, un grupo encabezado por Cockburn y Highsmith escribió un apéndice de principios de gestión de proyectos , la Declaración de Interdependencia de la Gestión de Proyectos, [ 21 ] para guiar la gestión de proyectos de software de acuerdo con los métodos de desarrollo de software ágil.

En 2009, un grupo que trabajaba con Martin redactó una extensión de los principios de desarrollo de software , el Manifiesto de la Artesanía del Software , para guiar el desarrollo ágil de software de acuerdo con la conducta profesional y la maestría.

En 2011, la Agile Alliance creó la Guía de prácticas ágiles (renombrada como Glosario ágil en 2016), [ 22 ] un compendio de código abierto en constante evolución de las definiciones de trabajo de las prácticas, términos y elementos ágiles, junto con interpretaciones y pautas de experiencia de la comunidad mundial de profesionales ágiles.

Valores y principios

Valores

El manifiesto para el desarrollo ágil de software dice: [ 2 ]

Estamos descubriendo mejores maneras de desarrollar software haciéndolo y ayudando a otros a hacerlo. A través de este trabajo hemos llegado a valorar:

  • Los individuos y las interacciones por encima de los procesos y las herramientas.
  • Software funcional por encima de una documentación exhaustiva
  • Colaboración con el cliente en la negociación de contratos
  • Responder al cambio en lugar de seguir un plan.

Es decir, si bien los elementos de la derecha tienen valor, valoramos más los elementos de la izquierda.

Scott Ambler explicó: [ 23 ]

  • Las herramientas y los procesos son importantes, pero es aún más importante contar con personas competentes que trabajen juntas de forma eficaz.
  • Una buena documentación es útil para ayudar a las personas a comprender cómo está construido el software y cómo usarlo, pero el objetivo principal del desarrollo es crear software, no documentación.
  • Un contrato es importante, pero no sustituye la colaboración estrecha con los clientes para descubrir qué necesitan.
  • Un plan de proyecto es importante, pero no debe ser demasiado rígido para adaptarse a los cambios en la tecnología o el entorno, las prioridades de las partes interesadas y la comprensión que tenga la gente del problema y su solución.

Al presentar el manifiesto en nombre de la Alianza Ágil, Jim Highsmith dijo:

El movimiento Agile no es antimetodología; de hecho, muchos queremos devolverle credibilidad al término. Buscamos un equilibrio. Adoptamos el modelado, pero no para archivar diagramas en un repositorio corporativo polvoriento. Adoptamos la documentación, pero no cientos de páginas de tomos que nunca se actualizan y rara vez se usan. Planificamos, pero reconocemos las limitaciones de la planificación en un entorno turbulento. Quienes tachan de "hackers" a los defensores de XP, SCRUM o cualquier otra metodología Agile desconocen tanto las metodologías como la definición original del término.

Jim Highsmith, Historia: El manifiesto ágil [ 24 ]

Principios

Los valores se basan en estos principios: [ 25 ]

  1. Satisfacción del cliente mediante la entrega temprana y continua de software valioso.
  2. Agradecemos los cambios en los requisitos, incluso en las últimas etapas del desarrollo.
  3. Entregar software funcional con frecuencia (semanas en lugar de meses).
  4. Colaboración estrecha y diaria entre empresarios y desarrolladores.
  5. Los proyectos se construyen en torno a personas motivadas, en quienes se debe confiar.
  6. La conversación cara a cara es la mejor forma de comunicación (presencia física).
  7. El software que funciona es la principal medida de progreso.
  8. Desarrollo sostenible, capaz de mantener un ritmo constante.
  9. Atención constante a la excelencia técnica y al buen diseño.
  10. La simplicidad —el arte de maximizar la cantidad de trabajo no realizado— es esencial.
  11. Las mejores arquitecturas , requisitos y diseños surgen de equipos autoorganizados.
  12. El equipo reflexiona periódicamente sobre cómo ser más eficaz y realiza los ajustes necesarios.

Descripción general

Iterativo, incremental y evolutivo

La mayoría de los métodos de desarrollo ágil dividen el trabajo de desarrollo de productos en pequeños incrementos que minimizan la cantidad de planificación y diseño iniciales. Las iteraciones, o sprints, son períodos de tiempo cortos ( timeboxes ) [ 26 ] que suelen durar de una a cuatro semanas. [ 27 ] : 20 Cada iteración involucra un equipo multifuncional que trabaja en todas las funciones: planificación , análisis , diseño , codificación , pruebas unitarias y pruebas de aceptación . Al final de la iteración, se muestra un producto funcional a las partes interesadas. Esto minimiza el riesgo general y permite que el producto se adapte rápidamente a los cambios. [ 28 ] [ 29 ] Una iteración puede no agregar suficiente funcionalidad como para justificar un lanzamiento al mercado, pero el objetivo es tener un lanzamiento disponible (con mínimos errores ) al final de cada iteración. [ 30 ] A través del desarrollo incremental, los productos tienen espacio para " fallar a menudo y temprano " a lo largo de cada fase iterativa en lugar de drásticamente en una fecha de lanzamiento final. [ 31 ] Es posible que se requieran múltiples iteraciones para lanzar un producto o nuevas funciones. El software funcional es la principal medida de progreso. [ 25 ]

Comunicación eficiente y cara a cara

El sexto principio del manifiesto ágil para el desarrollo de software afirma: «El método más eficiente y eficaz para transmitir información a un equipo de desarrollo y dentro del mismo es la conversación cara a cara». El manifiesto, redactado en 2001, cuando las videoconferencias no estaban muy extendidas, se refiere a la comunicación de información, no necesariamente a que un equipo deba estar ubicado en el mismo lugar.

El principio de la coubicación es que los compañeros de trabajo del mismo equipo deben estar ubicados juntos para establecer mejor la identidad como equipo y mejorar la comunicación. [ 32 ] Esto permite la interacción cara a cara , idealmente frente a una pizarra, lo que reduce el tiempo de ciclo que normalmente se toma cuando las preguntas y respuestas se median a través del teléfono, el chat persistente , la wiki o el correo electrónico. [ 33 ] Con la adopción generalizada del trabajo remoto durante la pandemia de COVID-19 y los cambios en las herramientas, se han realizado más estudios [ 34 ] sobre la coubicación y el trabajo distribuido que muestran que la coubicación es cada vez menos relevante.

Independientemente del método de desarrollo que se siga, cada equipo debe incluir un representante del cliente (conocido como propietario del producto en Scrum ). Este representante es acordado por las partes interesadas para actuar en su nombre y se compromete personalmente a estar disponible para que los desarrolladores respondan a sus preguntas durante toda la iteración. Al final de cada iteración, las partes interesadas del proyecto , junto con el representante del cliente, revisan el progreso y reevalúan las prioridades con el fin de optimizar el retorno de la inversión (ROI) y garantizar la alineación con las necesidades del cliente y los objetivos de la empresa. La importancia de la satisfacción de las partes interesadas, detallada mediante la interacción frecuente y la revisión al final de cada fase, es la razón por la que este enfoque se suele denominar metodología centrada en el cliente . [ 35 ]

Radiador informativo

En el desarrollo ágil de software, un radiador de información es una pantalla física (normalmente grande), un tablero con notas adhesivas o similar, ubicado en un lugar destacado cerca del equipo de desarrollo, donde los transeúntes pueden verlo. [ 36 ] Presenta un resumen actualizado del estado del desarrollo del producto. [ 37 ] También se puede utilizar un indicador luminoso de compilación para informar a un equipo sobre el estado actual del desarrollo de su producto.

Ciclo de retroalimentación y adaptación muy corto

Una característica común en el desarrollo ágil de software es la reunión diaria de pie (conocida como Daily Scrum en el marco de Scrum). En una breve sesión (por ejemplo, 15 minutos), los miembros del equipo revisan colectivamente su progreso hacia el objetivo y deciden si necesitan adaptar su enfoque. Para ajustarse al límite de tiempo acordado, los equipos suelen utilizar preguntas sencillas predefinidas (como qué completaron el día anterior, qué pretenden completar ese día y si existen impedimentos o riesgos para el progreso), y posponen las discusiones detalladas y la resolución de problemas hasta después de la reunión diaria de pie. [ 38 ]

Enfoque en la calidad

La programación en parejas , una técnica de desarrollo ágil utilizada en XP

A menudo se utilizan herramientas y técnicas específicas, como la integración continua , las pruebas unitarias automatizadas , la programación en parejas , el desarrollo guiado por pruebas , los patrones de diseño , el desarrollo guiado por el comportamiento , el diseño guiado por el dominio , la refactorización de código y otras técnicas para mejorar la calidad y aumentar la agilidad del desarrollo de productos. [ 39 ] Esto se basa en diseñar e incorporar la calidad desde el principio y poder demostrar el software a los clientes en cualquier momento, o al menos al final de cada iteración. [ 40 ]

Filosofía

En comparación con la ingeniería de software tradicional, el desarrollo ágil de software se centra principalmente en sistemas complejos y en el desarrollo de productos con propiedades dinámicas, indeterministas y no lineales . Las estimaciones precisas, los planes estables y las predicciones suelen ser difíciles de obtener en las primeras etapas, y la confianza en ellos probablemente sea baja. Los profesionales ágiles utilizan su libre albedrío para reducir el " salto de fe " necesario antes de poder obtener cualquier evidencia de valor . [ 41 ] Se considera que los requisitos y el diseño son emergentes . Las grandes especificaciones iniciales probablemente causarían mucho desperdicio en tales casos, es decir, no son económicamente viables. Estos argumentos básicos y las experiencias previas de la industria , aprendidas a lo largo de años de éxitos y fracasos, han contribuido a dar forma al desarrollo ágil a favor del desarrollo adaptativo, iterativo y evolutivo. [ 42 ]

Adaptativo vs. predictivo

Los métodos de desarrollo existen en un continuo que va desde lo adaptativo hasta lo predictivo . [ 43 ] Los métodos de desarrollo de software ágil se sitúan en el lado adaptativo de este continuo. Una clave de los métodos de desarrollo adaptativo es un enfoque de onda rodante para la planificación del cronograma, que identifica hitos pero deja flexibilidad en el camino para alcanzarlos, y también permite que los hitos mismos cambien. [ 44 ]

Los métodos adaptativos se centran en adaptarse rápidamente a las realidades cambiantes. Cuando cambian las necesidades de un proyecto, un equipo adaptativo también cambia. Un equipo adaptativo tiene dificultades para describir con exactitud lo que sucederá en el futuro. Cuanto más lejana sea una fecha, más vago será el método adaptativo respecto a lo que ocurrirá en esa fecha. Un equipo adaptativo no puede informar con precisión qué tareas realizará la próxima semana, sino solo qué funcionalidades planea para el próximo mes. Si se le pregunta sobre un lanzamiento dentro de seis meses, un equipo adaptativo podría informar únicamente la declaración de misión del lanzamiento o una declaración del valor esperado en relación con el costo.

Los métodos predictivos , en cambio, se centran en analizar y planificar el futuro en detalle y contemplan los riesgos conocidos. En casos extremos, un equipo predictivo puede informar con precisión sobre las características y tareas planificadas para todo el proceso de desarrollo. Estos métodos dependen de un análisis eficaz en las primeras fases, y si este análisis falla gravemente, el proyecto podría tener dificultades para cambiar de rumbo. Los equipos predictivos suelen establecer un comité de control de cambios para garantizar que solo se consideren las modificaciones más valiosas.

El análisis de riesgos puede utilizarse para elegir entre métodos adaptativos ( ágiles o impulsados ​​por el valor ) y predictivos ( impulsados ​​por la planificación ). [ 45 ] Barry Boehm y Richard Turner sugieren que cada extremo del continuo tiene su propio terreno , como sigue: [ 46 ]

Metodologías ágiles frente a metodologías en cascada

Una de las diferencias entre los métodos de desarrollo de software ágil y el modelo en cascada radica en el enfoque de la calidad y las pruebas. En el modelo en cascada , el trabajo avanza a través de las fases del ciclo de vida del desarrollo de software (SDLC), donde una fase se completa antes de que pueda comenzar la siguiente; por lo tanto, la fase de pruebas es independiente y sigue a la fase de compilación . En cambio, en el desarrollo de software ágil, las pruebas se completan en la misma iteración que la programación.

Dado que las pruebas se realizan en cada iteración —que desarrolla una pequeña parte del software—, los usuarios pueden utilizar con frecuencia esas nuevas partes del software y validar su valor. Una vez que los usuarios conocen el valor real de la parte actualizada del software, pueden tomar mejores decisiones sobre su futuro. Contar con una retrospectiva de valor y una sesión de replanificación del software en cada iteración —Scrum suele tener iteraciones de solo dos semanas— ayuda al equipo a adaptar continuamente sus planes para maximizar el valor que ofrece. Esto sigue un patrón similar al ciclo planificar-hacer-verificar-actuar (PDCA), ya que el trabajo se planifica , se realiza , se verifica (en la revisión y la retrospectiva) y se implementan los cambios acordados .

Este enfoque iterativo fomenta una mentalidad centrada en el producto , en lugar de en el proyecto . Esto proporciona mayor flexibilidad durante todo el proceso de desarrollo; mientras que en los proyectos los requisitos se definen y se fijan desde el principio, lo que dificulta su modificación posterior. El desarrollo iterativo de productos permite que el software evolucione en respuesta a los cambios en el entorno empresarial o las exigencias del mercado.

Código frente a documentación

En una carta a IEEE Computer , Steven Rakitin expresó su cinismo sobre el desarrollo ágil de software, calificándolo como "otro intento más de socavar la disciplina de la ingeniería de software" y traduciendo "software funcional por encima de documentación exhaustiva" como "queremos pasar todo nuestro tiempo programando. Recuerden, los verdaderos programadores no escriben documentación". [ 47 ]

Esto es refutado por los defensores del desarrollo ágil de software, quienes afirman que los desarrolladores deberían escribir documentación si esa es la mejor manera de lograr los objetivos relevantes, pero que a menudo hay mejores maneras de lograr esos objetivos que escribir documentación estática. [ 48 ] Scott Ambler afirma que la documentación debería ser "apenas suficiente" (JBGE), [ 49 ] que demasiada documentación o documentación exhaustiva generalmente causaría desperdicio, y los desarrolladores rara vez confían en la documentación detallada porque generalmente no está sincronizada con el código, [ 48 ] mientras que muy poca documentación también puede causar problemas para el mantenimiento, la comunicación, el aprendizaje y el intercambio de conocimientos. Alistair Cockburn escribió sobre el método Crystal Clear :

Crystal considera el desarrollo como una serie de juegos cooperativos y pretende que la documentación sea suficiente para ayudar al siguiente a ganar en el siguiente juego. Los productos de trabajo para Crystal incluyen casos de uso, lista de riesgos, plan de iteración, modelos de dominio principales y notas de diseño para fundamentar las decisiones... sin embargo, no hay plantillas para estos documentos y las descripciones son necesariamente vagas, pero el objetivo es claro: la documentación suficiente para el siguiente juego. Siempre tiendo a explicar esto a mi equipo de la siguiente manera: ¿qué querrías saber si te unieras al equipo mañana?

Alistair Cockburn [ 50 ]

Métodos

Soporte del ciclo de vida del desarrollo de software [ 51 ]
El proceso unificado ágil (AUP) se basa en el proceso unificado (un marco de trabajo para el desarrollo de software iterativo e incremental).

Los métodos de desarrollo de software ágil admiten una amplia gama del ciclo de vida del desarrollo de software . [ 51 ] Algunos métodos se centran en las prácticas (p. ej., XP , programación pragmática , modelado ágil), mientras que otros se centran en la gestión del flujo de trabajo (p. ej., Scrum, Kanban). Algunos admiten actividades para la especificación de requisitos y el desarrollo (p. ej., FDD ), mientras que otros buscan cubrir todo el ciclo de vida del desarrollo (p. ej., DSDM , RUP ).

Entre los marcos de desarrollo de software ágil más destacados se incluyen:

Prácticas de desarrollo de software ágil

El desarrollo ágil de software se apoya en una serie de prácticas concretas que abarcan áreas como requisitos, diseño, modelado, codificación, pruebas, planificación, gestión de riesgos, procesos, calidad, etc. Algunas prácticas notables de desarrollo ágil de software incluyen: [ 52 ]

Desarrollo basado en pruebas de aceptación

El desarrollo guiado por pruebas de aceptación (ATDD) es una metodología de desarrollo basada en la comunicación entre los clientes comerciales, los desarrolladores y los evaluadores. [ 53 ] ATDD abarca muchas de las mismas prácticas que la especificación por ejemplo (SBE), [ 54 ] [ 55 ] el desarrollo guiado por comportamiento (BDD), [ 56 ] el desarrollo guiado por ejemplos (EDD), [ 57 ] y el desarrollo guiado por soporte, también llamado desarrollo guiado por pruebas de historias (SDD). [ 58 ] Todos estos procesos ayudan a los desarrolladores y evaluadores a comprender las necesidades del cliente antes de la implementación y permiten que los clientes puedan comunicarse en su propio lenguaje de dominio.

Modelado ágil

El modelado ágil (MA) es una metodología para modelar y documentar sistemas de software basada en las mejores prácticas. Es un conjunto de valores y principios que se pueden aplicar en un proyecto de desarrollo de software (ágil). Esta metodología es más flexible que los métodos de modelado tradicionales, lo que la hace más adecuada para un entorno de rápido cambio. [ 59 ] Forma parte del conjunto de herramientas para el desarrollo ágil de software.

Pruebas ágiles

Las pruebas ágiles son una práctica de pruebas de software que sigue los principios del desarrollo ágil de software. Las pruebas ágiles involucran a todos los miembros de un equipo ágil multifuncional, con la contribución especializada de los evaluadores, para garantizar la entrega del valor de negocio deseado por el cliente a intervalos frecuentes, trabajando a un ritmo sostenible. La especificación mediante ejemplos se utiliza para capturar ejemplos de comportamiento deseado y no deseado, y para guiar la codificación.

Acumulación de trabajos pendientes

Dentro de la gestión de proyectos ágiles , el backlog del producto se refiere a una lista priorizada de funcionalidades que un producto debe contener. A veces se le denomina lista de tareas pendientes , [ 60 ] y se considera un «artefacto» (una forma de documentación) dentro del marco de desarrollo de software Scrum . [ 61 ] El backlog del producto recibe diferentes nombres en distintos marcos de gestión de proyectos, como backlog del producto en Scrum, [ 61 ] [ 62 ] lista de elementos de trabajo en Agile Disciplinado , [ 62 ] [ 63 ] y grupo de opciones en Lean . [ 62 ] En el marco Scrum, la creación y el mantenimiento continuo del backlog del producto es responsabilidad del propietario del producto . [ 64 ]

Desarrollo impulsado por el comportamiento

El desarrollo dirigido por el comportamiento (BDD, por sus siglas en inglés) es un método ágil de desarrollo de software centrado en la colaboración entre profesionales de negocios y de TI que tienen interés en encontrar una solución a un problema complejo. El objetivo principal es lograr una comprensión compartida del problema. [ 65 ]

Integración continua

La integración continua (IC) es la práctica de integrar cambios en el código fuente con frecuencia y asegurar que la base de código integrada se encuentre en un estado funcional. Normalmente, los desarrolladores fusionan los cambios en una rama de integración , y un sistema automatizado compila y prueba el sistema de software . [ 66 ] A menudo, el proceso automatizado se ejecuta con cada confirmación o según un cronograma, como una vez al día. Grady Booch propuso por primera vez el término IC en 1991 , [ 67 ] aunque no abogó por la integración varias veces al día, pero posteriormente, la IC llegó a incluir ese aspecto. [ 68 ]

Equipo multifuncional

Un equipo multifuncional (XFN), también conocido como equipo multidisciplinario o interdisciplinario, es un grupo de personas con diferentes especialidades funcionales que trabajan para alcanzar un objetivo común. [ 69 ] Puede incluir personas de los departamentos de finanzas , marketing , operaciones y recursos humanos . Por lo general, incluye empleados de todos los niveles de la organización. Los miembros también pueden provenir de fuera de la organización (en particular, de proveedores, clientes clave o consultores).

Reunión diaria de pie

Una reunión de pie (o reunión de pie) es una reunión en la que los asistentes suelen participar de pie , normalmente alrededor de las 10 de la mañana. La incomodidad de estar de pie durante largos periodos tiene como objetivo que las reuniones sean breves.

Adaptación del método

En la literatura, diferentes términos se refieren a la noción de adaptación de métodos, incluyendo "adaptación de métodos", "adaptación de fragmentos de métodos" e "ingeniería de métodos situacionales". La adaptación de métodos se define como:

Un proceso o capacidad en el que los agentes humanos determinan un enfoque de desarrollo de sistemas para una situación de proyecto específica a través de cambios adaptativos e interacciones dinámicas entre contextos, intenciones y fragmentos de métodos.

Mehmet Nafiz Aydin et al., Un método de desarrollo de sistemas de información ágil en uso [ 70 ]

La adecuación a la situación debe considerarse una característica distintiva entre los métodos ágiles y los métodos de desarrollo de software más orientados a la planificación, ya que los métodos ágiles permiten a los equipos de desarrollo de productos adaptar las prácticas de trabajo según las necesidades de cada producto. [ 71 ] [ 70 ] Potencialmente, la mayoría de los métodos ágiles podrían ser adecuados para la adaptación de métodos, [ 51 ] como DSDM adaptado en un contexto CMM . [ 72 ] y XP adaptado con la técnica de Prácticas de Descripción de Reglas (RDP). [ 73 ] Sin embargo, no todos los defensores de la metodología ágil están de acuerdo, como señala Schwaber: «Así es como nos metimos en problemas en primer lugar, pensando que el problema era no tener una metodología perfecta. Los esfuerzos [deberían] centrarse en los cambios [necesarios] en la empresa». [ 74 ] Bas Vodde reforzó este punto de vista, sugiriendo que, a diferencia de las metodologías tradicionales y extensas que requieren seleccionar elementos, Scrum proporciona los fundamentos sobre los cuales se agregan elementos adicionales para localizar y contextualizar su uso. [ 75 ] Los profesionales rara vez utilizan los métodos de desarrollo de sistemas , o los métodos ágiles específicamente, al pie de la letra, optando a menudo por omitir o adaptar algunas de las prácticas de un método para crear un método propio. [ 76 ]

En la práctica, los métodos pueden adaptarse utilizando diversas herramientas. Los lenguajes genéricos de modelado de procesos, como el Lenguaje Unificado de Modelado (UML), pueden utilizarse para adaptar los métodos de desarrollo de software. Sin embargo, también existen herramientas específicas para la ingeniería de métodos, como la Teoría Esencial de la Ingeniería de Software de SEMAT . [ 77 ]

A gran escala, en alta mar y distribuido

El desarrollo ágil de software se ha considerado ampliamente como muy adecuado para ciertos tipos de entornos, incluidos pequeños equipos de expertos que trabajan en proyectos nuevos , [ 46 ] [ 78 ] y los desafíos y limitaciones encontrados en la adopción de métodos de desarrollo ágil de software en una gran organización con infraestructura heredada están bien documentados y comprendidos. [ 79 ]

En respuesta, se ha desarrollado una variedad de estrategias y patrones para superar los desafíos de los esfuerzos de desarrollo a gran escala (>20 desarrolladores) [ 80 ] [ 81 ] o los equipos de desarrollo distribuidos (no ubicados en el mismo lugar), [ 82 ] [ 83 ] entre otros desafíos; y ahora existen varios marcos reconocidos que buscan mitigar o evitar estos desafíos.

Existen muchos puntos de vista contradictorios sobre si todos estos son efectivos o si realmente se ajustan a la definición de desarrollo ágil, y este sigue siendo un área de investigación activa y en curso. [ 80 ] [ 84 ]

Cuando el desarrollo ágil de software se aplica en un entorno distribuido (con equipos dispersos en múltiples ubicaciones), se suele denominar desarrollo ágil de software distribuido . El objetivo es aprovechar las ventajas únicas que ofrece cada enfoque. El desarrollo distribuido permite a las organizaciones crear software mediante la creación estratégica de equipos en diferentes partes del mundo, desarrollando software prácticamente las 24 horas del día (modelo conocido como "seguir al sol"). Por otro lado, el desarrollo ágil proporciona mayor transparencia, retroalimentación continua y más flexibilidad para responder a los cambios.

Dominios regulados

Inicialmente, se consideró que los métodos de desarrollo de software ágil eran más adecuados para el desarrollo de productos no críticos, por lo que se excluían de su uso en ámbitos regulados como los de dispositivos médicos , farmacéutico, financiero, sistemas nucleares, automoción y aviónica, entre otros. Sin embargo, en los últimos años, se han llevado a cabo varias iniciativas para la adaptación de los métodos ágiles a estos ámbitos. [ 85 ] [ 86 ] [ 87 ] [ 88 ] [ 89 ]

Existen numerosos estándares que pueden aplicarse en dominios regulados, entre ellos ISO 26262 , ISO 9000 , ISO 9001 e ISO/IEC 15504. Una serie de aspectos clave revisten especial importancia en los dominios regulados: [ 90 ]

  • Garantía de calidad (GC): Gestión de calidad sistemática e inherente que sustenta un proceso profesional controlado y la fiabilidad y corrección del producto.
  • Seguridad: Planificación formal y gestión de riesgos para mitigar los riesgos de seguridad para los usuarios y protegerlos de forma segura contra el uso indebido, tanto involuntario como malintencionado.
  • Trazabilidad : Documentación que proporciona evidencia auditable del cumplimiento normativo y que facilita la trazabilidad y la investigación de problemas.
  • Verificación y validación (V&V): Integrada en todo el proceso de desarrollo de software (por ejemplo, especificación de requisitos de usuario, especificación funcional, especificación de diseño, revisión de código, pruebas unitarias, pruebas de integración, pruebas de sistema).

Experiencia y adopción

Aunque los métodos de desarrollo de software ágil pueden utilizarse con cualquier paradigma o lenguaje de programación, en la práctica se asociaron originalmente con entornos orientados a objetos como Smalltalk, Lisp y, posteriormente, Java y C#. Los primeros en adoptar los métodos ágiles solían ser equipos pequeños o medianos que trabajaban en sistemas sin precedentes con requisitos difíciles de definir y propensos a cambiar durante el desarrollo. Esta sección describe los problemas comunes que encuentran las organizaciones al intentar adoptar métodos de desarrollo de software ágil, así como diversas técnicas para medir la calidad y el rendimiento de los equipos ágiles. [ 91 ]

Medición de la agilidad

evaluaciones internas

El índice de medición de agilidad , entre otros, califica los desarrollos según cinco dimensiones del desarrollo de productos (duración, riesgo, novedad, esfuerzo e interacción). [ 92 ] Otras técnicas se basan en objetivos medibles [ 93 ] y un estudio sugiere que la velocidad puede usarse como métrica de agilidad. También existen autoevaluaciones ágiles para determinar si un equipo está utilizando prácticas de desarrollo de software ágil (prueba de Nokia, [ 94 ] prueba de Karlskrona, [ 95 ] prueba de 42 puntos). [ 96 ]

encuestas públicas

Uno de los primeros estudios que reportaron mejoras en la calidad, la productividad y la satisfacción empresarial mediante el uso de métodos de desarrollo de software ágil fue una encuesta realizada por Shine Technologies de noviembre de 2002 a enero de 2003. [ 97 ]

Una encuesta similar, el Estado de Agile , se realiza cada año desde 2006 con miles de participantes de toda la comunidad de desarrollo de software. Esta rastrea las tendencias sobre los beneficios percibidos de la agilidad, las lecciones aprendidas y las buenas prácticas. Cada encuesta ha reportado un número creciente de personas que afirman que el desarrollo ágil de software les ayuda a entregar software más rápido, mejora su capacidad para gestionar las prioridades cambiantes de los clientes y aumenta su productividad. [ 98 ] Las encuestas también han mostrado consistentemente mejores resultados con los métodos de desarrollo ágil de productos en comparación con la gestión de proyectos clásica. [ 99 ] [ 100 ] En equilibrio, hay informes que indican que algunos consideran que los métodos de desarrollo ágil aún son demasiado recientes para permitir una investigación académica extensa sobre su éxito. [ 101 ]

Errores comunes en el desarrollo ágil de software

Las organizaciones y los equipos que implementan el desarrollo ágil de software a menudo enfrentan dificultades en la transición desde métodos más tradicionales como el desarrollo en cascada , como por ejemplo, cuando se les impone un proceso ágil. [ 102 ] A esto se le suele llamar antipatrones ágiles o, más comúnmente, malos olores ágiles . A continuación, se presentan algunos ejemplos comunes:

Falta de diseño general del producto

Un objetivo del desarrollo ágil de software es centrarse más en producir software funcional y menos en la documentación. Esto contrasta con los modelos en cascada, donde el proceso suele estar altamente controlado y los cambios menores en el sistema requieren una revisión significativa de la documentación de soporte. Sin embargo, esto no justifica prescindir por completo del análisis o el diseño. No prestar atención al diseño puede provocar que un equipo avance rápidamente al principio, pero luego requiera una reelaboración significativa al intentar escalar el sistema. Una de las características clave del desarrollo ágil de software es su carácter iterativo. Cuando se realiza correctamente, el desarrollo ágil de software permite que el diseño surja a medida que se desarrolla el sistema y ayuda al equipo a descubrir similitudes y oportunidades de reutilización. [ 103 ]

Agregar historias a una iteración en curso

En el desarrollo ágil de software, las historias (similares a las descripciones de casos de uso ) se utilizan normalmente para definir los requisitos, y una iteración es un período corto de tiempo durante el cual el equipo se compromete con objetivos específicos. [ 104 ] Agregar historias a una iteración en curso perjudica un buen flujo de trabajo. Estas deben agregarse al backlog del producto y priorizarse para una iteración posterior o, en casos excepcionales, la iteración podría cancelarse. [ 105 ]

Esto no significa que una historia no pueda expandirse. Los equipos deben lidiar con nueva información, lo que puede generar tareas adicionales. Si la nueva información impide que la historia se complete durante la iteración, entonces debe posponerse para una iteración posterior. Sin embargo, debe priorizarse sobre las demás historias, ya que la nueva información puede haber cambiado la prioridad original de la historia.

Falta de apoyo de los patrocinadores

El desarrollo ágil de software suele implementarse de forma espontánea en las organizaciones por equipos de desarrollo que buscan optimizar sus procesos y garantizar la coherencia en el ciclo de vida del desarrollo de software. Al no contar con el apoyo de un patrocinador, los equipos pueden enfrentar dificultades y resistencia por parte de socios comerciales, otros equipos de desarrollo y la gerencia. Además, pueden sufrir por la falta de financiación y recursos adecuados. [ 106 ] Esto aumenta la probabilidad de fracaso. [ 107 ]

Formación insuficiente

Una encuesta realizada por VersionOne encontró que los encuestados citaron la capacitación insuficiente como la causa más significativa de las implementaciones ágiles fallidas [ 108 ].

El rol de Product Owner no está cubierto correctamente.

El propietario del producto es responsable de representar al negocio en la actividad de desarrollo y suele ser el rol más exigente. [ 109 ]

Un error común es asignar el rol de propietario del producto a alguien del equipo de desarrollo. Esto obliga al equipo a tomar sus propias decisiones sobre priorización sin una retroalimentación real del negocio. Intentan resolver problemas de negocio internamente o retrasan el trabajo mientras buscan orientación fuera del equipo. Esto suele generar distracciones y una ruptura en la colaboración. [ 110 ]

Los equipos no están concentrados

El desarrollo ágil de software requiere que los equipos cumplan con los compromisos del producto, lo que significa que deben centrarse en el trabajo exclusivamente para ese producto. Sin embargo, a menudo se espera que los miembros del equipo que parecen tener capacidad disponible asuman otras tareas, lo que dificulta que ayuden a completar el trabajo al que su equipo se había comprometido. [ 111 ]

Preparación/planificación excesiva

Los equipos pueden caer en la trampa de dedicar demasiado tiempo a la preparación o planificación. Esta es una trampa común para los equipos menos familiarizados con el desarrollo ágil de software, donde se sienten obligados a comprender y especificar completamente todas las historias de usuario. Los equipos deben estar preparados para avanzar solo con aquellas historias en las que tengan confianza y, durante la iteración, seguir descubriendo y preparando trabajo para las iteraciones posteriores (lo que a menudo se denomina refinamiento o limpieza del backlog).

Resolución de problemas en la reunión diaria de seguimiento

La reunión diaria de seguimiento debe ser una reunión puntual y centrada en la que todos los miembros del equipo compartan información. Si se aborda la resolución de problemas, a menudo solo involucra a ciertos miembros del equipo y, por lo tanto, no es la mejor manera de emplear el tiempo de todo el equipo. Si durante la reunión diaria el equipo comienza a abordar la resolución de problemas, estos deben dejarse de lado hasta que un subequipo pueda discutirlos, generalmente inmediatamente después de que finalice la reunión. [ 112 ]

Asignación de tareas

Uno de los beneficios previstos del desarrollo ágil de software es empoderar al equipo para que tome decisiones, ya que son quienes están más cerca del problema. Además, deberían tomar decisiones lo más cerca posible de la implementación, para utilizar información más oportuna en la toma de decisiones. Si a los miembros del equipo se les asignan tareas por otros o demasiado pronto en el proceso, se pueden perder los beneficios de una toma de decisiones localizada y oportuna. [ 113 ]

La asignación de tareas también limita a los miembros del equipo a ciertos roles (por ejemplo, el miembro del equipo A siempre debe realizar el trabajo de la base de datos), lo que restringe las oportunidades de capacitación cruzada. [ 113 ] Los propios miembros del equipo pueden optar por asumir tareas que pongan a prueba sus habilidades y brinden oportunidades de capacitación cruzada.

El Scrum Master como colaborador

En el marco de trabajo Scrum, que afirma ser coherente con los valores y principios ágiles, el rol de Scrum Master es responsable de garantizar que se siga el proceso Scrum y de guiar al equipo Scrum a través de dicho proceso. Un error común es que el Scrum Master actúe como colaborador. Si bien el marco de trabajo Scrum no lo prohíbe, el Scrum Master debe asegurarse de tener la capacidad de desempeñar primero su rol como Scrum Master y no trabajar en tareas de desarrollo. El rol del Scrum Master es facilitar el proceso, no crear el producto. [ 114 ]

Que el scrum master también realice varias tareas a la vez puede resultar en demasiados cambios de contexto para ser productivo. Además, dado que el scrum master es responsable de asegurar que se eliminen los obstáculos para que el equipo pueda avanzar, el beneficio obtenido al avanzar las tareas individuales puede no compensar los obstáculos que se posponen debido a la falta de capacidad. [ 115 ]

Falta de automatización de pruebas

Debido a la naturaleza iterativa del desarrollo ágil, a menudo se requieren múltiples rondas de pruebas. Las pruebas automatizadas ayudan a reducir el impacto de las pruebas unitarias, de integración y de regresión repetidas, y permiten que los desarrolladores y evaluadores se centren en tareas de mayor valor. [ 116 ]

La automatización de pruebas también facilita la refactorización continua que requiere el desarrollo iterativo de software. Permitir que un desarrollador ejecute rápidamente pruebas para confirmar que la refactorización no ha modificado la funcionalidad de la aplicación puede reducir la carga de trabajo y aumentar la confianza en que las labores de limpieza no han introducido nuevos defectos.

Permitir que se acumule la deuda técnica

Centrarse en ofrecer nuevas funcionalidades puede resultar en un aumento de la deuda técnica . El equipo debe reservar tiempo para la corrección de defectos y la refactorización. La deuda técnica dificulta la planificación al aumentar la cantidad de trabajo no programado, ya que los defectos de producción distraen al equipo e impiden un mayor progreso. [ 117 ]

A medida que el sistema evoluciona, es importante refactorizarlo . [ 118 ] Con el tiempo, la falta de mantenimiento constante provoca un aumento de los defectos y de los costos de desarrollo. [ 117 ]

Intentar abarcar demasiado en una sola iteración.

Una idea errónea común es que el desarrollo ágil de software permite el cambio continuo; sin embargo, un backlog de iteración es un acuerdo sobre qué trabajo se puede completar durante una iteración. [ 119 ] Tener demasiado trabajo en progreso (WIP) genera ineficiencias como el cambio de contexto y la formación de colas. [ 120 ] El equipo debe evitar sentirse presionado a asumir trabajo adicional. [ 121 ]

Tiempo, recursos, alcance y calidad fijos.

El desarrollo ágil de software fija el tiempo (duración de la iteración), la calidad e idealmente los recursos por adelantado (aunque mantener recursos fijos puede ser difícil si los desarrolladores se ven obligados a interrumpir sus tareas con frecuencia para atender incidentes de producción), mientras que el alcance permanece variable. El cliente o el propietario del producto a menudo presionan para que se establezca un alcance fijo para una iteración. Sin embargo, los equipos deben ser reacios a comprometerse con el tiempo, los recursos y el alcance fijos (conocido comúnmente como el triángulo de gestión de proyectos ). Los esfuerzos por ampliar el alcance al tiempo y los recursos fijos del desarrollo ágil de software pueden resultar en una disminución de la calidad. [ 122 ]

Agotamiento del desarrollador

Debido al ritmo intenso y la naturaleza continua de las prácticas ágiles, existe un mayor riesgo de agotamiento entre los miembros del equipo de entrega. [ 123 ]

Gestión ágil

La gestión ágil de proyectos es un proceso de desarrollo iterativo, donde se recopila continuamente retroalimentación de usuarios y partes interesadas para crear la experiencia de usuario adecuada. Se pueden utilizar diferentes métodos para realizar un proceso ágil, estos incluyen Scrum , programación extrema , Lean y Kanban . [ 124 ] El término gestión ágil se aplica a un método iterativo e incremental de gestionar las actividades de diseño y construcción de ingeniería, tecnología de la información y otras áreas de negocio que tienen como objetivo proporcionar el desarrollo de nuevos productos o servicios de una manera altamente flexible e interactiva, basado en los principios expresados ​​en el Manifiesto para el Desarrollo Ágil de Software . [ 125 ] Las métricas de gestión ágil de proyectos ayudan a reducir la confusión, identificar puntos débiles y medir el rendimiento del equipo a lo largo del ciclo de desarrollo. La agilidad de la cadena de suministro es la capacidad de una cadena de suministro para hacer frente a la incertidumbre y la variabilidad en la oferta y la demanda. Una cadena de suministro ágil puede aumentar y reducir su capacidad rápidamente, de modo que puede adaptarse a una demanda del cliente que cambia rápidamente. Finalmente, la agilidad estratégica es la capacidad de una organización para cambiar su curso de acción a medida que su entorno evoluciona. La clave para la agilidad estratégica es reconocer los cambios externos con la suficiente antelación y asignar recursos para adaptarse a estos entornos cambiantes. [ 124 ]

Las técnicas Agile X también pueden denominarse gestión de proyectos extrema . Es una variante del ciclo de vida iterativo [ 126 ] donde los entregables se presentan en etapas. La principal diferencia entre el desarrollo ágil e iterativo es que los métodos ágiles completan pequeñas porciones de los entregables en cada ciclo de entrega (iteración) [ 127 ] , mientras que los métodos iterativos desarrollan el conjunto completo de entregables a lo largo del tiempo, completándolos cerca del final del proyecto. Tanto los métodos iterativos como los ágiles se desarrollaron como reacción a diversos obstáculos que surgieron en formas más secuenciales de organización de proyectos. Por ejemplo, a medida que los proyectos tecnológicos aumentan en complejidad, los usuarios finales tienden a tener dificultades para definir los requisitos a largo plazo sin poder ver prototipos progresivos. Los proyectos que se desarrollan en iteraciones pueden recopilar constantemente retroalimentación para ayudar a refinar esos requisitos.

La gestión ágil también ofrece un marco simple que promueve la comunicación y la reflexión sobre el trabajo pasado entre los miembros del equipo . [ 128 ] Los equipos que utilizaban la planificación tradicional en cascada y adoptaron la metodología ágil de desarrollo suelen pasar por una fase de transformación y a menudo reciben ayuda de coaches ágiles que los guían a través de una transformación más fluida. Generalmente existen dos estilos de coaching ágil: el coaching ágil basado en empuje y el coaching ágil basado en atracción. Aquí, un "sistema de empuje" puede referirse a una estimación previa de qué tareas se pueden incluir en un sprint (empuje del trabajo), por ejemplo, típico de Scrum; mientras que un "sistema de atracción" puede referirse a un entorno donde las tareas solo se realizan cuando hay capacidad disponible. [ 129 ] Los enfoques de gestión ágil también se han empleado y adaptado a los sectores empresarial y gubernamental. Por ejemplo, dentro del gobierno federal de los Estados Unidos , la Agencia de los Estados Unidos para el Desarrollo Internacional (USAID) está empleando un enfoque de gestión de proyectos colaborativo que se centra en incorporar estrategias de colaboración, aprendizaje y adaptación (CLA) para iterar y adaptar la programación. [ 130 ]

Los métodos ágiles se mencionan en la Guía de los Fundamentos para la Dirección de Proyectos ( Guía PMBOK, 6.ª edición ) bajo la definición de Ciclo de vida del desarrollo del producto :

Dentro del ciclo de vida de un proyecto, generalmente existen una o más fases asociadas con el desarrollo del producto, servicio o resultado. Estas se denominan ciclo de vida de desarrollo (...) Los ciclos de vida adaptativos son ágiles, iterativos o incrementales. El alcance detallado se define y aprueba antes del inicio de una iteración. Los ciclos de vida adaptativos también se conocen como ciclos de vida ágiles o impulsados ​​por el cambio. [ 131 ]

Aplicaciones fuera del desarrollo de software

Conferencia Agile Brasil 2014

Según Jean-Loup Richet (investigador del Instituto ESSEC para la Innovación Estratégica y los Servicios), «este enfoque puede aprovecharse eficazmente para productos que no son de software y para la gestión de proyectos en general, especialmente en áreas de innovación e incertidumbre». El resultado es un producto o proyecto que satisface mejor las necesidades actuales del cliente y se entrega con costes, desperdicios y tiempo mínimos, lo que permite a las empresas obtener beneficios antes que con los enfoques tradicionales. [ 132 ]

Los métodos de desarrollo de software ágil se han utilizado ampliamente para el desarrollo de productos de software y algunos de ellos utilizan ciertas características del software, como las tecnologías de objetos . [ 133 ] Sin embargo, estas técnicas pueden aplicarse al desarrollo de productos no relacionados con el software, como computadoras, dispositivos médicos, alimentos, ropa y música. [ 134 ] Los métodos de desarrollo de software ágil se han utilizado en implementaciones y migraciones de infraestructura de TI no relacionadas con el desarrollo . Algunos de los principios más amplios del desarrollo de software ágil también se han aplicado en la gestión general [ 135 ] (por ejemplo, estrategia, gobernanza, riesgo, finanzas) bajo los términos de agilidad empresarial o gestión empresarial ágil. Las metodologías de software ágil también se han adoptado para su uso con el proceso de ingeniería del aprendizaje , un proceso iterativo basado en datos que aplica el diseño centrado en el ser humano y la toma de decisiones basada en datos para apoyar a los estudiantes y su desarrollo. [ 136 ]

Los paradigmas de desarrollo de software ágil pueden utilizarse en otros ámbitos de la vida, como la crianza de los hijos. Su éxito en el desarrollo infantil podría basarse en algunos principios básicos de gestión: comunicación, adaptación y conciencia. En una charla TED , Bruce Feiler compartió cómo aplicó paradigmas ágiles básicos a la gestión del hogar y la crianza de los hijos. [ 137 ]

Crítica

Se ha señalado que las prácticas ágiles pueden ser ineficientes en grandes organizaciones y en ciertos tipos de desarrollo. [ 138 ] Muchas organizaciones creen que las metodologías de desarrollo de software ágil son demasiado extremas y adoptan un enfoque híbrido [ 139 ] que combina elementos del desarrollo de software ágil y enfoques basados ​​en la planificación. [ 140 ] Algunos métodos, como el método de desarrollo de sistemas dinámicos (DSDM), intentan esto de manera disciplinada, sin sacrificar los principios fundamentales.

La creciente adopción de prácticas ágiles también ha sido criticada por ser una moda de gestión que simplemente describe buenas prácticas existentes con una nueva jerga, promueve una mentalidad de talla única para las estrategias de desarrollo y enfatiza erróneamente el método sobre los resultados. [ 141 ]

Alistair Cockburn organizó una celebración del décimo aniversario del Manifiesto para el Desarrollo Ágil de Software en Snowbird, Utah, el 12 de febrero de 2011, reuniendo a más de 30 personas que habían participado en la reunión original y posteriormente. Se recopiló una lista de aproximadamente 20 temas incómodos ("temas/cuestiones ágiles" tabú ), que incluían aspectos como: las alianzas, los fracasos y las limitaciones de las prácticas y el contexto del desarrollo ágil de software (posibles causas: intereses comerciales, descontextualización, falta de una forma obvia de progresar a partir del fracaso, evidencia objetiva limitada, sesgos cognitivos y falacias de razonamiento), la política y la cultura. [ 142 ] Como escribió Philippe Kruchten :

El movimiento ágil se asemeja en cierto modo a un adolescente: muy cohibido, constantemente pendiente de su apariencia, reacio a las críticas, interesado únicamente en estar con sus iguales, rechazando en bloque toda sabiduría del pasado, simplemente por ser del pasado, adoptando modas y jerga nueva, a veces incluso arrogante. Pero no me cabe duda de que madurará aún más, se abrirá al mundo exterior, será más reflexivo y, por lo tanto, más eficaz.

Philippe Kruchten [ 142 ]

El «Manifiesto» pudo haber tenido un impacto negativo en la gestión y el liderazgo de la educación superior, ya que sugería a los administradores que los procesos tradicionales, lentos y deliberativos debían ser reemplazados por otros más «ágiles». El concepto rara vez fue aceptado entre el profesorado universitario. [ 143 ]

Otra crítica es que, en muchos sentidos, la gestión ágil y las prácticas de gestión tradicionales terminan oponiéndose entre sí. Una crítica común a esta práctica es que el tiempo invertido en aprenderla e implementarla resulta demasiado costoso, a pesar de los beneficios potenciales. La transición de la gestión tradicional a la gestión ágil requiere una sumisión total a la metodología ágil y un firme compromiso de todos los miembros de la organización para llevar el proceso a buen término. Problemas como resultados desiguales en toda la organización, cambios excesivos para que los empleados los gestionen o la falta de garantías al final de la transformación son solo algunos ejemplos. [ 144 ]

Véase también

Referencias

  1. "¿Qué es Agile?" . Agile Alliance . 29 de junio de 2015 . Consultado el 16 de julio de 2024 .
  2. 1 2 3 Kent Beck ; James Grenning; Robert C. Martin ; Mike Beedle; Jim Highsmith ; Steve Mellor ; Arie van Bennekum ; Andrew Hunt ; Ken Schwaber ; Alistair Cockburn ; Ron Jeffries ; Jeff Sutherland ; Ward Cunningham ; Jon Kern; Dave Thomas ; Martin Fowler ; Brian Marick (2001). "Manifiesto para el desarrollo ágil de software" . Agile Alliance . Recuperado el 14 de junio de 2010 .
  3. 1 2 Larman, Craig (2004). Desarrollo ágil e iterativo: una guía para gerentes . Addison-Wesley. pág. 27. ISBN  978-0-13-111155-4.
  4. Rally (2010). "Agile con "A" mayúscula vs. agile con "a" minúscula"" . Archivado del original el 5 de enero de 2016 . Consultado el 9 de septiembre de 2015 .
  5. Collier 2011 .
  6. "¿Qué es el desarrollo ágil de software?" . Agile Alliance. 8 de junio de 2013 . Consultado el 4 de abril de 2015 .
  7. Dybå, Tore; Dingsøyr, Torgeir (1 de agosto de 2008). "Estudios empíricos del desarrollo ágil de software: una revisión sistemática". Information and Software Technology . 50 ( 9–10 ): 833–859 . doi : 10.1016/j.infsof.2008.01.006 . ISSN 0950-5849 . S2CID 2244031 .  
  8. Lee, Gwanhoo; Xia, Weidong (2010). "Hacia Agile: Un análisis integrado de datos de campo cuantitativos y cualitativos sobre la agilidad en el desarrollo de software". MIS Quarterly . 34 (1): 87– 114. doi : 10.2307/20721416 . JSTOR 20721416 . S2CID 26477249 .  
  9. Kroll, J.; Richardson, I.; Prikladnicki, R.; Audy, JL (2018). "Evidencia empírica en el desarrollo de software follow the Sun: un estudio de mapeo sistemático" . Information and Software Technology . 93 : 30–44 . doi : 10.1016/j.infsof.2017.08.011 . hdl : 10344/6233 .
  10. Gerald M. Weinberg , citado en Larman & Basili 2003 , pp. 47–56 : "Ya en 1957, en Los Ángeles, realizábamos desarrollo incremental bajo la dirección de Bernie Dimsdale en la Service Bureau Corporation de IBM . Era colega de John von Neumann , así que quizás lo aprendió allí o lo dio por sentado. Recuerdo que Herb Jacobs (principalmente, aunque todos participamos) desarrolló una gran simulación para Motorola, donde la técnica empleada fue, por lo que recuerdo... Todos pensábamos que el modelo en cascada para un proyecto tan grande era bastante estúpido, o al menos ignoraba la realidad. Creo que la descripción del modelo en cascada nos hizo darnos cuenta de que estábamos haciendo algo más, algo sin nombre, salvo 'desarrollo de software ' . "  
  11. "Gestión de proyectos evolutiva (Página original, archivo externo)" . Gilb. Archivado del original el 27 de marzo de 2016. Recuperado el 30 de abril de 2017 .
  12. "Gestión de proyectos evolutiva (Nueva página)" . graphMetrix . Gilb . Consultado el 30 de abril de 2017 .
  13. Edmonds, EA (1974). "Un proceso para el desarrollo de software para usuarios no técnicos como un sistema adaptativo". General Systems . 19 : 215–18 .
  14. Gilb, Tom (1 de abril de 1981). "Desarrollo evolutivo". ACM SIGSOFT Software Engineering Notes . 6 (2): 17. doi : 10.1145/1010865.1010868 . S2CID 33902347 . 
  15. Swamidass, PM, ed. (2000), "Organización de proyectos de gran envergadura" , Enciclopedia de Gestión de Producción y Manufactura , Boston, MA: Springer US, pp. 261–262 , doi : 10.1007/1-4020-0612-8_400 , ISBN  978-1-4020-0612-8Consultado el 22 de junio de 2022.
  16. Martin, James (1991). Desarrollo rápido de aplicaciones . Macmillan. ISBN 978-0-02-376775-3.
  17. 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.
  18. Instituto Iacocca (1991). "Estrategia empresarial manufacturera del siglo XXI: una perspectiva liderada por la industria". Instituto Iacocca, Universidad de Lehigh, Bethlehem, PA.
  19. Presley, A., J. Mills y D. Liles (1995). "Fabricación aeroespacial ágil". Nepcon East 1995, Boston.
  20. Sánchez, Luis (noviembre de 2010). "Una revisión de los sistemas de fabricación ágil" . Revista Internacional de Investigación de la Producción (39(16):3561-3600).
  21. Anderson, David (2005). "Declaración de interdependencia" . Archivado del original el 27 de enero de 2018. Recuperado el 4 de octubre de 2018 .
  22. McDonald, Kent (1 de noviembre de 2016). "Cómo puedes ayudar a Agile Alliance a ayudarte" . Blog de Agile Alliance . Consultado el 4 de julio de 2017 .
  23. "Examinando el Manifiesto Ágil" . Ambysoft Inc. Consultado el 6 de abril de 2011 .
  24. Jim Highsmith (2001). "Historia: El Manifiesto Ágil" . agilemanifesto.org.
  25. 1 2 Kent Beck ; James Grenning; Robert C. Martin ; Mike Beedle; Jim Highsmith ; Steve Mellor ; Arie van Bennekum; Andrew Hunt ; Ken Schwaber ; Alistair Cockburn ; Ron Jeffries ; Jeff Sutherland ; Ward Cunningham ; Jon Kern; Dave Thomas ; Martin Fowler ; Brian Marick (2001). "Principios detrás del Manifiesto Ágil" . Agile Alliance. Archivado del original el 14 de junio de 2010. Recuperado el 6 de junio de 2010 .
  26. Project Management Institute 2021 , 2.3.3 Enfoques de desarrollo.
  27. Rubin 2013 .
  28. Project Management Institute 2021 , §3.12 Facilitar el cambio para lograr el estado futuro previsto.
  29. Moran, A. (2014). Gestión ágil de riesgos . Springer Verlag. ISBN 978-3319050072.
  30. Beck, Kent (1999). "Aceptando el cambio con programación extrema". Computer . 32 (10): 70– 77. Bibcode : 1999Compr..32j..70B . doi : 10.1109/2.796139 .
  31. Mergel, Ines (julio de 2016). "Gestión ágil de la innovación en el gobierno: una agenda de investigación" . Government Information Quarterly . 33 (3): 516– 523. doi : 10.1016/j.giq.2016.07.004 .
  32. Preuss, Deborah Hartmann (13 de octubre de 2006). "Estudio: Equipos ubicados en el mismo lugar frente a la granja de cubículos" . InfoQ . Recuperado el 23 de octubre de 2018 .
  33. Cockburn, Alistair (2007). "Desarrollo ágil de software: El juego cooperativo" . www.pearson.com (2.ª ed.). Addison-Wesley Professional . Consultado el 23 de octubre de 2018 . 
  34. "Gestión transformada | Investigación" .
  35. Jain, Parita; Sharma, Arun; Ahuja, Laxmi (agosto de 2018). "El impacto del proceso de desarrollo de software ágil en la calidad del producto de software". 7.ª Conferencia Internacional de 2018 sobre Fiabilidad, Tecnologías de la Información y Optimización (Tendencias y Direcciones Futuras) (ICRITO) . Noida, India: IEEE. págs. 812–815 . doi : 10.1109/ICRITO.2018.8748529 . ISBN  978-1-5386-4692-2. S2CID 195775457 . 
  36. Project Management Institute 2021 , §2.7.3.2 Radiadores de información.
  37. Ambler, Scott (12 de abril de 2002). Modelado ágil: prácticas efectivas para la programación extrema y el proceso unificado . John Wiley & Sons. págs. 12, 164, 363. ISBN  978-0-471-20282-0.
  38. Vasiliauskas, Vidas (2014). "Desarrollo de prácticas ágiles de gestión de tareas y equipos de proyectos" . Eylean. Archivado del original el 15 de septiembre de 2014. Recuperado el 15 de septiembre de 2014 .
  39. Jeffries, Ron; Anderson, Ann; Hendrickson, Chet (2001). Extreme Programming installed . Addison-Wesley. pp. 72–147 . ISBN  978-0201-70842-4.
  40. Lisa Crispin; Janet Gregory (2009). Pruebas ágiles: una guía práctica para evaluadores y equipos ágiles . Addison-Wesley.
  41. Mitchell, Ian (2016). Desarrollo ágil en la práctica . Tamare House. pág. 11. ISBN  978-1-908552-49-5.
  42. Larman, Craig (2004). Desarrollo ágil e iterativo: Guía para gerentes . Addison-Wesley. pág. 27. ISBN  978-0-13-111155-4.
  43. Boehm, B. ; R. Turner (2004). Equilibrando agilidad y disciplina: una guía para los perplejos . Boston, MA: Addison-Wesley. ISBN 978-0-321-18612-6.Apéndice A, páginas  165–194
  44. Larman, Craig (2004). «Capítulo 11: Consejos prácticos» . Desarrollo ágil e iterativo: Guía para gerentes . Addison-Wesley Professional. pág. 253. ISBN  9780131111554Consultado el 14 de octubre de 2013 .
  45. Sliger, Michele; Broderick, Stacia (2008). El puente del gestor de proyectos de software hacia la agilidad . Addison-Wesley. pág. 46. ISBN  978-0-321-50275-9.
  46. 1 2 Boehm, B. ; R. Turner (2004). Equilibrando agilidad y disciplina: una guía para los perplejos . Boston, MA: Addison-Wesley. pp. 55– 57. ISBN  978-0-321-18612-6.
  47. Rakitin, Steven R. (2001). "Manifiesto provoca cinismo: Carta del lector al editor por Steven R. Rakitin". IEEE Computer . 34 (12): 4. doi : 10.1109/MC.2001.10095 . S2CID 221106984. El artículo titulado 'Desarrollo ágil de software: El negocio de la innovación ' ... es otro intento más de socavar la disciplina de la ingeniería de software... Queremos pasar todo nuestro tiempo programando. Recuerda, los verdaderos programadores no escriben documentación. 
  48. 1 2 Scott Ambler (16 de abril de 2023). "Documentación ágil/lean: estrategias para el desarrollo ágil de software" .
  49. Scott Ambler. "Modelos y documentos apenas suficientes: una buena práctica ágil" . Archivado del original el 8 de octubre de 2014. Consultado el 24 de enero de 2014 .
  50. Geoffrey Wiseman (18 de julio de 2007). "¿Requieren documentación los métodos ágiles?" . InfoQ.Citando a Cooper, Ian (6 de julio de 2007). "Señales staccato: Agile y documentación" . WordPress.com .
  51. ^ Abrahamson P, Salo O, Ronkainen J, Warsta J (2002 ) . Métodos ágiles de desarrollo de software: Revisión y análisis (PDF) (Informe técnico). VTT . 478.
  52. "Guía de prácticas ágiles" . La Alianza Ágil. Archivado del original el 9 de febrero de 2014.
  53. Pugh, Ken (2011). Desarrollo ágil y ágil basado en pruebas de aceptación: Mejor software mediante la colaboración . Addison-Wesley. ISBN 978-0321714084.
  54. Adzic, Gojko. (2009) Cerrando la brecha de comunicación: especificación mediante ejemplos y pruebas de aceptación ágiles , Neuri Limited,
  55. Adzic, Gojko (2011). Especificación mediante ejemplos: Cómo los equipos exitosos entregan el software adecuado . Manning. ISBN 978-0-321-27865-4.
  56. Chelimsky, David, Dave Astels, Zach Dennis, Aslak Hellesøy, Bryan Helmkamp y Dan North. El libro de RSpec: Desarrollo impulsado por el comportamiento con RSpec, Cucumber y herramientas afines. The Pragmatic Bookshelf.
  57. "Diseño basado en ejemplos" . Consultado el 15 de abril de 2013 .
  58. "Desarrollo guiado por pruebas de historias" (PDF) . Consultado el 15 de abril de 2013 .
  59. Página principal de modelado ágil (AM), prácticas efectivas para el modelado y la documentación
  60. Atlassian. "La cartera de productos: tu lista de tareas definitiva" . Atlassian . Consultado el 19 de diciembre de 2021 .
  61. 1 2 "¿Qué es un Product Backlog?" . Scrum.org . Consultado el 19 de diciembre de 2021 .
  62. 1 2 3 "Práctica básica ágil: Requisitos priorizados" . agilemodeling.com . Consultado el 19 de diciembre de 2021 .
  63. "Artefacto: Lista de elementos de trabajo" . www.utm.mx. Consultado el 19 de diciembre de 2021 .
  64. "Produkteier | Digitaliseringsdirektoratet" . Archivado desde el original el 10 de agosto de 2020 . Consultado el 15 de noviembre de 2021 .
  65. "Estudio de caso: Desarrollo impulsado por el comportamiento, parte 1" . Consultado el 7 de mayo de 2026 .
  66. Fowler, Martin (1 de mayo de 2006). "Integración continua" . Recuperado el 9 de enero de 2014 .
  67. Booch, Grady (1991). Diseño orientado a objetos: con aplicaciones . Benjamin Cummings . pág. 209. ISBN  9780805300918Consultado el 18 de agosto de 2014 .
  68. Beck, K. (1999). "Aceptando el cambio con programación extrema". Computer . 32 (10): 70– 77. doi : 10.1109/2.796139 . ISSN 0018-9162 . 
  69. Krajewski, LJ y LP Ritzman. 2005. Gestión de operaciones: procesos y cadenas de valor. Pearson Education, Upper Saddle River.
  70. 1 2 Aydin, MN; Harmsen, F.; Slooten; Stagwee, RA (2004). "Un método ágil de desarrollo de sistemas de información en uso". Turk J Elec Engin . 12 (2): 127– 138.
  71. Morris, David (2015). La paradoja de la transformación ágil: por qué esforzarse demasiado por ser ágil impide que las organizaciones se conviertan en verdaderamente ágiles . NZ: University of Auckland. doi : 10.13140/RG.2.2.32698.08640 .
  72. Abrahamsson, P., Warsta, J., Siponen, MT, & Ronkainen, J. (2003). Nuevas direcciones en métodos ágiles: un análisis comparativo. Actas de ICSE'03 , 244-254
  73. Mirakhorli, M.; Rad, AK; Shams, F.; Pazoki, M.; Mirakhorli, A. (2008). "Técnica RDP: una práctica para personalizar xp". Actas del taller internacional de 2008 sobre el análisis de las prácticas ágiles o el enfrentamiento en el corral ágil (APOS '08) . ACM. págs. 23–32 . doi : 10.1145/1370143.1370149 . ISBN  978-1-60558-021-0. S2CID 9528636 . 
  74. Schwaber, K (2006) Scrum es difícil y disruptivo.
  75. Vodde, B (2016) La historia de LeSS. Discurso de clausura. Scrum Australia, Melbourne. Abril de 2016.
  76. Lagstedt, A., y Dahlberg, T. (2018). Entendiendo la rareza de la selección de métodos ISD: racionalidad limitada y estupidez funcional. Actas de PACIS 2018. 154. https://aisel.aisnet.org/pacis2018/154 .
  77. Park, JS, McMahon, PE y Myburgh, B. (2016). Scrum impulsado por Essence. ACM SIGSOFT Software Engineering Notes, 41(1), pp. 1–8.
  78. Beck, K. (1999). Extreme Programming Explained: Embrace Change . Boston, MA: Addison-Wesley. ISBN 978-0-321-27865-4.
  79. Evans, Ian. "Entrega ágil en British Telecom" . Consultado el 21 de febrero de 2011 .
  80. 1 2 W. Scott Ambler (2006) Supersize Me en Dr. Dobb's Journal, 15 de febrero de 2006.
  81. Schaaf, RJ (2007). Agility XL Systems and Software Technology Conference 2007. Archivado el 13 de marzo de 2016 en Wayback Machine , Tampa, FL.
  82. "Acortando distancias" . Sdmagazine.com . Consultado el 1 de febrero de 2011 .
  83. Fowler, Martin. "Uso de un proceso de software ágil con desarrollo offshore" . Martinfowler.com . Consultado el 6 de junio de 2010 .
  84. Taller de Procesos Ágiles II: Gestión de Múltiples Proyectos Ágiles Simultáneos. Washington: OOPSLA 2002
  85. Cawley, Oisín; Wang, Xiaofeng; Richardson, Ita (2010). «Metodologías de desarrollo de software Lean/Agile en entornos regulados: estado del arte». En Abrahamsson, Pekka; Oza, Nilay (eds.). Software y sistemas empresariales Lean . Lecture Notes in Business Information Processing. Vol. 65. pp. 31–36 . doi : 10.1007/978-3-642-16416-3_4 . hdl : 10344/683 . ISBN   978-3-642-16415-6.
  86. McHugh, Martin; McCaffery, Fergal; Coady, Garret (4 de noviembre de 2014). «Una implementación ágil en una organización de software para dispositivos médicos». En Mitasiunas, Antanas; Rout, Terry; O'Connor, Rory V.; et al. (eds.). Mejora de procesos de software y determinación de capacidades . Communications in Computer and Information Science. Vol. 477. pp. 190–201 . doi : 10.1007/978-3-319-13036-1_17 . ISBN    978-3-319-13035-4.
  87. Wang, Yang; Ramadani, Jasmin; Wagner, Stefan (29 de noviembre de 2017). «Un estudio exploratorio sobre la aplicación de un proceso de desarrollo Scrum para sistemas críticos de seguridad». Product -Focused Software Process Improvement . Lecture Notes in Computer Science. Vol. 10611. pp. 324–340 . arXiv : 1703.05375 . Bibcode : 2017arXiv170305375W . doi : 10.1007/978-3-319-69926-4_23 . ISBN   9783319699257. S2CID 4585465 . 
  88. «SafeScrum - SINTEF» . Sintef.no . Consultado el 26 de marzo de 2019 .
  89. ^ Thor Myklebust, Tor Stålhane, Geir Kjetil Hanssen, Tormod Wien y Børge Haugset: Scrum, documentación y el estándar de software IEC 61508-3:2010, http://www.sintef.no/globalassets/ec-61508-documentation-and-safescrum-psam12.pdf Archivado el 27 de junio de 2022 en Wayback Machine .
  90. Fitzgerald, B.; Stol, K.-J.; O'Sullivan, R.; O'Brien, D. (mayo de 2013). «Ampliación de métodos ágiles a entornos regulados: un estudio de caso industrial». 35.ª Conferencia Internacional de Ingeniería de Software (ICSE) de 2013. págs. 863–872 . doi : 10.1109/ICSE.2013.6606635 . hdl : 10344/3055 . ISBN  978-1-4673-3076-3. S2CID 192403 . 
  91. Beck, Kent (2000). Programación extrema explicada . Addison-Wesley. págs. 1–24 . ISBN  978-0201616415.
  92. Datta, Subhajit (2006). «Índice de medición de agilidad: una métrica para la encrucijada de las metodologías de desarrollo de software». ACM-SE 44 Actas de la 44.ª conferencia regional anual del sureste . p. 271. doi : 10.1145/1185448.1185509 . ISBN  1595933158.
  93. Peter Lappo; Henry CT Andrew. "Evaluación de la agilidad" (PDF) . Archivado del original (PDF) el 15 de septiembre de 2009. Recuperado el 6 de junio de 2010 .
  94. Joe Little (2 de diciembre de 2007). "Prueba Nokia, una prueba específica de Scrum" . Agileconsortium.blogspot.com . Consultado el 6 de junio de 2010 .
  95. Mark Seuffert; Mayberg, Suecia. "Prueba Karlskrona, una prueba genérica de adopción ágil" . Mayberg.se . Consultado el 5 de abril de 2014 .
  96. "¿Qué tan ágil eres? (Haz esta prueba de 42 puntos)" . allaboutagile.com/. Archivado del original el 5 de mayo de 2014. Consultado el 3 de abril de 2014 .
  97. "Resultados de la encuesta sobre metodologías ágiles" (PDF) . Shine Technologies. Enero de 2003. Archivado del original (PDF) el 21 de agosto de 2010. Recuperado el 3 de junio de 2010. El 95% afirmó que no hubo ningún efecto o una reducción de costos ... El 93% afirmó que la productividad fue mejor o significativamente mejor ... El 88% afirmó que la calidad fue mejor o significativamente mejor ... El 83% afirmó que la satisfacción empresarial fue mejor o significativamente mejor.   
  98. "Informe sobre el estado de Agile de 2013: ¿Por qué Agile?" . stateofagile.com. 27 de enero de 2014. Archivado del original el 28 de agosto de 2014. Consultado el 13 de agosto de 2014 .
  99. Status Quo Agile Archivado el 18 de marzo de 2018 en Wayback Machine , Segundo estudio sobre el éxito y las formas de uso de los métodos ágiles. Recuperado el 1 de julio de 2015.
  100. Ambler, Scott (3 de agosto de 2006). "Encuesta dice: Agile funciona en la práctica" . Dr. Dobb's . Recuperado el 3 de junio de 2010. Solo el 6% indicó que su productividad se redujo ... El 34% de los encuestados no informó cambios en la productividad y el 60% informó un aumento de la productividad ... El 66% [respondió] que la calidad es mayor ... El 58% de las organizaciones informa una mayor satisfacción, mientras que solo el 3% informa una menor satisfacción.   
  101. "Respondiendo a la pregunta "¿Dónde está la prueba de que los métodos ágiles funcionan?" . Agilemodeling.com. 19 de enero de 2007. Consultado el 2 de abril de 2010 .
  102. Shore y Warden 2008 , pág. 47 
  103. Beck, Kent (2000). Programación extrema explicada . Addison-Wesley. págs. 48–49 . ISBN  978-0201616415.
  104. Rouse, Margaret. "Definición de Sprint (desarrollo de software)" . searchsoftwarequality.techtarget.com . Consultado el 2 de octubre de 2015 .
  105. Goldstein, Ilan (11 de octubre de 2011). "Problemas con los sprints: cuando los sprints se convierten en arrastres" . www.axisagile.com.au . Consultado el 8 de junio de 2014 .
  106. "Distribución de roles y responsabilidades del proyecto" . agile-only.com . Consultado el 15 de junio de 2014 .
  107. Bourne, Lynda. "¿Qué hace realmente un patrocinador de proyecto?" . blogs.pmi.org . Archivado del original el 7 de junio de 2014 . Consultado el 8 de junio de 2014 .
  108. "9.º Informe sobre el estado de Agile" . Encuesta sobre la etapa de Agile . VersionOne. Archivado del original el 12 de enero de 2015. Consultado el 8 de junio de 2014 .
  109. Sims, Chris; Johnson, Hillary Louise (15 de febrero de 2011). Los elementos de Scrum ( edición Kindle). Dymaxicon. pág. 73.  
  110. Rothman, Johanna Rothman (25 de agosto de 2011). "Cuando no tienes ningún Product Owner" . www.jrothman.com . Consultado el 8 de junio de 2014 .
  111. Fox, Alyssa (8 de abril de 2014). "Trabajando en múltiples equipos ágiles" . techwhirl.com/ . Consultado el 14 de junio de 2014 .
  112. "Reunión diaria de Scrum" . www.mountaingoatsoftware.com . Consultado el 14 de junio de 2014 .
  113. 1 2 May, Robert. "Planificación eficaz de sprints" . www.agileexecutives.org . Archivado del original el 28 de junio de 2014. Consultado el 14 de junio de 2014 .
  114. Berczuk, Steve. "Misión posible: ScrumMaster y colaborador técnico" . www.agileconnection.com . Consultado el 14 de junio de 2014 .
  115. "Cómo implementar Agile Scrum" . Consultado el 4 de enero de 2022 .
  116. Namta, Rajneesh. "Reflexiones sobre la automatización de pruebas en Agile" . www.infoq.com . Archivado del original el 18 de agosto de 2014. Consultado el 14 de junio de 2014 .
  117. 1 2 Band, Zvi (22 de marzo de 2014). "Deuda técnica + Octubre Rojo" . Zvi Band . Archivado del original el 14 de julio de 2014. Recuperado el 8 de junio de 2014 .
  118. Shore, James. "El arte del desarrollo ágil: refactorización" . www.jamesshore.com . Consultado el 14 de junio de 2014 .
  119. "Paso 4: Planificación del sprint (tareas)" . www.allaboutagile.com . Archivado del original el 29 de junio de 2014. Consultado el 14 de junio de 2014 .
  120. George, Claire (3 de marzo de 2014). "Por qué es importante limitar el trabajo en curso" . leankit.com . Consultado el 14 de junio de 2014 .
  121. "Reunión de planificación del sprint" . www.mountaingoatsoftware.com . Consultado el 14 de junio de 2014 .
  122. McMillan, Keith (13 de mayo de 2010). "Tiempo, recursos, alcance... y calidad" . www.adeptechllc.com . Consultado el 15 de junio de 2014 .
  123. "Estudio actual sobre las limitaciones de Agile" . Procedia Computer Science . 78 : 291–297 . Enero de 2016. doi : 10.1016/j.procs.2016.02.056 .
  124. 1 2 "La convocatoria de adquisiciones para la metodología Agile, ¿qué significa?" . 1 de noviembre de 2019.
  125. Moran, Alan (2015). Managing Agile: Strategy, Implementation, Organisation and People . Springer. ISBN 978-3-319-16262-1.
  126. "¿Qué ciclo de vida es el mejor para tu proyecto?" . PMHut . 22 de octubre de 2008 . Consultado el 23 de octubre de 2009 .
  127. "Gestión ágil de proyectos" . VersionOne . Archivado del original el 9 de junio de 2015. Consultado el 1 de junio de 2015 .
  128. "¿Qué es la gestión ágil?" . Project Laneways. Archivado del original el 2 de junio de 2015. Consultado el 1 de junio de 2015 .
  129. Benson, Jim; De Maria Barry, Tonianne (2011). Personal Kanban: mapeando el trabajo, navegando la vida (1.ª ed.). Seattle, WA: Modus Cooperandi Press. p. 38. ISBN   978-1-4538-0226-7.
  130. USAID. "Política operativa del ciclo del programa ADS, capítulo 201". Archivado el 23 de octubre de 2019 en Wayback Machine . Consultado el 19 de abril de 2017.
  131. Project Management Institute , Guía de los Fundamentos para la Dirección de Proyectos (Guía PMBOK), Sexta edición
  132. ^ Richet, Jean-Loup (2013). Innovación ágil . Casos e Investigación Aplicada, n°31. ESSEC-ISIS. ISBN 978-2-36456-091-8
  133. Smith, Preston G (2007). Desarrollo de productos flexibles . Jossey-Bass. pág. 25. ISBN  978-0-7879-9584-3.
  134. Newton Lee (2014). "Cómo entrar en las listas de Billboard: la producción musical como desarrollo ágil de software", Digital Da Vinci: Computers in MusicSpringer Science+Business Media. ISBN 978-1-4939-0535-5.
  135. Moran, Alan (2015). Managing Agile: Strategy, Implementation, Organisation and People . Springer Verlag. ISBN 978-3-319-16262-1.
  136. Barrett, M.; Goodell, J. (2022), "Herramientas de desarrollo Lean-Agile", Learning Engineering Toolkit , Routledge, pp. 269–278 , doi : 10.4324/9781003276579-16 , ISBN  978-1-003-27657-9
  137. "Programación ágil: para tu familia" .
  138. Larman, Craig; Bas Vodde (13 de agosto de 2009). Los diez principales obstáculos organizativos para la adopción de metodologías ágiles a gran escala . InformIT.
  139. "Introducción a la gestión de proyectos híbridos" . Rincón de la colaboración . 20 de julio de 2016. Archivado del original el 7 de enero de 2020. Consultado el 16 de enero de 2018 .
  140. Barlow, Jordan B.; Justin Scott Giboney; Mark Jeffery Keith; David W. Wilson; Ryan M. Schuetzler; Paul Benjamin Lowry; Anthony Vance (2011). "Descripción general y orientación sobre el desarrollo ágil en grandes organizaciones" . Communications of the Association for Information Systems . 29 (1): 25– 44. doi : 10.17705/1CAIS.02902 .
  141. Kupersmith, Kupe (4 de julio de 2011). "Agile es una moda pasajera" .
  142. 1 2 Kruchten, Philippe (20 de junio de 2011). "¿La crisis adolescente de Agile?" . InfoQ.
  143. Richard Utz, "Contra el lenguaje administrativo", Chronicle of Higher Education , 24 de junio de 2020.
  144. Cohn, Mike (2015). Succeeding With Agile . Pearson. pp. 5–10 . ISBN  978-0-321-57936-2.

Lecturas adicionales

  • Abrahamsson, P.; Salo, O.; Ronkainen, J.; Warsta, J. (2002). "Métodos de desarrollo de software ágil: revisión y análisis" . VTT Publications. 478. Archivado del original el 7 de septiembre de 2011. Recuperado el 20 de febrero de 2012 .
  • Ashmore, Sondra; Runyan, Kristin (2014). Introducción a los métodos ágiles . Addison-Wesley. ISBN 978-0321929563.
  • Barlow, Jordan B.; Justin Scott Giboney; Mark Jeffery Keith; David W. Wilson; Ryan M. Schuetzler; Paul Benjamin Lowry; Anthony Vance (2011). "Descripción general y orientación sobre el desarrollo ágil en grandes organizaciones" . Communications of the Association for Information Systems . 29 (1): 25– 44. doi : 10.17705/1CAIS.02902 .
  • Cohen, D.; Lindvall, M.; Costa, P. (2004). «Introducción a los métodos ágiles» . En Zelkowitz, Marvin (ed.). Avances en ingeniería de software . Avances en informática. Vol.  62. Academic Press. pp. 1–66 . ISBN  978-0-08-047190-7.
  • Collier, Ken W. (2011). Analítica ágil: Un enfoque basado en el valor para la inteligencia empresarial y el almacenamiento de datos . Pearson Education. ISBN 9780321669544¿ Qué es un equipo autoorganizado?
  • Dingsøyr, Torgeir; Dybå, Tore; Moe, Nils Brede (2010). Desarrollo ágil de software: investigación actual y direcciones futuras . Saltador. ISBN 978-3-642-12575-1.
  • Fowler, Martin (2001). "¿Ha muerto el diseño?" . En Succi, Giancarlo; Marchesi, Michele (eds.). Programación extrema examinada . Addison-Wesley. pp. 3–18 . ISBN  978-0-201-71040-3.
  • Larman, Craig; Basili, Victor R. (junio de 2003). "Desarrollo iterativo e incremental: una breve historia". IEEE Computer . 36 (3): 47– 56. Bibcode : 2003Compr..36f..47L . doi : 10.1109/MC.2003.1204375 . S2CID 9240477 . 
  • Casagni, Michelle; Benito, Robert; Mayfield, Kathleen M.; Northern, Carlton (8 de septiembre de 2013). "Manual para la implementación de metodologías ágiles en la adquisición de tecnología de la información del Departamento de Defensa" . The Mitre Corporation . MITRE.
  • Moran, Alan (2015). Managing Agile: Strategy, Implementation, Organisation and People . Springer. ISBN 978-3-319-16262-1.
  • Riehle, Dirk. "Una comparación de los sistemas de valores del desarrollo de software adaptativo y la programación extrema: cómo las metodologías pueden aprender unas de otras" .En Succi & Marchesi 2001
  • Rubin, Kenneth (2013). Essential Scrum. Una guía práctica para el proceso ágil más popular . Addison-Wesley. ISBN 978-0-13-704329-3.
  • Shore, James; Warden, Shane (2008). El arte del desarrollo ágil . O'Reilly Media. ISBN 978-0-596-52767-9.
  • Project Management Institute (2021). Guía de los fundamentos de la gestión de proyectos (Guía PMBOK) . Project Management Institute (7.ª  ed.). Newtown Square, PA. ISBN 978-1-62825-664-2.{{cite book}}: CS1 mantenimiento: falta el editor de ubicación ( enlace )
  • Stephens, M.; Rosenberg, D. (2003). Extreme Programming Refactored: The Case Against XP . Apress. ISBN 978-1-59059-096-6.
  • Swamidass, PM, ed. (2000), "Organización de proyectos de gran envergadura" , Enciclopedia de Gestión de Producción y Manufactura , Boston, MA: Springer US, pp. 261–262 , doi : 10.1007/1-4020-0612-8_400 , ISBN  978-1-4020-0612-8Consultado el 22 de junio de 2022.
  • Takeuchi, Hirotaka; Nonaka, Ikujiro (1 de enero de 1986). "El nuevo juego del desarrollo de nuevos productos" . Harvard Business Review . ISSN 0017-8012 . Consultado el 25 de julio de 2021 . 
  • «Introducción a la gestión de proyectos híbridos» . Rincón de la colaboración . 20 de julio de 2016. Archivado del original el 7 de enero de 2020. Consultado el 16 de enero de 2018 .