Del curso: Fundamentos esenciales de la programación
Principios Agile
El desarrollo ágil se basa en el desarrollo de software iterativo e incremental, donde el propio proyecto evoluciona con el tiempo partiendo de un producto mínimo viable o MVP. Cada iteración o repetición del ciclo de vida del lanzamiento de producto incluye la planificación, análisis de requisitos, diseño, codificación, pruebas y documentación. Es importante el concepto de finalizado, ya que la idea es dar al cliente un proyecto que funcione sin errores. Simplificando, en la metodología general, el cliente solicita un coche y le damos un coche en un tiempo relativamente largo. Con la metodología Agile, en la primera iteración creamos un patinete, luego una bicicleta, luego una moto y finalmente un coche. Es decir, en tramos cortos de tiempo, el cliente tiene un producto usable que va mejorando sustancialmente en cada iteración y que siempre es completamente funcional para él. Algo muy importante para las metodologías Agile es la comunicación cara a cara por encima de la comunicación por escrito, y se insta a mantener a los equipos juntos en oficinas abiertas. En el momento en el que se planteó un modelo ágil de desarrollo de software y se acuñó el término de metodologías ágiles, se creó un resumen de los principios de este modelo de desarrollo llamado Manifiesto ágil, que consta de cuatro principios. En primer lugar, los individuos e interacciones sobre los procesos y herramientas. Esto quiere decir que los procesos pasan a ser una guía que se adapta a las personas y no al revés. Lo importante son las personas y los roles entre ellas pueden cambiar. El segundo principio implica que el software funcionando debe primar sobre la documentación extensiva. Si bien la documentación no deja de ser útil, no puede sustituir a la interacción con los prototipos. Debe ser un soporte del software y permitir la transferencia de conocimiento, pero está por encima de todo un producto que funcione sin errores. Se presupone que los requisitos serán inestables y cambiantes, con lo que la comunicación constante y el feedback continuo están por encima de contratos y modelos predefinidos. El cliente es un miembro más del equipo. El cuarto principio implica que la respuesta ante el cambio está por encima de seguir un plan. Al ser una metodología de cambio constante, los principales valores son la adaptación, y la adaptación por encima de la gestión de proyectos basada en la planificación y el control. Además de esto, se definen otros 12 preceptos sobre las metodologías Agile. En primer lugar, la prioridad es satisfacer al cliente a través de la entrega temprana y continua de software de valor. Aceptamos que los requisitos cambien, incluso en etapas tardías del desarrollo. Los procesos ágiles aprovechan el cambio para proporcionar ventaja competitiva al cliente. Se entrega software funcional frecuentemente, entre dos semanas y dos meses, con preferencia al periodo de tiempo más corto posible. Los responsables del negocio y los desarrolladores trabajan juntos de forma cotidiana durante todo el proyecto. Los proyectos se desarrollan en torno a individuos motivados. Hay que darles el entorno y el apoyo que necesitan y confiarles la ejecución del trabajo. El método más eficiente y efectivo de comunicar información al equipo de desarrollo y entre sus miembros es la conversación cara a cara. El software funcionando es la medida principal de progreso de todo el proyecto. Los procesos ágiles promueven el desarrollo sostenido. Los promotores, desarrolladores y usuarios debemos mantener un ritmo constante de forma indefinida. La atención continua a la excelencia y al buen diseño mejora la agilidad. La simplicidad o el arte de maximizar la cantidad de trabajo no realizado es esencial. Las mejores arquitecturas, requisitos y diseños emergen de equipos autoorganizados y a intervalos regulares el equipo reflexiona cómo ser más efectivo para, a continuación, ajustar y perfeccionar su comportamiento en consecuencia.