ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Metodologias Agiles


Enviado por   •  20 de Agosto de 2014  •  3.685 Palabras (15 Páginas)  •  364 Visitas

Página 1 de 15

Metodologías ágiles

Concepto: Método que permite incorporar cambios con rapidez en el desarrollo de software. En muchas ocasiones, los modelos de gestión tradicionales no sirven para afrontar un reto que hoy en día resulta fundamental: incorporar cambios con rapidez y en cualquier fase del proyecto.

Historia

La definición moderna de desarrollo ágil de software evolucionó a mediados de la década de 1990 como parte de una reacción contra los métodos de "pico pizado", muy estructurados y estrictos, extraídos del modelo de desarrollo en cascada. El proceso originado del uso del modelo en cascada era visto como burocrático, lento, degradante e inconsistente con las formas de desarrollo de software que realmente realizaban un trabajo eficiente.

Los métodos de desarrollo ágiles e iterativos pueden ser vistos como un retroceso a las prácticas observadas en los primeros años del desarrollo de software (aunque en ese tiempo no había metodologías formales). Inicialmente, los métodos ágiles fueron llamados métodos de "peso liviano".

En el año 2001, miembros prominentes de la comunidad se reunieron en Snowbird, Utah, y adoptaron el nombre de "métodos ágiles". Poco después, algunas de estas personas formaron la "alianza ágil", una organización sin fines de lucro que promueve el desarrollo ágil de aplicaciones. Muchos métodos similares al ágil fueron creados antes del 2000. Entre los más notables se encuentran: Scrum (1986), Crystal Clear (cristal transparente), programación extrema (en inglés eXtreme Programming o XP, 1996), desarrollo de software adaptativo, feature driven development, Método de desarrollo de sistemas dinámicos (en inglés Dynamic Systems Development Method o DSDM, 1995).

Kent Beck creó el método de Programación Extrema (usualmente conocida como XP) en 1996 como una forma de rescatar el proyecto del Sistema exhaustivo de compensaciones de Chrysler (C3). Mientras Chrysler cancelaba ese proyecto, el método fue refinado por Ron Jeffries.

Ventajas de las metodologías ágiles

Las metodologías ágiles presentan diversas ventajas como:

• Rápida respuesta a cambios de requisitos a lo largo del desarrollo.

• Entrega continua y en plazos cortos de software funcional.

• Trabajo conjunto entre el cliente y el equipo de desarrollo.

• Minimiza los costos frente a cambios.

• Importancia de la simplicidad, al eliminar el trabajo innecesario.

• Atención continúa 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.

• El equipo de desarrollo no malgasta el tiempo y dinero del cliente desarrollando soluciones innecesariamente generales y complejas que en realidad no son un requisito del cliente.

• Cada componente del producto final ha sido probado y satisface los requerimientos.

Herramientas actuales que ayudan al mejor desempeño de estas tecnologías

Las principales herramientas y más utilizadas en el desarrollo de estas tecnologías son:

• Crystal Methodologies, Alistarir Cockburn,

• SCRUM, Ken Schwaber & Jeff Sutherland

• DSDM (Dynamic Systems Development Method)

• Lean Programming, Mary Poppendieck

• FDD (Feature-Driven Development), Peter Coad & Jeff De Luca,

• Extreme Programming, Kent Beck

• Adaptative Software Development, Jim Highsmith

Comparar las metodologías ágiles con las tradicionales

Metodología Ágil Metodología Tradicional

Pocos Artefactos. El modelado es prescindible, modelos desechables. Más Artefactos. El modelado es esencial, mantenimiento de modelos

Pocos Roles, más genéricos y flexibles Más Roles, más específicos

No existe un contrato tradicional, debe ser bastante flexible Existe un contrato prefijado

Cliente es parte del equipo de desarrollo (además in-situ) El cliente interactúa con el equipo de desarrollo mediante reuniones

Orientada a proyectos pequeños. Corta duración (o entregas frecuentes), equipos pequeños (< 10 integrantes) y trabajando en el mismo sitio Aplicables a proyectos de cualquier tamaño, pero suelen ser especialmente efectivas/usadas en proyectos grandes y con equipos posiblemente dispersos

La arquitectura se va definiendo y mejorando a lo largo del proyecto Se promueve que la arquitectura se defina tempranamente en el proyecto

Énfasis en los aspectos humanos: el individuo y el trabajo en equipo Énfasis en la definición del proceso: roles, actividades y artefactos

Basadas en heurísticas provenientes de prácticas de producción de código Basadas en normas provenientes de estándares seguidos por el entorno de desarrollo

Se esperan cambios durante el proyecto Se espera que no ocurran cambios de gran impacto durante el proyecto

Metodologías XP

Características principales

• Desarrollo iterativo e incremental: pequeñas mejoras, unas tras otras.

• Pruebas unitarias continuas, frecuentemente repetidas y automatizadas, incluyendo pruebas de regresión. Se aconseja escribir el código de la prueba antes de la codificación. Véase, por ejemplo, las herramientas de prueba JUnit orientada a Java, DUnit orientada a Delphi, NUnit para la plataforma.NET o PHPUnit para PHP. Estas tres últimas inspiradas en JUnit, la cual, a su vez, se insipiró en SUnit, el primer framework orientado a realizar tests, realizado para el lenguaje de programación Smalltalk.

• Programación en parejas: se recomienda que las tareas de desarrollo se lleven a cabo por dos personas en un mismo puesto. La mayor calidad del código escrito de esta manera -el código es revisado y discutido mientras se escribe- es más importante que la posible pérdida de productividad inmediata.

• Frecuente integración del equipo de programación con el cliente o usuario. Se recomienda que un representante del cliente trabaje junto al equipo de desarrollo.

• Corrección de todos los errores antes de añadir nueva funcionalidad. Hacer entregas frecuentes.

• Refactorización del código, es decir, reescribir ciertas partes del código para aumentar su legibilidad y mantenibilidad pero sin modificar su comportamiento. Las pruebas han de garantizar que en la refactorización no se ha introducido ningún fallo.

• Propiedad del código compartida: en vez de dividir la responsabilidad en el desarrollo de cada módulo en grupos de trabajo distintos, este método promueve el que todo el personal pueda corregir y extender cualquier parte del proyecto.

...

Descargar como (para miembros actualizados) txt (25 Kb)
Leer 14 páginas más »
Disponible sólo en Clubensayos.com