Métodos Ágiles del Desarrollo de Software
¿Qué son las metodologías ágiles de desarrollo de software?
Son herramientas para el proceso de software utilizadas
donde el entorno del sistema es muy cambiante, y en donde se exige reducir
drásticamente los tiempos de desarrollo pero manteniendo una alta calidad. Por estar
especialmente orientadas para proyectos pequeños, las metodologías ágiles
constituyen una solución a medida para ese entorno, aportando una elevada simplificación
que a pesar de ello no renuncia a las prácticas esenciales para asegurar la
calidad del producto.
¿Cuáles son las características en las que se basan las metodologías ágiles?
- La prioridad es satisfacer al cliente mediante tempranas y continuas entregas de software que le aporte un valor.
- Dar la bienvenida a los cambios. Se capturan los cambios para que el cliente tenga una ventaja competitiva.
- Entregar frecuentemente software que funcione desde un par de semanas a un par de meses, con el menor intervalo de tiempo posible entre entregas.
- La gente del negocio y los desarrolladores deben trabajar juntos a lo largo del proyecto.
- Construir el proyecto en torno a individuos motivados. Darles el entorno y el apoyo que necesitan y confiar en ellos para conseguir finalizar el trabajo.
- El diálogo cara a cara es el método más eficiente y efectivo para comunicar información dentro de un equipo de desarrollo.
- El software que funciona es la medida principal de progreso.
- Los procesos ágiles promueven un desarrollo sostenible. Los promotores, desarrolladores y usuarios deberían ser capaces de mantener una paz constante.
- La atención continua a la calidad técnica y al buen diseño mejora la agilidad.
- La simplicidad es esencial.
- Las mejores arquitecturas, requisitos y diseños surgen de los equipos organizados por sí mismos.
- En intervalos regulares, el equipo reflexiona respecto a cómo llegar a ser más efectivo, y según esto ajusta su comportamiento.
¿Cuáles son las ventajas y desventajas del empleo de las metodologías ágiles respecto a las tradicionales?
¿Cuándo es recomendable utilizar metodologías ágiles en el desarrollo de software?
La metodologías agiles resultan ser más utilizadas por los
ingenieros dentro de proyectos pequeños, donde este enfoque no resulta ser el
más adecuado para muchos de los proyectos actuales donde el entorno del sistema
es muy cambiante, y en donde se exige reducir drásticamente los tiempos de
desarrollo pero manteniendo una alta calidad. Ante las dificultades para
utilizar metodologías tradicionales con estas restricciones de tiempo y
flexibilidad son mas adecuadas para el proceso el uso de las metodologías
agiles
¿Cuáles son algunos tipos de metodologías ágiles?
PROGRAMACIÓN EXTREMA
(EXTREME PROGRAMMING, 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. XP se basa en realimentación continua entre el
cliente y el equipo de desarrollo, comunicación fluida entre todos los
participantes, simplicidad en las soluciones implementadas y coraje para
enfrentar los cambios. XP se define como especialmente adecuada para proyectos
con requisitos imprecisos y muy cambiantes, y donde existe un alto riesgo
técnico.
SCRUM
Desarrollada por Ken Schwaber,
Jeff Sutherland y Mike Beedle. Define un marco para la gestión de proyectos,
que se ha utilizado con éxito durante los últimos 10 años. Está especialmente
indicada para proyectos con un rápido cambio de requisitos. Sus principales
características se pueden resumir en dos. El desarrollo de software se realiza mediante
iteraciones, denominadas sprints, con una duración de 30 días. El resultado de
cada sprint es un incremento ejecutable que se muestra al cliente. La segunda
característica importante son las reuniones a lo largo proyecto, entre ellas destaca
la reunión diaria de 15 minutos del equipo de desarrollo para coordinación e
integración.
Crystal
Methodologies
Se trata de un conjunto de metodologías para el desarrollo de software
caracterizadas por estar centradas en las personas que componen el equipo y la reducción
al máximo del número de artefactos producidos. Han sido desarrolladas por
Alistair Cockburn. El desarrollo de software se considera un juego cooperativo
de invención y comunicación, limitado por los recursos a utilizar. El equipo de
desarrollo es un factor clave, por lo que se deben invertir esfuerzos en
mejorar sus habilidades y destrezas, así como tener políticas de trabajo en
equipo definidas. Estas políticas dependerán del tamaño del equipo, estableciéndose
una clasificación por colores, por ejemplo Crystal Clear (3 a 8 miembros) y Crystal
Orange (25 a 50 miembros).
Dynamic Systems
Development Method (DSDM)
Define el marco para desarrollar un proceso de producción de software. Nace en
1994 con el objetivo de crear una metodología RAD unificada. Sus principales
características son: es un proceso iterativo e incremental y el equipo de
desarrollo y el usuario trabajan juntos. Propone cinco fases: estudio
viabilidad, estudio del negocio, modelado funcional, diseño y construcción, y
finalmente implementación.
Las tres últimas son iterativas, además de
existir realimentación a todas las fases.
Adaptive Software Development
(ASD)
Su
impulsor es Jim Highsmith. Sus principales características son: iterativo,
orientado a los componentes software más que a las tareas y tolerante a los
cambios. El ciclo de vida que propone tiene tres fases esenciales:
especulación, colaboración y aprendizaje. En la primera de ellas se inicia el
proyecto y se planifican las características del software; en la segunda
desarrollan las características y finalmente en la tercera se revisa su
calidad, y se entrega al cliente. La revisión de los componentes sirve para aprender
de los errores y volver a iniciar el ciclo de desarrollo.
Feature -Driven
Development (FDD)
Define un proceso iterativo que consta de 5 pasos. Las iteraciones son cortas
(hasta 2 semanas). Se centra en las fases de diseño e implementación del
sistema partiendo de una lista de características que debe reunir el software.
Sus impulsores son Jeff De Luca y Peter Coad.
Lean Development
(LD)
Definida
por Bob Charette’s a partir de su experiencia en proyectos con la industria
japonesa del automóvil en los años 80 y utilizada en numerosos proyectos de
telecomunicaciones en Europa. En LD, los cambios se consideran riesgos, pero si
se manejan adecuadamente se pueden convertir en oportunidades que mejoren la productividad
del cliente. Su principal característica es introducir un mecanismo para implementar
dichos cambios.
Equipo con Luis García Reyes
No hay comentarios:
Publicar un comentario