Introducción a las Metodologías Ágiles III
Abril 26th, 2010 por
Roberto Andrés

Roberto Andrés
Además nos encontramos con un problema humano importante. Los diseñadores de los sistemas de software se han formado habitualmente por experiencia desde puestos de desarrolladores, en ocasiones compartiendo ambas tareas hasta que en su progresión a diseñadores puros deben dedicarse por completo a esa faceta, no teniendo tiempo para programar. Nosotros hemos cambiado con el tiempo, pero invariablemente las herramientas de desarrollo y los sistemas sobre los que se implantan estos han cambiado también e incluso más rápidamente que nosotros. Por un lado habremos perdido de vista todos estos cambios tecnológicos a la vez que también la proximidad e incluso en ocasiones el respeto por aquellos que programan.
No vamos a ahondar en estas cuestiones, pero todos sabemos que están presentes y que crean tensiones dentro del equipo.
Aun así, vamos a suponer que seremos capaces de manejar estas relaciones del equipo de trabajo (sin romperlo!), aún así tendremos el problema de los requerimientos cambiantes.
Lo más sorprendente de estos requerimientos cambiantes es que a día de hoy alguno de los miembros de casi cualquier equipo de desarrollo se sigue sorprendiendo de que surjan estos requerimientos cambiantes ya que todos sabemos que están ahí desde el comienzo de los tiempos. Hasta Dios diseño el mundo en 6 días y desde entonces no ha parado de detectarle errores y ponerle parches.
Poniéndonos de nuevo serios, estos cambios se producen por múltiples factores; una falta de comunicación o una comunicación incorrecta en el equipo de desarrollo, falta de entendimiento del problema o simplemente en la mayoría de los casos a un cambio de la lógica de negocio, cambio que se da más veces de lo prevista y a la que ninguna técnica de diseño puede anticiparse. Por otra parte, la existencia de cambios previsibles y nuestro deseo de anticiparnos a ellos, pueden devenir en mayores problemas que aquellos que queremos prevenir.
De esta manera se establecen los Métodos Ágiles como métodos orientados principalmente al equipo de trabajo y no al proceso en sí, de manera que intentamos generar orden en el caos a la vez que no perdemos nuestro precioso y escaso tiempo en generar documentación excesiva y en ocasiones inútil.
A partir del año 2001 los miembros más destacados de este movimiento se reunieron y adoptaron el nombre de Metodologías Ágiles, a la vez que formaron la Alianza Ágil para promover estos tipos de desarrollos, creando un manifiesto y unos principios como base para la estandarización de estos tipos de diseño, que recogen la esencia de la Metodología:
Manifiesto por el Desarrollo de Software Ágil
Estamos descubriendo mejores maneras de desarrollar software haciéndolo y ayudando a otros a hacerlo. A través de este trabajo hemos llegado a valorar:
- Individuos e interacciones sobre procesos y herramientas
- Software funcionando sobre documentación exhaustiva
- Colaboración del cliente sobre negociación de contrato
- Responder al cambio sobre seguir un plan
Esto es, mientras en los artículos de la derecha hay valor, valoramos más a los de la izquierda.
Los doce principios:
- Nuestra mayor prioridad es satisfacer al cliente con la liberación oportuna y continua de software valioso.
- Le damos la bienvenida a los requisitos cambiantes, aun ya avanzado el desarrollo. Los procesos ágiles utilizan el cambio para la ventaja competitiva del cliente.
- Liberar software funcionando frecuentemente, de un par de semanas a un par de meses, de preferencia en la escala de tiempo más corta.
- La gente de negocios y los desarrolladores deben trabajar juntos diariamente durante todo el proyecto.
- Construir proyectos con individuos motivados. Déles el ambiente y soporte necesario, y confíe en que harán su trabajo.
- La manera más efectiva de intercambiar información en el desarrollo es la conversación cara a cara.
- El software funcionando es la medida primaria de progreso.
- Los procesos ágiles promueven el desarrollo sustentable. Los patrocinadores, desarrolladores y usuarios deben ser capaces de mantener un paso constante indefinidamente.
- La atención continua a la excelencia técnica y al buen diseño mejoran la agilidad.
- La simplicidad –el arte de maximizar la cantidad de trabajo a no realizar– es esencial.
- Las mejores arquitecturas, requisitos y diseños emergen de equipos auto organizados.
- A intervalos regulares, el equipo reflexiona sobre cómo ser más efectivo, entonces ajusta su desarrollo acordemente.
En el próximo artículo profundizaremos en las principales características de las Metodologías Ágiles.
Publicado en General |
Sin Comentarios »
