¿Qué es el desarrollo ágil y cómo está cambiando la industria del software?

¿Que son las metodologías ágiles?

Las metodologías ágiles son una serie de técnicas para la gestión de proyectos que nacieron, unos dicen que como contraposición otros dicen que, como complemento, me inclino más a la segunda opinión, como complemento a los métodos clásicos de gestión. Aunque surgieron en el ámbito del desarrollo de software, también han sido tomadas para la gestión de otro tipo de proyectos.

“El enfoque ágil tiene la ventaja de reducir el costo del cambio a través de todo el proceso de desarrollo”

Toda aquella metodología que este considerada como metodología ágil, debe cumplir con el manifiesto ágil que no es más que una serie de principios que se agrupan en 4 valores:

  1. Los individuos y su interacción, por encima de los procesos y las herramientas.
  2. El software que funciona, frente a la documentación exhaustiva.
  3. La colaboración con el cliente, por encima de la negociación contractual.
  4. La respuesta al cambio, por encima del seguimiento de un plan.

El desarrollo ágil de software es un paradigma de las metodologías de desarrollo fundado en procesos ágiles. Los procesos ágiles de desarrollo de software, conocidos anteriormente como metodologías livianas, intentan evitar el engorroso y burocrático proceso de las metodologías tradicionales enfocándose en la gente y los resultados.

El proceso ágil utiliza un enfoque basado en el valor para construir software, colaborando con el cliente e incorporando los cambios continuamente.

Es un marco de trabajo conceptual de la ingeniería de software que promueve iteraciones en el desarrollo a lo largo de todo el ciclo de vida del proyecto. Existen muchos métodos de desarrollo ágil; la mayoría minimiza riesgos desarrollando software en cortos lapsos de tiempo.

Las principales metodologías ágiles

Uno de los principales focos de aplicación de las metodologías ágiles son los proyectos tecnológicos. En cada proyecto podemos adoptar una, o varias metodologías en función de las características del propio proyecto y del equipo.

Entre las metodologías ágiles más usadas se encuentran:

  • SCRUM. Es un marco de trabajo que nos proporciona una serie de herramientas y roles para, de una forma iterativa, poder ver el progreso y los resultados de un proyecto.
  • KANBAN. Se basa en una idea muy simple. Ésta es que el trabajo en curso (Work In Progress, WIP) debería limitarse y sólo deberíamos empezar con algo nuevo cuando un bloque de trabajo anterior haya sido entregado o ha pasado a otra función posterior de la cadena.
  • XP: Es una metodología ágil centrada en potenciar las relaciones interpersonales como clave para el éxito en desarrollo de software, promoviendo el trabajo en equipo, preocupándose por el aprendizaje de los desarrolladores y propiciando un buen clima de trabajo.

La metodología ágil puede aplicarse a un proceso de software siempre y cuando: El proceso permita al equipo adaptar tareas y hacerlas más eficientes. La planificación debe comprender la fluidez del enfoque ágil. El cliente reciba software funcional de forma incremental lo más rápido posible para el tipo de producto y ambiente de operación.

Supuestos

La metodología ágil toma en cuenta los siguientes supuestos:

  1. Es difícil predecir con anticipación cuáles requerimientos persistirán y cuáles cambiarán.
  2. Para muchos tipos de software el diseño y la construcción se entrelazan.
  3. Las fases de análisis, diseño, construcción y pruebas no son tan predecibles como se quiere.

Adaptabilidad

Un proceso es adaptable cuando es posible cambiar rápidamente el proyecto y las condiciones técnicas además de que un proceso ágil debe ser adaptable, lo cual ayuda a lidiar con la imprevisibilidad. La adaptabilidad debe ser escalable. Está dirigida por la retroalimentación del cliente. Se deben liberar incrementos de software en cortos periodos de tiempo para tratar de ir a la par con la imprevisibilidad.

Principios para alcanzar agilidad

Primeramente, se debe satisfacer al cliente mediante la entrega temprana y continua de software útil para después aceptar los cambios de requerimientos, incluso en fases avanzadas del desarrollo, posteriormente se debe entregar software funcional periódicamente. Los ejecutivos y los desarrolladores deben trabajar juntos diariamente y proporcionar a los individuos el ambiente y los medios para que se sientan motivados además de que las conversaciones cara a cara son el medio más efectivo para transmitir información. El software funcional es la principal medida de progreso, los patrocinadores, desarrolladores y usuarios deberán mantener un ritmo constante indefinidamente además de que la atención continua a la excelencia técnica y al buen diseño incrementa la agilidad. Manteniéndolo simple siempre. Las mejores arquitecturas, diseños y requerimientos provienen de equipos auto-organizados, regularmente el equipo reflexiona sobre cómo ser más eficaz, con lo que afina y ajusta su comportamiento.

Conclusión

Las metodologías tradicionales de la ingeniería de software no toman en cuenta las debilidades de los programadores que desarrolla software. Las metodologías tradicionales imponen disciplina a gente con debilidades y flaquezas. Las metodologías con mucha disciplina son frágiles. Las metodologías más tolerantes son más fáciles de adoptar, pero pueden ser menos productivas. Es necesario hacer trade-off.

Descargar este artículo en PDF

Lo sentimos, esta opción solo está disponible para los socios. Más información de nuestro grupo de socios.


Ernesto Mota on EmailErnesto Mota on FacebookErnesto Mota on LinkedinErnesto Mota on Twitter
Ernesto Mota
Nací en el d.f., sigo siendo defeño, hoy radico en la hermosa ciudad de Cuernavaca, Morelos, soy Ing. en Sistemas computacionales, con un posgrado en Tecnologías de información, Tecnólogo es mi categoría laboral, y mi linea de investigación es la realidad aumentada aplicada a nuevos entornos de aprendizaje.

Déjanos un comentario:

  • sadalzuud

    Esa conclusión no convence, o sea el artículo habla de las metodologías ágiles y los principios y supuestos, y concluye hablando mas de las metodologías pesadas. Además pienso que se necesita incluso un poco mas de disciplina en ágiles así que éstas no existen porque nos parezcan exigentes las metodologías pesadas. Hay muchas mas cosas que se pueden concluir para resaltar el valor de estas metodologías, como que: Es preferible la flexibilidad para adaptarse al cambio. Que es necesario aprender a ser ágil. Que las metodologías ágiles aportan una visión mas efectiva en el desarrollo de software por sus principios. Cosas así …

    • Ernesto Moce

      Muy respetable tu comentario sadalzuud, desde mi punto de vista para resaltar las características de algo, forzosamente debe ser comparado con algo similar, es por eso que en este artículo se habla de metodologías ágiles y pesadas y en la parte donde mencionas que se necesita un poco más de disciplina en ágiles que en pesadas, considero que eso dependerá del área donde sea aplicada, efectivamente , las metodologías ágiles nacieron siendo aplicadas en el desarrollo de software y no pueden o difícilmente pueden ser aplicadas en la gestión de proyectos de investigación, pero considero que es un muy buen tema de café, saldrían muy buenas opiniones.

    • Spiderwpc

      Totalmente de acuerdo.