Modelos
Las
metodologías ágiles son métodos de desarrollo de software en los que las
necesidades y soluciones evolucionan a través de una colaboración estrecha
entre equipos multidisciplinarios. Se caracterizan por enfatizar la
comunicación frente a la documentación, por el desarrollo evolutivo y por su flexibilidad.
Características
-
Basadas en heurísticas provenientes de prácticas de producción de código
-
Especialmente preparados para cambios durante el proyecto - Impuestas
internamente (por el equipo) - Proceso menos controlado, con pocos principios
-
No existe contrato tradicional o al menos es bastante flexible
-
El cliente es parte del equipo de desarrollo
-
Grupos pequeños (<10 integrantes) y trabajando en el mismo sitio
-
Pocos artefactos
-
Pocos roles
- Menos énfasis en la arquitectura del software
Descripción
Un proceso es ágil cuando el desarrollo de software es:
- Incremental. Entregas pequeñas de software, con ciclos rápidos.
- Cooperativo. Cliente y desarrolladores trabajan juntos constantemente con una cercana comunicación.
- Sencillo. El método en sí mismo es simple, fácil de aprender y modificar. Está bien documentado y es adaptable. Permite realizar cambios de último momento.
- Poca documentación.
- Simplicidad.
- Análisis como una actividad constante.
- Diseño evolutivo.
- Integraciones
- Testeos diarios
Ventajas
- El cliente, si quiere colaborar, puede observar cómo va avanzando el proyecto, y por supuesto, opinar sobre su evolución gracias a las numerosas reuniones que realiza el equipo con el cliente. Esto le da tranquilidad.
- Su ciclo de vida es simple y fácil de entender: captura de requisitos, diseño de la solución, configuración / desarrollo, test, implementación y mantenimiento.
- Su aproximación es “disciplinada”: Basada en una definición exhaustiva del trabajo, una revisión sistemática en hitos y énfasis en el control y la documentación del proyecto.
- Importancia de la simplicidad al eliminar trabajo innecesario
- Atención continua a la excelencia técnica y al buen diseño.
- Mejora continua de los procesos y el equipo de desarrollo.
- Evita malentendidos de requerimientos entre el cliente y el equipo.
- Cada componente del producto final ha sido probado y satisface los requerimientos.
Desventajas
- Problemas derivados de la comunicación oral. No hace falta decir que algo que está escrito “no se puede borrar”, en cambio, algo dicho es muy fácil crear ambigüedad.
- Fuerte dependencia de las personas.
- Falta de reusabilidad derivada de la falta de documentación
- Restricciones en cuanto a tamaño de los proyectos
- Problemas derivados del fracaso de los proyectos ágiles. Si un proyecto ágil fracasa no hay documentación o hay muy poca; lo mismo ocurre con el diseño. La comprensión del sistema se queda en las mentes de los desarrolladores.
- Cuanto más tarde se descubren este tipo de faltas de alineamiento entre necesidades y soluciones aportadas, más complejo es reconducirlas y más tiempo se tarda en hacerlo.
- Fuerte dependencia de las personas. Como se evita en lo posible la documentación y los diseños convencionales, los proyectos ágiles dependen críticamente de las personas.
- En consecuencia, en este tipo de proyectos la planificación puede ser engañosa y se corre el riesgo de que aparezca lo que se conoce como “deuda técnica”.
- Cambios. Los modelos de datos son “pesados” y no pueden cambiarse así como así solo porque el cliente que ira incorporar más funciones al sistema.
- Problemas derivados del fracaso de los proyectos ágiles. Si un proyecto ágil fracasa no hay documentación o hay muy poca; lo mismo ocurre con el diseño. La comprensión del sistema se queda en las mentes de los desarrolladores.
Como funciona
El término general desarrollo ágil de software se refiere a métodos y prácticas de desarrollo de software que brindan soluciones a través de la colaboración entre equipos auto-organizados y multifuncionales.
Los métodos ágiles de desarrollo de software promueven:
- Gestión disciplinada del proyecto.
- Filosofías de liderazgo que fomentan el trabajo en equipo, la auto-organización y la responsabilidad.
- Buenas prácticas de ingeniería que permiten una entrega rápida de software de alta calidad
- Un enfoque empresarial que alinea las necesidades de sus clientes con los objetivos de su empresa.
- Cualquier proceso de desarrollo que alinee su metodología con el Manifiesto Ágil es un desarrollo ágil.
El Manifiesto Ágil
En febrero de 2001, diecisiete profesionales del software con mentalidad independiente se reunieron para acuñar El Manifiesto Ágil. Esta proclamación del desarrollo ágil de software destaca los valores y principios fundamentales que los programadores deben cumplir al crear software ágil.
4 Valores del Manifiesto Ágil
- En lugar de centrarse principalmente en procesos y herramientas, los programadores deberían prestar más atención a los individuos y las interacciones.
- Un software en funcionamiento se valora más que una documentación completa del proceso de desarrollo.
- La negociación del contrato es menos vital que la colaboración del cliente
- En lugar de seguir estrictamente un plan, los programadores deben responder a cualquier cambio que se produzca
12 Principios del
Manifiesto Ágil
1. Satisfacer al cliente mediante la
entrega temprana y continua de un software valioso.
2. Acoger con beneplácito los requisitos
cambiantes, incluso en la etapa tardía en el desarrollo.
3. Entregar el trabajo del software con
la mayor frecuencia posible y en un plazo de tiempo más corto.
4. Los empresarios y desarrolladores
deben trabajar juntos a lo largo de todo el proyecto.
5. Construir proyectos en torno a
personas motivadas.
6. El método más eficiente y efectivo
para transmitir información al equipo de desarrollo y dentro del mismo es la
conversación cara a cara.
7. La medida principal del progreso es un
software en funcionamiento.
8. Los procesos ágiles promueven el
desarrollo sostenible.
9. La atención continua a la excelencia
técnica y al buen diseño aumenta la agilidad.
10. La simplicidad, el arte de maximizar
la cantidad de trabajo no realizado, es esencial.
11. Las mejores arquitecturas, requisitos
y diseños surgen de equipos auto-organizados.
12. A intervalos regulares, el equipo reflexiona
sobre cómo ser más eficaz, luego sintoniza y ajusta su comportamiento en
consecuencia.
Metodologías Ágiles
Cuando se trata de adherirse a estos valores y principios del manifiesto, los métodos Scrum y XP son los dos métodos comúnmente más utilizados.
Scrum
Este es un marco de gestión de proyectos que pone más énfasis en el progreso iterativo, el trabajo en equipo y la responsabilidad.
El marco de desarrollo de software XP tiene como objetivo mejorar la calidad del
software y la capacidad de respuesta a los requisitos cambiantes de los
clientes. Trabaja para producir software de alta calidad y aumentar la calidad
de vida de los miembros del equipo.
La metodología Ágil trabaja dando protagonismo a la entrega de un software en funcionamiento de forma iterativa e incremental, en lugar de crear requisitos rígidos a través de una gran planificación inicial. A cada fase del proyecto de desarrollo de software se le asigna un período de tiempo (sprint) en el que la tarea debe completarse. La tarea se considera completa una vez transcurrido el período asignado.
No hay comentarios.:
Publicar un comentario