Desarrollo Ágil de Software

En la categoria:

El Desarrollo Ágil de Software es un tipo particular de desarrollo de software caracterizado por el hecho de que se ejecuta de la manera menos burocrática, simple e iterativa posible. Las ventajas de este enfoque son un ahorro significativo de tiempo y costes en comparación con los métodos de programación convencionales.

Antecedentes

El desarrollo de ágil de software como término sólo ha existido desde principios de la década de 2000. Los primeros aspectos comparables de este método existían a principios de los años noventa. Con su libro “Extreme Programming” de 1999, el informático Kent Beck creó una especie de base teórica para futuros procesos ágiles. En 2001, el “Manifiesto Ágil” fue formulado por un grupo liderado por Kent Beck, que contiene los principios del desarrollo ágil de software:

“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 completa
Colaboración del cliente sobre la negociación del contrato
Responder al cambio en lugar de seguir un plan
Es decir, si bien hay valor en las posiciones de
a la derecha, valoramos más los artículos de la izquierda”.[1]

Una mirada a este manifiesto muestra que esta forma de desarrollo de software difiere radicalmente del estándar. El enfoque del desarrollo de software ágil está en la funcionalidad y el usuario. Los planes y contratos no son tan importantes como la cooperación y el cambio.

La demanda de desarrollo ágil de software comenzó a aumentar poco después de la publicación del manifiesto. En 2005, el 14% de las empresas de Europa y Norteamérica encuestadas por Forrester Research dijeron que ya estaban trabajando con métodos ágiles. 8 años después, un nuevo estudio de VersionOne encontró que más del 80% de las compañías encuestadas confiaban en el desarrollo de software ágil.

Componentes

El manifiesto ágil consta de 12 principios, precedidos por métodos:

  1. Clientes satisfechos a través de la entrega temprana y continua de software valioso.
  2. Los procesos ágiles y los cambios rápidos, incluso en las últimas fases de desarrollo, aprovechan el cambio para la ventaja competitiva del cliente.
  3. Entregue software de trabajo con frecuencia y en un plazo corto.
  4. Los empresarios y los desarrolladores trabajan juntos intensamente a lo largo de todo el proyecto.
  5. Crear un ambiente motivador para un trabajo exitoso.
  6. Tanto contacto cara a cara como sea posible.
  7. El software de trabajo es la principal medida de progreso.
  8. Desarrollo sostenible creado a través de procesos ágiles.
  9. Atención continua a la excelencia técnica y al buen diseño.
  10. La simplicidad es esencial.
  11. Los equipos se auto-organizan.
  12. A intervalos regulares, el equipo reflexiona sobre cómo ser más eficaz y se ajusta en consecuencia. [2]

Para cumplir con los principios, a menudo se utilizan métodos ágiles, que a su vez tienen como objetivo crear el menor esfuerzo administrativo y burocrático posible, lo que podría tener un impacto negativo en la productividad. Los métodos ágiles típicos son, por ejemplo

  • Desarrollo impulsado por pruebas.
  • Tarjetas de historia como parte de la historia del usuario.
  • Programación de pares.

Los procesos ágiles aceleran el desarrollo de software. Los métodos más populares incluyen:

  • Crystal.
  • Programación Extrema.
  • Scrum.

Ventajas y desventajas

Hay muchas ventajas del desarrollo ágil de software. Los procesos ágiles requieren menos tiempo y planificación hasta que los resultados puedan ser alcanzados, y por lo tanto se pueden ahorrar costes. Además, el software ágil puede ser ajustado rápidamente en caso de cualquier cambio. Estos cambios pueden ser cambios específicos del mercado, o demandas generales con respecto al software. Una lista detallada de todas las tareas que deben llevarse a cabo (retraso de Sprint) puede ayudar a alcanzar los objetivos. A pesar de las ventajas, un equipo ágil de desarrolladores todavía tiene que cumplir con los presupuestos o plazos que proporcionan el alcance del trabajo. Al mismo tiempo, el éxito de los proyectos no depende sólo del método, sino también del trabajo en equipo. Por lo tanto, el desarrollo ágil de software puede ser una alternativa sensata a los métodos convencionales de desarrollo de software. Sin embargo, el desarrollo ágil de software no puede, por supuesto, garantizar el éxito del software.

Referencias

[1] [2]