herramientas Software funcionando sobre documentacin extensiva Colaboracin con el cliente sobre negociacin contractual Respuesta ante el cambio sobre seguir un plan
Principios del manifiesto agil:
Nuestra mayor prioridad es satisfacer al cliente
mediante la entrega temprana y continua de software con valor.
Aceptamos que los requisitos cambien, incluso en etapas
tardas del desarrollo. Los procesos giles aprovechan el cambio para proporcionar ventaja competitiva al cliente.
Entregamos software funcional frecuentemente, entre dos
semanas y dos meses, con preferencia al periodo de tiempo ms corto posible.
Los responsables de negocio y los desarrolladores
trabajamos 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 ejecucin del trabajo.
El mtodo ms eficiente y efectivo de comunicar
informacin al equipo de desarrollo y entre sus miembros es la conversacin cara a cara.
El software funcionando es la medida principal de
progreso.
Los procesos giles promueven el desarrollo
sostenible. Los promotores, desarrolladores y usuarios debemos ser capaces de mantener un ritmo constante de forma indefinida.
La atencin continua a la excelencia tcnica y al
buen diseo mejora la Agilidad.
La simplicidad, o el arte de maximizar la cantidad de
trabajo no realizado, es esencial.
Las mejores arquitecturas, requisitos y diseos
emergen de equipos auto-organizados.
A intervalos regulares el equipo reflexiona sobre
cmo ser ms efectivo para a continuacin ajustar y perfeccionar su comportamiento en consecuencia. EL MANIFIESTO GIL es un documento que resume en cuatro valores y doce principios las mejores prcticas para el desarrollo de software, basados en laexperiencia de 17 industriales del software, en procura de desarrollos ms rpidos conservando su calidad. Este artculo presenta de manera general la evolucin de las metodologas para el desarrollo de software y una resea de los valores y principios del manifiesto gil. INTRODUCCIN En la actualidad, las metodologas giles se convierten en un modelo para los iniciados en el desarrollo de software, estas metodologas presentan algunas ventajas ante las metodologas pesadas pero son limitadas por el tamao del proyecto y el nmero de programadores que pueden intervenir. Sin embargo, resultan muy atractivas para el desarrollo de aplicaciones en empresas de software que estn iniciando o para el desarrollo de software por mdulos, sin descuidar la calidad y garantizando la actualizacin de la documentacin. En este artculo se presenta el concepto de metodologas giles. Se inicia con una breve resea histrica del surgimiento de la computacin. A continuacin se expone la idea de ciclo de vida del software. Luego analizamos las metodologas pesadas que son las antecesoras de las metodologas giles. Finalmente, se explican los valores, principios y las implementaciones de las metodologas giles. METODOLOGAS GILES Las metodologas giles resuelven los problemas surgidos, posteriormente, a la masificacin del uso del computador personal, dado que las expectativas y necesidades por parte de los usuarios se hicieron ms urgentes y frecuentes. Fue as como a comienzo de los 90 surgieron propuestas metodolgicas para lograr resultados ms rpidos en el desarrollo de software sin disminuir su calidad. Despus de casi una dcada de esfuerzos aislados, en febrero de 2001 en Utah-EEUU, se reunieron 17 empresarios de la industria del software1 y como resultado del debate respecto a las metodologas, principios y valores que deben regir el desarrollo de software de buena calidad, en tiempos cortos y flexible a los cambios, se acept el trmino gil para hacer referencia a nuevos enfoques metodolgicos en el desarrollo de software. En esta reunin se cre The Agile Alliance,organizacin sin nimo de lucro dedicada a promover los conceptos relacionados con el desarrollo gil de software y acompaar a las organizaciones para que adopten dichos conceptos. Como punto de partida o base fundamental de las metodologas giles se redact y proclam el manifiesto gil. Manifiesto gil -Valores El manifiesto hace nfasis en cuatro valores principales que deben soportar el desarrollo de software: a. Los individuos e interacciones por encima de los procesos y las herramientas: para garantizar una mayor productividad, las metodologas giles valoran el recurso humano como el principal factor de xito. Reconocen que contar con recurso humano calificado con capacidades tcnicas adecuadas, facilidades para adaptarse al entorno, trabajar en equipo e interactuar convenientemente con el usuario, da mayor garanta de xito que contar con herramientas y procesos rigurosos. b. Software funcionando por encima de la documentacin: los profesionales relacionados con el desarrollo de software, aunque no es su fuerte producir documentos, reconocen su importancia, al igual que reconocen el tiempo y costo de mantener una documentacin completa y actualizada.
c. La colaboracin del cliente por encima de la negociacin del contrato:
clsicamente el usuario o cliente es quien solicita e indica qu debe hacer el software, y espera los resultados de acuerdo con sus exigencias o expectativas, en los plazos establecidos. Con frecuencia las dos partes, cliente y equipo de desarrollo, asumen posiciones distantes, con ingredientes de rivalidad y prevencin al punto de tener que dedicar tiempo valioso a la tarea de redactar, depurar y firmar el contrato. En este sentido, y complementando el valor que se da al trabajo en equipo, las metodologas giles incluyen de manera directa y comprometida al cliente o usuario en el equipo de trabajo. d. La respuesta al cambio por encima del seguimiento de un plan: dada la naturaleza cambiante de la tecnologa y la dinmica de la sociedad moderna, un proyecto de desarrollo de software se enfrenta con frecuencia a cambios durante su ejecucin. Van desde ajustes sencillos en la personalizacin del software hasta cambios en las leyes, pasando por la aparicin de nuevos productos en el mercado, comportamiento de la competencia, nuevas tendencias tecnolgicas, etc. Principios del manifiesto gil : Bajo el concepto de principio se hace referencia a las caractersticas que hacen la diferencian entre un proceso gil y uno tradicional, y constituyen las ideas centrales del desarrollo gil. I. Nuestra mayor prioridad es satisfacer al cliente mediante entregas tempranas y continuas de software con valor. Para que una metodologa puede ser calificada como gil debe empezar a entregar software funcionando y til en pocas semanas. Esto acaba con la incertidumbre, desconfianza, insatisfaccin y desmotivacin producidas en el cliente debido a las largas esperas para ver resultados concretos. II. Bienvenidos los cambios a los requerimientos, incluso los tardos. Los procesos giles aprovechan los cambios para la ventaja competitiva del cliente. Es ambicioso esperar que el cliente defina de manera definitiva todos sus requerimientos desde el comienzo y peor an depender de ello para adelantar el proyecto. III. Liberar frecuentemente software funcionando, desde un par de semanas a un par de meses, con preferencia por los periodos ms cortos. El cliente siempre espera ver funcionando el programa, y es eso lo que debe entregrsele. Pocas veces resulta conveniente, despus de varios meses de trabajo, entregar slo informes, modelos abstractos y planes. Se deben entregar resultados que incluyan software que el usuario pueda ver trabajando. IV. Las personas del negocio y los desarrolladores deben trabajar juntos diariamente a lo largo del proyecto. Si bien el usuario desconoce lo referente al lenguaje, el diseo de bases de datos, protocolos y dems aspectos tcnicos, es l, quien nos puede sealar qu est bien desde el punto de vista de la funcionalidad y resultados entregados por el software.
V. Construir proyectos en torno a individuos
motivados. Darles el entorno y apoyo que necesiten, y confiar en ellos para que consigan hacer su trabajo. El nimo, el sentido de pertenencia y la disposicin del equipo de trabajo son fundamentales en un proyecto de software. VI. El mtodo ms efectivo y eficiente de compartir informacin a, y dentro de un equipo de desarrollo, es la conversacin cara a cara. El trabajo en equipo debe apoyarse con un buen sistema de comunicacin tanto entre los miembros del equipo de desarrollo como entre stos y el usuario. VII. El software funcionando es la medida de progreso. Cuando se trata de establecer el estado de un proyecto, si bien existen diversas formas de medirlo, es la cantidad de requerimientos implementados y funcionando la que mas claridad y confiabilidad ofrecen para establecer una medida del avance del proyecto. VIII. Los procesos giles promueven el desarrollo sostenible. Los patrocinadores, desarrolladores y usuarios deberan ser capaces de mantener relaciones cordiales. Se debe trabajar de forma que lo urgente no se imponga sobre lo importante. Desde el inicio del proyecto se debe asignar responsabilidades y tareas de manera que siempre se puedan cumplir. IX. La atencin continua a la excelencia tcnica y al buen diseo incrementan la agilidad. Adems de satisfacer los requerimientos del usuario, los aspectos tcnicos deben ser excelentes, independientemente de su cantidad y complejidad. La calidad debe ser vista desde dos perspectivas, la del usuario y la del equipo desarrollador. X. La simplicidad el arte de maximizar la cantidad de trabajo no hecho- es esencial. Se estima que el cliente nunca usar el 90% de la funcionalidad que se implementa sin que est haya sido solicitada. Se deben centrar los esfuerzos en lo que realmente importa, de optimizaciones innecesarias. XI. Las mejores arquitecturas, requerimientos y diseos emergen de los equipos auto-organizados. Los principios que rijan en equipo de trabajo deben surgir de su interior, los ajustes, estructuras administrativas deben formularse con la participacin de todo el equipo teniendo siempre presente el bien colectivo, la responsabilidad es de todos.
XII. En intervalos regulares, el equipo reflexiona
sobre cmo volverse ms efectivo, entonces afina y ajusta su comportamiento como corresponde. El equipo de trabajo est todo el tiempo dispuesto a cambiar lo que sea necesario para mejorar. En cada tarea siempre existe la posibilidad de hacerlo mejor la prxima vez. Implementaciones del manifiesto gil Existen en el mercado varias propuestas sobre cmo implementar los valores y principios enunciados, a las cuales los autores les colocan su toque personal dependiendo de su experiencia o necesidad. Entre las ms reconocidas se cuentan: SCRUM, Crystal Methodologies, Dynamic Systems Development Method (DSDM), Adaptive Software Development (ASD), Feature-Driven Development (FDD), Lean Development (LD) 2 CONCLUSIONES Y RECOMENDACIONES Las metodologas giles son una alternativa interesante para superar las debilidades de las metodologas convencionales, pero, al igual que los computadores no son en s mismos la solucin a los problemas de procesamiento de informacin, stas no son la solucin a todos los problemas que enfrenta el desarrollo de software. Con el surgimiento de las metodologas giles, el concepto de etapa se desvanece dando paso a la idea de actividades, las cuales pueden ser organizadas a comodidad del equipo de trabajo, en paquetes pequeos conservando las mismas labores e identidad de las etapas concebidas en las primeras metodologas. Es claro que la informtica y la computacin son ciencias nuevas, sin embargo ya es tiempo de que se les concedan espacios diversos y espontneos en los que las personas que participan en los proyectos del rea puedan sentirse ms productivos con base en las circunstancias particulares de cada proyecto. La participacin directa del usuario durante todo el proyecto es una garanta de xito, ya que la deteccin de los errores es ms oportuna y de igual manera su correccin Si bien los proponentes presentan su experiencia como muestra de conveniencia en el uso de sus metodologas, en trminos generales stas ofrecen mayores probabilidades de xito en proyectos que cumplan ciertas condiciones como son no involucrar a ms de 15 o 20 programadores, que no requieran ms de cinco o seis meses de trabajo, que el entorno de desarrollo sea apropiado para la comunicacin entre los miembros del equipo, que el cliente o usuario este dispuesto y disponible para el trabajo en equipo con el personal tcnico y que los requerimientos puedan ser formulados segn va avanzando el proyecto.