Desarrollo Ágil de Software
El desarrollo ágil de software es una familia de métodos iterativos e incrementales que priorizan el software funcional, la colaboración con el cliente y la respuesta rápida al cambio, por encima de la planificación y documentación exhaustivas previas.
Definition
El desarrollo ágil de software es un enfoque en el que los requisitos y las soluciones evolucionan a través de iteraciones cortas y de duración fija de equipos multifuncionales que entregan incrementos funcionales e incorporan continuamente la retroalimentación de los interesados.
Scope
Este tema abarca los valores y principios del Manifiesto Ágil; marcos concretos como Scrum, Programación Extrema (XP) y Kanban; prácticas que incluyen iteraciones cortas, retroalimentación continua, desarrollo guiado por pruebas, programación en pares, refactorización y lanzamientos frecuentes; y los roles, ceremonias y artefactos que estructuran los equipos ágiles.
Core questions
- ¿Qué valores y principios distinguen los métodos ágiles del desarrollo basado en planes?
- ¿Cómo estructuran los marcos como Scrum y XP las iteraciones, los roles y la retroalimentación?
- ¿Qué prácticas de ingeniería hacen posible la entrega frecuente y fiable?
- ¿Cuándo y qué tan bien escalan los métodos ágiles a organizaciones grandes o distribuidas?
Key theories
- Valores del Manifiesto Ágil
- Cuatro declaraciones de valores priorizan a los individuos y las interacciones, el software funcional, la colaboración con el cliente y la respuesta al cambio, con doce principios de apoyo que enfatizan la entrega temprana y continua y la bienvenida a los requisitos cambiantes.
- Marco Scrum
- Scrum organiza el trabajo en sprints de duración fija con roles definidos (propietario del producto, scrum master, desarrolladores), artefactos (backlogs de producto y sprint, incremento) y eventos (planificación del sprint, scrum diario, revisión, retrospectiva) para entregar valor de forma incremental.
- Prácticas de Programación Extrema
- XP combina iteraciones cortas con prácticas de ingeniería disciplinadas como el desarrollo guiado por pruebas, la programación en pares, la integración continua, la propiedad colectiva y la refactorización para mantener bajo el costo del cambio.
Clinical relevance
Los métodos ágiles son ahora el enfoque dominante en el software comercial, mejorando la capacidad de respuesta a los mercados cambiantes y permitiendo la entrega frecuente de valor; su efectividad depende de la disciplina de ingeniería, el empoderamiento del equipo y una cultura de retroalimentación en lugar de solo la ceremonia.
Evidence & guidelines
La Guía de Scrum proporciona una definición ampliamente adoptada del marco Scrum, y el Manifiesto Ágil sigue siendo la declaración fundamental de los valores ágiles; los marcos de escalado como SAFe y LeSS extienden las prácticas ágiles a grandes organizaciones.
History
Métodos ligeros como Scrum y XP surgieron en la década de 1990 como reacciones a procesos pesados y basados en la documentación. En 2001, diecisiete profesionales publicaron el Manifiesto Ágil, unificando estos métodos bajo valores compartidos; posteriormente, ágil se generalizó y generó marcos de escalado en la década de 2010.
Debates
- Escalar ágil a grandes organizaciones
- Se discute si los principios ágiles conservan sus beneficios cuando se escalan a través de marcos como SAFe; los críticos argumentan que el escalado pesado reintroduce la burocracia, mientras que los defensores ven la coordinación estructurada como necesaria para las grandes empresas.
Key figures
- Kent Beck
- Ken Schwaber
- Jeff Sutherland
- Martin Fowler
- Alistair Cockburn
Related topics
Seminal works
- beck2001
- beck2004
- schwaber2020
Frequently asked questions
- ¿Es ágil lo opuesto a la ingeniería disciplinada?
- No. El ágil eficaz depende en gran medida de la disciplina de ingeniería, como las pruebas automatizadas, la integración continua y la refactorización; el énfasis ágil está en adaptarse rápidamente al cambio, no en abandonar el rigor.
- ¿Cuál es la diferencia entre Scrum y ágil?
- Ágil es el amplio conjunto de valores y principios; Scrum es un marco específico que los implementa con roles, eventos y artefactos particulares. XP y Kanban son otros marcos ágiles con diferentes énfasis.