Metodologias agiles de desarrollo de software

Metodologias agiles de desarrollo de software

Desarrollo de software…

Metodología ágil significa una práctica que promueve la iteración continua del desarrollo y las pruebas a lo largo del ciclo de vida del desarrollo de software del proyecto. En el modelo ágil de pruebas de software, tanto las actividades de desarrollo como las de pruebas son concurrentes, a diferencia del modelo en cascada.

La metodología de desarrollo de software ágil es uno de los procesos más sencillos y eficaces para convertir la visión de una necesidad empresarial en soluciones de software. Agile es un término utilizado para describir los enfoques de desarrollo de software que emplean la planificación continua, el aprendizaje, la mejora, la colaboración en equipo, el desarrollo evolutivo y la entrega temprana. Fomenta las respuestas flexibles al cambio.

El modelo ágil y el de cascada son dos métodos diferentes para el proceso de desarrollo de software. Aunque son diferentes en su enfoque, ambos métodos son útiles a veces, dependiendo de los requisitos y del tipo de proyecto.

SCRUM es un método de desarrollo ágil que se centra específicamente en cómo gestionar las tareas dentro de un entorno de desarrollo basado en el equipo. Básicamente, Scrum se deriva de la actividad que tiene lugar durante un partido de rugby. Scrum cree en la potenciación del equipo de desarrollo y aboga por trabajar en equipos pequeños (digamos, de 7 a 9 miembros). Agile y Scrum constan de tres roles, cuyas responsabilidades se explican a continuación:

Marco ágil a escala

La metodología ágil es un enfoque del desarrollo de software centrado en las personas y en los resultados, que respeta nuestro mundo en rápida evolución. Se centra en la planificación adaptativa, la autoorganización y los plazos de entrega cortos. Es flexible, rápido y tiene como objetivo la mejora continua de la calidad, utilizando herramientas como Scrum y eXtreme Programming.

Funciona admitiendo primero que el antiguo método de desarrollo de software «en cascada» deja mucho que desear. El proceso de «planificar, diseñar, construir, probar, entregar» funciona bien para fabricar coches o edificios, pero no tan bien para crear sistemas de software. En un entorno empresarial en el que el hardware, la demanda y la competencia son variables que cambian rápidamente, el método ágil funciona caminando por la fina línea que separa el exceso de proceso del defecto.

Abandona el riesgo de gastar meses o años en un proceso que acaba fracasando por un pequeño error en una fase inicial. En su lugar, confía en que los empleados y los equipos trabajen directamente con los clientes para comprender los objetivos y ofrecer soluciones de forma rápida e incremental.

Desarrollo ágil de software…

Con todos los métodos ágiles que existen, ¿cómo puede alguien con experiencia en cascada o en el modelo V empezar a entender cada uno de ellos? ¿Qué métodos son verdaderamente ágiles y cuáles no? ¿Cuáles son las características que definen a cada método ágil, así como a los que no son tan ágiles? ¿Cuáles son los beneficios de utilizar cada método ágil y cuáles son algunos de los inconvenientes? Este artículo intenta responder a estas preguntas de forma concisa y sencilla y ofrecer una plataforma de lanzamiento para aquellos que quieran saber más.

El movimiento de desarrollo ágil comenzó en serio en la década de 1990 como un rechazo a lo establecido, con sus métodos de desarrollo más bien rígidos y aparentemente lentos, conocidos generalmente por nombres como el modelo en cascada o el modelo en V. Estos antiguos métodos se habían ganado la reputación de incumplir los plazos, sobrepasar el presupuesto o fracasar por completo, y Agile ofrecía un medio para que esto fuera cosa del pasado. En la mayoría de las revoluciones, las ideas no suelen ser nuevas y a menudo prometen más de lo que realmente pueden ofrecer, y así ha ocurrido con los métodos ágiles. Aunque los métodos ágiles presentan considerables ventajas, no son en absoluto una panacea para los males del pasado y solo deberían adoptarse tras una seria consideración y una cuidadosa planificación. Es fundamental comprender los puntos fuertes y débiles de cualquier método antes de proceder, y reducir los riesgos mediante la concienciación y la preparación para los posibles escollos. Este artículo pretende ofrecer un punto de partida rápido para entender los métodos más destacados, sus características individuales y sus ofertas únicas.

Programación extrema…

El Desarrollo Dirigido por Pruebas de Aceptación (ATDD) implica que miembros del equipo con diferentes perspectivas (cliente, desarrollo, pruebas) colaboren para escribir pruebas de aceptación antes de implementar la funcionalidad correspondiente. (ver más)

Una prueba de aceptación es una descripción formal del comportamiento de un producto de software, generalmente expresada como un ejemplo o un escenario de uso. Se han propuesto diversas notaciones y enfoques para estos ejemplos o escenarios. En muchos casos, el objetivo es que sea posible automatizar la ejecución de dichas pruebas mediante una herramienta de software, ya sea ad-hoc para el equipo de desarrollo o fuera de la plataforma. (ver más)

En el contexto del desarrollo de software, la construcción se refiere al proceso que convierte los archivos y otros activos bajo la responsabilidad de los desarrolladores en un producto de software en su forma final o consumible. La compilación está automatizada cuando estos pasos son repetibles, no requieren intervención humana directa y pueden realizarse en cualquier momento sin más información que la almacenada en el repositorio de control de código fuente.  (ver más)