El Método de Desarrollo Agile: El método de desarrollo Agile de software es una manera de abordar y, en última instancia, de tener éxito, pero siempre, como se mencionó previamente, desenvolviéndose en un ambiente difícil de predecir.
La “Agile Alliance” denomina este concepto como: “La capacidad de crear y responder al cambio para lograr el éxito en un entorno incierto y turbulento”.
Y su implementación es sumamente importante cuando hablamos específicamente de la construcción de un software, ya que este proceso es inherentemente impredecible debido a que se realiza a medida y no en base a una habilidad básica.
Por lo tanto, los métodos que permiten una retroalimentación rápida son vitales.
De esta forma, el método de desarrollo Agile de software es una manera de abordar y, en última instancia, de tener éxito, pero siempre, como se mencionó previamente, desenvolviéndose en un ambiente difícil de predecir.
Los autores del Manifiesto Agile eligieron particularmente este término (“Agile”) como aquel que envuelve el significado de toda su idea, debido a que esa palabra representaba la adaptabilidad y la respuesta al cambio (indispensables dentro de su enfoque), ya que ésta metodología apunta a entender lo que está sucediendo en el ambiente en el que te encuentras, identificando qué incertidumbre se debe enfrentar, y descubriendo cómo adaptarte a este proceso a medida que se avanza.
El desarrollo Agil de software es mucho más que sólo marcos de trabajo como Scrum, Extreme Programming o Feature-Driven Development (FDD).
También, ésta metodología, implica más que simples prácticas como lo son la programación de pares, el desarrollo basado en pruebas, stand-ups, sesiones de planificación y sprints.
El desarrollo Agil de software es un término que se utiliza para agrupar un conjunto de prácticas basadas en las valores y principios expresado en el Manifiesto para el método de Desarrollo Agile de Software.
En general, es oportuno seguir estos valores y principios de desarrollo Agil cuando trabajas en la construcción de un software, ya que éstos ayudan a desenvolverse dentro del contexto particular en el que uno se puede encontrar.
La comunidad del desarrollo Agil de software se centra principalmente en la colaboración y autoorganización del equipo.
De todas formas, esto no significa la ausencia de Gerentes que indiquen cómo llevar a cabo las tareas, sino que lo miembros del equipo cuentan con la capacidad de hacer frente a las situaciones que se les presenten y de descubrir cómo abordarlas de la mejor forma posible.
También significa que éstos equipos son multifuncionales, por lo tanto, no se requiere que tengan roles específicos establecidos, lo que facilita el hecho de contar con todo tipo de habilidades dentro de él.
De todas maneras, no hay que olvidar que los Gerentes tienen un rol que cumplir: ellos son justamente quienes se aseguran que los miembros del equipo tengan u obtengan las habilidades adecuadas.
Además, proporcionan el entorno que permite que el equipo tenga éxito.
Es común también que la mayoría de los gerentes no interfieran en el trabajo del equipo para dejarlo descubrir por sí mismos cómo van a entregar productos, pero, sin embargo, no dejan de intervenir en aquellas situaciones en que los equipos, a pesar de sus intentos, no logran resolver determinados problemas.
Por otro lado, los equipos y las organizaciones, que comienzan a aplicar la metodología de desarrollo Agil de software, suelen enfocarse en las prácticas que ayudan con la colaboración y la organización del trabajo, lo cual es correcto.
Sin embargo, otro conjunto clave de prácticas que no se siguen con tanta frecuencia (pero sí se lo debería hacer) son aquellas técnicas específicas que tratan directamente con el desarrollo de software de forma tal que ayuda al equipo a lidiar con la incertidumbre.
Esas prácticas técnicas son esenciales y no deben pasarse por alto durante todo el proceso.
Agile es una mentalidad formada por los valores y los 12 principios del desarrollo Agil contenidos en el Manifiesto Ágil. Estos valores y principios proporcionan orientación sobre cómo crear, responder al cambio, y lidiar con la incertidumbre.
En cuanto a ésta última, una manera efectiva de enfrentarla es poniendo en práctica aquello que se cree que podría funcionar.
Una vez hecho esto, resulta beneficioso tomar los comentarios realizados sobre ello para que luego se puedan hacer los ajustes correspondientes, pero sin dejar de lado que en todo este proceso se deben tener en cuenta los valores y principios del desarrollo Agile.
Se podría decir que la primera oración del Manifiesto Ágil encapsula toda la siguiente idea: “Estamos descubriendo mejores formas de desarrollar software, haciéndolo y ayudando a otros a hacerlo”.
Alistair Cockburn – informático estadounidense, conocido como uno de los iniciadores del movimiento ágil en el desarrollo de software – sugirió que una metodología es el conjunto de convenciones que un equipo acepta seguir.
Eso significa que cada equipo tendrá su propia metodología, las cuales serán diferentes entre sí.
De esta forma, las Metodologías Agile son las convenciones que un equipo elige seguir de forma tal que tomen los valores y principios del desarrollo Agile.
Y aclarados estos puntos, es probable preguntarse qué pasa con Scrum y XP, las que son metodologías Ágiles.
Ciertamente, éstos nacieron de la metodología de un solo equipo, pero se convirtieron en marcos de trabajo cuando se generalizaron para ser utilizados por otros, ayudando así a informar dónde comienza un equipo con su metodología (pero no deberían convertirse en su propia metodología).
El equipo siempre necesitará adaptar el uso de un marco de trabajo para que se ajuste adecuadamente en su contexto.
A medida que el Desarrollo Agile de Software se hizo más popular, las personas que estaban involucradas en actividades de desarrollo de software, pero que nunca lo habían hecho personalmente, buscaron alguna forma de descubrir cómo se aplicaban estas ideas Agile en su línea de trabajo.
El Manifiesto Ágil y los 12 Principios del desarrollo Agil, fueron escritos por un grupo de desarrolladores de software para abordar los problemas que enfrentan quienes llevan a cabo este tipo de procesos.
Al pensar a Agile como un actividad, ésta se puede aplicar a otras actividades, convirtiéndose de esta manera en un adjetivo que describe la forma en la que se realiza alguna actividad, y no crea una nueva metodología.
Cuando se quiere comprender la gestión ágil de proyectos, debemos preguntarnos: “¿Cómo podríamos realizar la gestión de proyectos de una manera que nos permita crear y responder a los cambios y enfrentar la incertidumbre?”
Agile Alliance and Project Management Institute (PMI) exploró esta inquietud a través de un esfuerzo en conjunto para crear la Guía de práctica ágil (disponible para miembros de Agile Alliance).
Cuando, en cambio, lo que se desea es comprender el análisis empresarial ágil, debemos preguntarnos: “¿Cómo podríamos realizar el análisis empresarial de una manera que nos permita crear y responder a los cambios y enfrentar la incertidumbre?”.
Agile Alliance y el Instituto Internacional de Análisis Empresarial (IIBA) exploraron esta pregunta a través de un esfuerzo conjunto para crear la Extensión Ágil para el Cuerpo de Conocimientos de Análisis de Negocios (disponible para los Miembros de la Alianza Ágil).
A fines de la década de 1990, diferentes metodologías de desarrollo de software comenzaron a aumentar en popularidad, cada una con su propio conjunto de ideas. Sin embargo, los diferentes enfoques tenían superposiciones comunes que enfatizaban:
El Manifiesto Ágil dio como resultado un conjunto acordado de 4 valores y 12 principios entre el grupo, los cuales forman la base del Desarrollo de Software Ágil y que todavía son de uso común en la actualidad.