Compartir a través de


¿Qué es Agile?

Diagrama que muestra varios aspectos de la metodología Ágil interconectándose, como la colaboración, el desarrollo, el control de versiones automatizado y el despliegue.

Agile es un término que describe los enfoques para el desarrollo de software que enfatizan la entrega incremental, la colaboración en equipo, la planificación continua y el aprendizaje continuo. El término Agile se acuñó en 2001 en el Manifiesto agile. El manifiesto se estableció para establecer principios para guiar un mejor enfoque para el desarrollo de software. En su núcleo, el manifiesto declara cuatro declaraciones de valor que representan la base del movimiento Agile. Como se ha escrito, el manifiesto indica:

Hemos llegado a valorar:

  • Individuos e interacciones sobre procesos y herramientas.
  • Software funcional sobre documentación exhaustiva.
  • Colaboración con el cliente en lugar de negociación de contratos.
  • Responder a los cambios en el seguimiento de un plan.

El manifiesto no implica que los elementos del lado derecho de estas declaraciones no sean importantes ni necesarios. En su lugar, los elementos de la izquierda son simplemente más valorados.

Procedimientos y métodos ágiles

Es importante entender que Agile no es una cosa. No practicas Agile. En su lugar, Agile es una mentalidad que impulsa un enfoque para el desarrollo de software. Dado que no hay un único enfoque que funcione para todas las situaciones, el término Agile ha llegado a representar varios métodos y prácticas que se alinean con las declaraciones de valor del manifiesto.

Los métodos ágiles, que a menudo se denominan marcos, son enfoques completos de las fases del ciclo de vida de DevOps: planificación, desarrollo, entrega y operaciones. Prescriben un método para llevar a cabo el trabajo, con instrucciones y principios claros.

Scrum es el marco ágil más común y el que la mayoría de las personas comienzan. Por otro lado, las prácticas ágiles son técnicas que se aplican durante las fases del ciclo de vida de desarrollo de software.

  • Planning Poker es una práctica de estimación colaborativa diseñada para animar a los miembros del equipo a compartir su comprensión de lo que significa 'terminado'. Muchas personas encuentran el proceso divertido, y ha demostrado ayudar a fomentar el trabajo en equipo y mejores estimaciones.
  • La integración continua (CI) es una práctica de ingeniería ágil común que implica integrar los cambios de código en la rama principal con frecuencia. Una compilación automatizada comprueba los cambios. Como resultado, hay una reducción de la deuda de integración y una rama principal que se puede enviar continuamente.

Estas prácticas, como todas las prácticas ágiles, llevan la etiqueta Agile , ya que son coherentes con los principios del manifiesto agile.

¿Qué no es Agile?

A medida que Agile ha ganado popularidad, muchos estereotipos y malinterpretaciones han proyectado una sombra negativa sobre su eficacia. Es fácil decir "Sí, estamos haciendo Agile", sin ninguna responsabilidad. Teniendo en mente este punto, considere algunas cosas que Agile no es.

  • Agile no es programación a lo vaquero. Agile no debe confundirse con un enfoque de "lo averiguaremos a medida que vamos" para el desarrollo de software. Esa idea no podía estar más lejos de la verdad. Agile requiere una definición de terminado y un valor explícito que se entrega a los clientes en cada sprint. Aunque Agile valora la autonomía de las personas y los equipos, destaca la autonomía alineada para asegurarse de que la mayor autonomía produce un mayor valor.
  • Agile no es sin rigor ni planeación. Por el contrario, las metodologías y prácticas ágiles suelen enfatizar la disciplina en la planificación. La clave es planear continuamente en todo el proyecto, no solo planear por adelantado. La planeación continua garantiza que el equipo pueda aprender del trabajo que ejecutan. A través de este enfoque, maximizan la rentabilidad de la inversión (ROI) de planificación.

"Los planes son inútiles, pero la planificación es todo." — Dwight D. Eisenhower

  • Agile no es una excusa para la falta de una hoja de ruta. Esta idea errónea probablemente ha hecho el mayor daño al movimiento ágil en general. Las organizaciones y los equipos que siguen un enfoque ágil saben absolutamente dónde van y los resultados que quieren lograr. Reconocer el cambio como parte del proceso es diferente de dinamizar en una nueva dirección cada semana, sprint o mes.
  • Agile no es desarrollo sin especificaciones. Es necesario en cualquier proyecto mantener al equipo alineado sobre por qué y cómo se produce el trabajo. Un enfoque ágil para las especificaciones incluye asegurarse de que las especificaciones tienen un tamaño adecuado y que reflejan adecuadamente cómo funcionan las secuencias de equipo y entregan el trabajo.
  • Agile no es incapaz de acomodar el trabajo no planeado y otras interrupciones. Es importante completar sprints según la programación. Pero el hecho de que surja un problema que desvíe el desarrollo, no significa que un sprint vaya a fallar. Los equipos pueden planear interrupciones mediante la designación de recursos con antelación para problemas e imprevistos. A continuación, pueden solucionar esos problemas, pero seguir el seguimiento del desarrollo.
  • Agile no es inapropiado para organizaciones grandes. Una queja común es que la colaboración, un componente clave de metodologías ágiles, es difícil en equipos grandes. Otra gripe es que los enfoques escalables para Agile introducen la estructura y los métodos que ponen en peligro la flexibilidad. A pesar de estos conceptos erróneos, es posible escalar correctamente los principios ágiles. Para obtener información sobre cómo superar estas dificultades, consulte Escalado de Ágil a equipos grandes.
  • Agile no es ineficaz. Para adaptarse a las necesidades cambiantes de los clientes, los desarrolladores invierten tiempo cada iteración para demostrar un producto de trabajo y recopilar comentarios. Es cierto que estos esfuerzos reducen el tiempo que dedican al desarrollo. Sin embargo, la incorporación de solicitudes de clientes al principio ahorra mucho tiempo más tarde. Cuando las características permanecen alineadas con la visión del cliente, los desarrolladores evitan importantes revisiones en la línea.
  • Agile no es una buena opción para las aplicaciones actuales, que a menudo se centran en el streaming de datos. Estos proyectos suelen implicar más cargas de trabajo de modelado de datos y extracción y carga de transformación (ETL) que las interfaces de usuario. Este hecho hace que sea difícil demostrar software utilizable en una programación coherente y ajustada. Sin embargo, al ajustar los objetivos, los desarrolladores todavía pueden usar un enfoque ágil. En lugar de trabajar para realizar tareas cada iteración, los desarrolladores pueden centrarse en la ejecución de experimentos de datos. En lugar de presentar un producto de trabajo cada pocas semanas, pueden tener como objetivo comprender mejor los datos.

¿Por qué Agile?

¿Por qué alguien consideraría un enfoque ágil? Es evidente que las reglas de compromiso en torno a la creación de software han cambiado fundamentalmente en los últimos 10-15 años. Muchas de las actividades tienen un aspecto similar, pero el paisaje y los entornos en los que los aplicamos son notablemente diferentes.

  • Compare cómo es comprar software hoy en día en comparación con principios de los años 2000. ¿Con qué frecuencia conduce la gente a la tienda para comprar software empresarial?
  • Tenga en cuenta cómo se recopilan los comentarios de los clientes sobre los productos. ¿Cómo ha comprendido un equipo lo que la gente pensó sobre su software antes de las redes sociales?
  • Considere la frecuencia con la que un equipo desea actualizar y mejorar el software que entregan. Las actualizaciones anuales ya no son factibles contra la competencia moderna.

Diego Lo Guidice de Forrester dice lo mejor en su blog, Transform Application Delivery (Octubre de 2020).

"Todo ha cambiado drásticamente. La sostenibilidad, además de verde y limpia, significa que lo que creamos hoy tiene que ser fácil y rápidamente cambiado mañana. Los planes estratégicos son a corto plazo, y la planificación y el cambio son continuos". — Diego Lo Guidice, Forrester

Las reglas han cambiado y las organizaciones de todo el mundo ahora adaptan su enfoque al desarrollo de software en consecuencia. Los métodos y prácticas ágiles no prometen resolver todos los problemas. Pero prometen establecer una cultura y un entorno en el que surgen soluciones a través de la colaboración, la planificación y el aprendizaje continuos, y un deseo de enviar software de alta calidad con más frecuencia.

Pasos siguientes

Decidir tomar la ruta ágil al desarrollo de software puede introducir algunas oportunidades interesantes para mejorar el proceso de DevOps. Un conjunto clave de consideraciones se centra en cómo el desarrollo ágil compara y contrasta con el enfoque actual de una organización.