¿Qué es la metodología ágil? [cerrado]

27

¿Alguien puede explicar sobre la metodología ágil en oraciones simples?

Chankey Pathak
fuente
3
según mi maestro CompSci en la universidad, "método de cascada, solo que más rápido"
Malfist
11
@Malfist esperemos que él / ella se quede en la academia, donde el daño se limita al cerebro ;-)
Steven A. Lowe
@ Steven A. Lowe, lo triste es que el tercer capítulo de nuestro libro de texto es "Desarrollo de software ágil" y todavía no tiene idea de lo que es.
Malfist
2
@Malfist Me encontré en un gran campus universitario en una ciudad importante a mediados de la década de 1990, y entré para hablar con el decano de CS. Él estaba de buen humor y hablador, así que hablamos un poco sobre el estado del arte y cómo se reflejó en el plan de estudios de la universidad. Me dijo que "la programación orientada a objetos es solo una moda, no la enseñamos aquí". Muy triste.
Steven A. Lowe
1
La metodología ágil es como el idioma chino: no lo entiendes hasta que lo aprendes;)
Job

Respuestas:

22

Ágil es un montón de cosas y prácticas, pero creo que su núcleo es solo el desarrollo iterativo.

Iterativo: piense en un montón de cascadas muy pequeñas. Es decir, el método de cascada (requisitos-> especificación-> código-> prueba), pero en lugar de hacerlo en el transcurso de un año más o menos, lo hace en el transcurso de unas pocas semanas para obtener una parte manejable del conjunto proyecto. Al final de 'iteración / sprint / incremento', tiene un conjunto pequeño pero completo y probado de funcionalidad adicional.

Esto le permite cambiar rápidamente el curso del proyecto si resulta que lo que está haciendo no es lo que el cliente quiere, o si el negocio necesita un cambio, o lo que sea. De ahí el término "ágil".

Fishtoaster
fuente
Esta realmente no es la respuesta correcta. Ágil no es una metodología, es una filosofía.
RibaldEddie
32

Creo que nada lo pone mejor que el Manifiesto Ágil mismo:

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

Individuos e interacciones sobre procesos y herramientas
Software de trabajo sobre documentación integral
Colaboración del cliente sobre negociación de contratos
Responder al cambio sobre seguir un plan

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

de http://agilemanifesto.org/

Andy Lowry
fuente
1
El único problema es que, a menos que haya visto un mal proceso, el manifiesto simplemente no se hace justicia. Se necesita comparación con lo malo para saber realmente cuánto dice el manifiesto. Aún así, +1 porque demasiadas personas están confundiendo ágil y Scrum en estos días. E incluso entonces, están confundiendo SCRUM con Scrum + XP.
MIA
2
Sin embargo, Agile puede contradecirse a veces. Básicamente "valoramos la flexibilidad pero devaluamos las herramientas y procesos necesarios para obtener esa flexibilidad". Las herramientas buenas y flexibles son absolutamente esenciales para responder al cambio. por ejemplo, migraciones de Ruby-on-Rails frente al sistema ORM a medio horno casero de alguien que podría requerir una semana para realizar un cambio simple en el modelo de datos.
user8865
2
Solo me pregunto cómo "Individuos e interacciones" podrían reemplazar "Procesos y herramientas" o cómo podría "El software de trabajo podría estar en contra de la documentación completa". Todas estas son cosas diferentes ... No importa, no me he enamorado de Agile y supongo que no lo haré.
NoChance
13

Para mí, la idea más importante es esta:

Los cambios en los requisitos sucederán porque nos vemos obligados a diseñar un software en el punto más bajo de conocimiento sobre lo que se necesita (el inicio del proyecto) y los requisitos solo serán más claros en el transcurso del proyecto.

Los enfoques tradicionales (en cascada) intentan mitigar este cambio al encerrar a todos en un contrato al comienzo del proyecto al hacer que firmen las especificaciones completas. Esto puede funcionar como un CYA, pero no hace feliz a nadie de entregar algo que no satisface las necesidades de los usuarios, especialmente si sus objeciones se cumplen con "¡Bueno, usted lo firmó!"

Los métodos ágiles están diseñados para aceptar los cambios inevitables en lugar de proteger al equipo de desarrollo de ellos. Lo hace de varias maneras, la principal de ellas es el desarrollo iterativo y la participación continua de las partes interesadas en el proceso. En mi experiencia, deja a todos los involucrados más felices al final, aunque puede ser más incómodo para algunos tipos de administración que son planificadores expertos.

JohnFx
fuente
6

En una oración esto se ve así:

El desarrollo ágil de software es un grupo de metodologías de desarrollo de software basadas en el desarrollo iterativo e incremental , donde los requisitos y las soluciones evolucionan a través de la colaboración entre equipos autoorganizados y multifuncionales .

Esto viene de la definición de Wikipedia, y me gusta mucho. Destaqué los principios básicos.


fuente
3

Me gustaría agregar también lo que ÁGIL NO es. Hay muchas tiendas que afirman ser ágiles, pero de una manera que solo significa que no están interesados ​​en planificar sus proyectos y esperan que las cosas se hagan en un período de tiempo irrazonablemente corto.

Ágil! = Sin plan de proyecto. Es difícil manejar a personas que implícitamente piensan que esa declaración es falsa porque tienden a ser de tipo gerencial y no siempre es fácil de contradecir.

q303
fuente
Desde que hice la pregunta hasta la fecha, he formado parte de algunas de esas compañías y estoy de acuerdo con usted.
Chankey Pathak
Convenido. Mucha gente ágil es solo una forma barata de hacer las cosas.
SmallChess
2

Andy ya se ha vinculado al Manifiesto Ágil, que creo que casi lo cubre.

Creo que también es útil ver de dónde vino el Manifiesto Ágil. Hubo una serie de metodologías que tenían algunos elementos comunes y muchas motivaciones similares: Programación extrema (XP), Scrum, DSDM, Desarrollo de software adaptativo, Cristal, Desarrollo basado en funciones, Programación pragmática (lista de Alistair Cockburn ). Las personas que proponían esas metodologías decidieron crear un término de marketing para cubrir las cosas que tenían en común para que la fuerza de lo que decían aumentara.

Curiosamente (según lo que alguien me dijo) había una serie de nombres en la lista restringida que podrían haber sido elegidos en lugar de "Ágil", uno de los cuales era "Adaptativo". ¡Personalmente pienso que como una sola palabra que resume mejor lo que realmente es ágil mejor que "ágil"!

FinnNk
fuente
2

Emplear una metodología ágil se reduce a enfatizar la entrega de productos de calidad sobre otros aspectos del desarrollo de productos y darse cuenta de que los comentarios de la comunidad de usuarios son una parte vital de la creación de productos de calidad.

Compare eso con un enfoque de desarrollo tradicional / en cascada que enfatiza el diseño inicial, la documentación y la definición de la interfaz al tiempo que enfatiza la implementación y la transición del producto desde el desarrollo hasta el lanzamiento.

En mi opinión, existe una calidad intrínseca que un equipo puede construir en un producto, veo que esto toma la forma de verificar que un producto funciona como el equipo de desarrollo previsto y puede acomodar razonablemente las mejoras previsibles. También hay factores de calidad basados ​​completamente en la percepción que miden qué tan bien un producto satisface las necesidades de sus usuarios.

Los enfoques ágiles tienden a ofrecer productos de forma iterativa , incorporando comentarios de los usuarios y comentarios de los desarrolladores en cada iteración, y promueven la entrega de cada incremento de funcionalidad cuando alcanza la viabilidad mínima como una función forzada para obtener comentarios frecuentes de los usuarios y contrarrestar la tendencia de las actividades de desarrollo a continuar. largos períodos de tiempo sin comentarios de sus usuarios. En mi opinión, otros aspectos de un enfoque ágil tienden a apoyar estos principios clave.

  • Hacer hincapié en la colaboración frecuente con el cliente genera comentarios de los usuarios, mientras se mantiene flexible a los cambios en los requisitos, lo que permite que el desarrollo del producto integre regularmente esos comentarios
  • La integración frecuente en configuraciones y entornos de implementación relevantes va de la mano con la identificación continua de qué configuraciones y entornos siguen siendo relevantes para garantizar que el producto siga siendo valioso y relevante para los usuarios que brindan comentarios
  • La autoorganización y la promoción de equipos interfuncionales se refieren a la creación de responsabilidad personal dentro del equipo y al empoderamiento del equipo para determinar la mejor manera de eliminar obstáculos de una manera eficiente sin ser frenado por roles preasignados y jerarquía de gestión dentro del equipo
diáconos
fuente