Metodologías ágiles: programar en conjunto con el cliente

Metodologías ágiles: programar en conjunto con el cliente


desarrollo web aprender a programar programar desde cero programa curso Hackademy Php Formación profesional Hackademy Carrera en programación Coding Bootcamp formación online desarrollador full-stack jquery lenguaje de programación front-end

Desde los años 90, la tecnología de la información ha adquirido un papel cada vez más importante en el mundo, empezando por la revolución de la informática personal, la euforia causada por el nacimiento de Internet y la posterior burbuja económica y, en los últimos años, la consolidación de un mundo en el que Internet y la tecnología se encuentran omnipresentes en nuestras vidas. 

Con los años de la burbuja de las puntocom, nacieron las metodologías ágiles.

Incluso antes de la elección del lenguaje y la construcción de la estructura del código podemos identificar diferentes enfoques para la realización de un proyecto, desde la clásica metodología en cascada hasta el más reciente desarrollo ágil, basado en un desarrollo iterativo del software en estrecha colaboración con el cliente.

Con la publicación del "Manifiesto para el desarrollo ágil de software" en 2001 se publicaron oficialmente los 4 valores y los 12 principios comunes a todas las metodologías que desde entonces se definen como ágiles.

El desarrollo ágil se ha convertido, a los pocos, en el enfoque más utilizado para la ejecución de proyectos, gracias a su facilidad de ejecución y a su capacidad de adaptación a los problemas y cambios, lo que supone un ahorro de tiempo y costes. Todas estas son ventajas que se suman a la comodidad por parte del cliente de estar constantemente actualizado sobre los avances de forma tangible gracias a las progresivas versiones del software.

Evolución del desarrollo ágil.

Estos numerosos lanzamientos son el resultado de un mecanismo progresivo por el que a través de un par de semanas se van agregando nuevas funciones al programa de acuerdo al orden de importancia. Cada equipo se encarga de la planificación, el análisis, el diseño y el desarrollo de las mejoras vistas previas, de las que se informa al cliente mediante la publicación de un software estable.

La verdadera diferencia entre el desarrollo ágil y otros métodos de desarrollo yace en la importancia que se le da al componente humano y a la confianza depositada en cada equipo. De hecho, cada equipo es independiente y no existe uno cuya única tarea sea organizar y gestionar el proyecto.

La adición progresiva de funciones le permite disponer siempre de una versión previa estable en caso de que se produzcan cambios o problemas no previstos al principio. Además, disponer de versiones sucesivas permite empezar a realizar pruebas desde la primera versión para poner de manifiesto cualquier posible problema crítico. Además, la palabra clave "simplicidad" va muy bien con la búsqueda de velocidad de diseño.

Principios de la metodología ágil.

La metodología ágil, aunque difiere en muchas escuelas, se basa en 4 valores y 12 principios fundacionales expresados en su manifiesto.

En primer lugar, se reafirma la importancia del componente humano, no sólo como puro principio filosófico, sino también como medio para obtener mejores resultados. De hecho, buscan una comparación en persona y no a través del correo electrónico, además de la ayuda mutua en la vida cotidiana (si el COVID lo permite).

La planificación es un elemento importante en el desarrollo de software, pero esta metodología se creó para dar la posibilidad de realizar cambios de forma ágil y rápida.

Evidentemente, es importante respetar el contrato y los acuerdos alcanzados, pero aún más importante es la comparación con el cliente, facilitada por las numerosas versiones del programa que se lanzan progresivamente. Por tanto, la colaboración directa permite alcanzar rápidamente el resultado deseado al poder adaptar el programa a las necesidades del cliente. Todo esto evita tener que reajustar un programa terminado por matices no apreciados por el cliente, una operación que a menudo puede dar lugar a muchos problemas.

El objetivo es la creación de un software que funcione, con una documentación exhaustiva (así la misma tenga una importancia relativa), puesto que el objetivo principal sigue siendo terminar con un producto terminado y utilizable.

Ciclo de vida del desarrollo ágil

  • Fase 0: este es el momento en el que se organiza el proyecto, desde la elección del equipo hasta la obtención de fondos, pasando por la participación de las partes interesadas. Se identifican las características básicas del proyecto y se crea un modelo inicial de la arquitectura.

 

  • Desarrollo iterativo: esta es la fase central del proceso durante la cual se crean versiones cada vez más avanzadas del software, tratando de cumplir todos los requisitos. La estrecha colaboración con las partes interesadas y otros miembros del equipo desempeña un papel importante en esta fase. Esta estrecha relación permite a los interesados tener un control total sobre el proyecto y la lista de propiedades que se implantaran. 

El desarrollo se realiza primero a través de un análisis de requisitos mediante técnicas de model storming y luego a través de modelos de arquitectura hasta el desarrollo real del código. Desarrollo que parte de la realización de un test que evalúa los requisitos elegidos; una vez realizado esto se pasa a la escritura de un código, el núcleo del proyecto, cuya tarea es pasar el test descrito anteriormente. Esta técnica de desarrollo se llama TDD (Test Driven Development) y es una práctica de eXtreme Programming (XP) que fomenta la programación de forma estructurada.

A continuación, el proceso procede de forma iterativa según los pasos de escribir la prueba y desarrollar el código para superarla.

Por cada prueba superada, se guarda un código estable y funcional para mostrarlo a las partes interesadas.

  • Lanzamiento del software: una vez finalizado el ciclo de iteración y tras obtener un programa con todas las características establecidas, se pasa a la fase de Demo para recibir inmediatamente el feedback de las partes interesadas. Evidentemente, siempre habrá detalles que corregir y esto llevará a rehacer el proyecto. Una vez que se está seguro de la funcionalidad del software en todos sus aspectos se pasa a una fase de formación en la que se enseña a los futuros usuarios a explotar plenamente el programa.

¡El tiempo es oro!

La metodología ágil nace con un propósito muy preciso: obtener un producto válido optimizando tiempo y costes, además de satisfacer las expectativas y peticiones de las partes interesadas. 

De hecho, podemos hablar de cuatro variables universales para la realización de un proyecto: coste, tiempo, calidad y alcance. En la metodología ágil solo se fijan tres de las cuatro propiedades descritas anteriormente, de modo que se puedan realizar cambios de ser necesario. 

Por ejemplo, para un mismo coste y alcance, se puede optar por aumentar la calidad incrementando el tiempo, o se puede aumentar el alcance incrementando el coste, y así sucesivamente. Sin embargo, la piedra angular de las metodologías ágiles sigue siendo la creación de un proyecto de máxima calidad, ya que la calidad siempre compensa la inversión.

A estas alturas no podemos hablar de esta metodología como una novedad, ya que llevamos dos décadas hablando de ella, pero sobre todo en España notamos que no todo el mundo adopta estos nuevos principios con facilidad. Sin embargo, en las universidades está empezando a surgir una esperanza de uso, puesto que estamos más que seguros de que, incluso en España, el futuro girará en su dirección.

Curso de programación Aulab Hackademy

Conviértete en Desarrollador weben 6 meses

Descubre el bootcamp de programación Hackademy

Programa Completo

© 2022 Aulab. Todos los derechos reservados • P.IVA: IT07647440721 • Política de privacidad