SlideShare una empresa de Scribd logo
1 de 10
UNIVERSIDAD ABIERTA PARA ADULTOS
UAPA
ESCUELA DE CIENCIAS Y TEGNOLOGIA
CARRERA DE ING EN SOFWARE
TEMA
Reporte de metodologías agiles
PRESENTADO POR:
JOHALQUI LEDESMA PINALES
MATRÍCULA: 10-1227
ASIGNATURA
Ingeniería en Software I
FACILITADOR
Diógenes Amaury Martínez Silverio
SANTIAGO DE LOS CABALLEROS,
REPÚBLICA DOMINICANA
3, oct., 2012
El desarrollo ágil de software son métodos de ingeniería del
software basado en el desarrollo iterativo e incremental, donde los
requerimientos y soluciones evolucionan mediante la colaboración
de grupos auto organizado y multidisciplinario. Existen muchos
métodos de desarrollo ágil; la mayoría minimiza riesgos
desarrollando software en cortos lapsos de tiempo. El software
desarrollado en una unidad de tiempo es llamado una iteración, la
cual debe durar de una a cuatro semanas.
Cada iteración del ciclo de vida incluye: planificación, análisis de
requerimientos, diseño, codificación, revisión y documentación. Una
iteración no debe agregar demasiada funcionalidad para justificar el
lanzamiento del producto al mercado, pero la meta es tener una
«demo» (sin errores) al final de cada iteración. Al final de cada
iteración el equipo vuelve a evaluar las prioridades del proyecto.
Los métodos de desarrollo ágil e iterativo 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.
Las metodologías ingenieriles han estado presentes durante
mucho tiempo. No se han distinguido precisamente por ser muy
exitosas. Aún menos por su popularidad. La crítica más frecuente a
estas metodologías es que son burocráticas. Hay tanto que hacer
para seguir la metodología que el ritmo entero del desarrollo se
retarda.
Los métodos ágiles son orientados a la gente y no orientados al
proceso. La meta de los métodos ingenieriles es definir un proceso
que funcionará bien con cualquiera que lo use. Los métodos ágiles
afirman que ningún proceso podrá nunca maquillar las habilidades
del equipo de desarrollo, de modo que el papel del proceso es
apoyar al equipo de desarrollo en su trabajo. Explícitamente
puntualizan el trabajar a favor de la naturaleza humana en lugar de
en su contra y enfatizan que el desarrollo de software debe ser una
actividad agradable.
Las Metodologías Ágiles valoran:
En la Alianza Ágil establecen como valores de los MA:
1. Al individuo y las interacciones en el equipo de desarrollo
más que a las actividades y las herramientas.
2. Desarrollar software que funciona más que conseguir una
buena documentación, implica minimalismo respecto del
modelado y la documentación del sistema.
3. La colaboración con el cliente más que la negociación de
un contrato.
4. Responder a los cambios más que seguir estrictamente
una planificación.
Principales Metodologías Ágiles
Cristal Methodologies, Alistarir Cockburn,
www.crystalmethodologies.org
SCRUM, Ken Schwaber & Jeff Sutherland,
www.controlchaos.com
DSDM (Dynamic Systems Development Method),
www.dsdm.org.
Lean Programming, Mary Poppendieck,
www.poppendieck.com
FDD (Feature-Driven Development), Peter Coad & Jeff De Luca,
www.nebulon.com/fdd, www.coad.com/peter/#fdd
Extreme Programming, Kent Beck
www.extremeprogramming.org, www.xprogramming.com
Adaptative Software Development, Jim Highsmith
www.adaptivesd.com
RESUMEN
El desarrollo de software no es una tarea fácil. Prueba de ello es
que existen numerosas propuestas Metodológicas que inciden en
distintas dimensiones del proceso de desarrollo.
Por una parte tenemos Aquellas propuestas más tradicionales que
se centran especialmente en el control del proceso, Estableciendo
rigurosamente las actividades involucradas, los artefactos que se
deben producir, y las Herramientas y notaciones que se usarán.
Estas propuestas han demostrado ser efectivas y necesarias en Un
gran número de proyectos, pero también han presentado problemas
en otros muchos. Una posible Mejora es incluir en los procesos de
desarrollo más actividades, más artefactos y más restricciones,
basándose en los puntos débiles detectados.
Sin embargo, el resultado final sería un proceso de desarrollo más
complejo que puede incluso limitar la propia habilidad del equipo
para llevar a cabo el proyecto. Otra aproximación es centrarse en
otras dimensiones, como por ejemplo el factor humano o el
producto software. Esta es la filosofía de las metodologías ágiles,
las cuales dan mayor valor al individuo, a la Colaboración con el
cliente y al des arrollo incremental del software con iteraciones muy
cortas.
Este enfoque está mostrando su efectividad en proyectos con
requisitos muy cambiantes y cuando se exige Reducir
drásticamente los tiempos de desarrollo pero manteniendo una alta
calidad. Las metodologías. Ágiles están revolucionando la manera
de producir software, y a la vez generando un amplio debate entre
sus seguidores y quienes por escepticismo o convencimiento no las
ven como alternativa para las metodologías tradicionales. En este
trabajo se presenta resumidamente el contexto en el que surgen las
metodologías ágiles, sus valores, principios y comparación con las
metodologías tradicionales.
Además se describen brevemente las principales propuestas,
especialmente Programación Extrema (eXtre me Programming, XP)
la metodología ágil más popular en la actualidad.
OTRAS METODOLOGÍAS ÁGILES
Aunque los creadores e impulsores de las metodologías ágiles más
populares han suscrito el manifiesto ágil y coinciden con los
principios enunciados anteriormente, cada metodología tiene
características propias y hace hincapié en algunos aspectos más
específicos. A continuación se resumen otras metodologías ágiles.
La mayoría de ellas ya estaban siendo utilizadas con éxito en
proyectos reales pero les faltaba una mayor difusión y
reconocimiento.
· SCRUM
Desarrollada por Ken Schwaber, Jeff Sutherland y Mike Beedle.
Define un marco para la gestión de proyectos, que se ha utilizado
con éxito durante los últimos 10 años. Está especialmente indicada
para proyectos con un rápido cambio de requisitos. Sus Principales
características se pueden resumir en dos. El desarrollo de software
se realiza mediante iteraciones, denominadas sprints, con una
duración de 30 días. El resultado de cada sprint es un incremento
ejecutable que se muestra al cliente.
La segunda característica importante son las reuniones a lo largo
proyecto, entre ellas destaca la reunión diaria de 15 minutos del
equipo de desarrollo para coordinación e integración.
· Crystal Methodologies
Se trata de un conjunto de metodologías para el desarrollo de
software caracterizadas por estar centradas en las personas que
componen el equipo y la reducción al máximo del número de
artefactos producidos. Han sido desarrolladas por Alistair Cockburn.
El desarrollo de software se considera un juego cooperativo de
invención y comunicación, limitado por los recursos a utilizar.
El equipo de desarrollo es un factor clave, por lo que se deben
invertir esfuerzos en mejorar sus habilidades y destrezas, así como
tener políticas de trabajo en equipo definidas. Estas políticas
dependerán del tamaño del equipo, estableciéndose una
clasificación por colores, por ejemplo Crystal Clear (3 a 8 miembros)
y Crystal Orange (25 a 50 miembros). · Dynamic Systems
Development Method.
(DSDM) Define el marco para desarrollar un proceso de producción
de software. Nace en 1994 con el objetivo de crear una metodología
RAD unificada. Sus principales características son: es un proceso
iterativo e incremental y el equipo de desarrollo y el usuario trabajan
juntos. Propone cinco fases: estudio viabilidad, estudio del negocio,
modelado funcional, diseño y construcción, y finalmente
implementación. Las tres últimas son iterativas, además de existir
realimentación a todas las fases. · Adaptive Software Development.
(ASD) Su impulsor es Jim Highsmith. Sus principales
características son: iterativo, orientado a los componentes software
más que a las tareas y tolerante a los cambios. El ciclo de vida que
propone tiene tres fases esenciales: especulación, colaboración y
aprendizaje. En la primera de ellas se inicia el proyecto y se
planifican las características del software; en la segunda desarrollan
las características y finalmente en la tercera se revisa su calidad, y
se entrega al cliente. La revisión de los componentes sirve para
aprender de los errores y volver a iniciar el ciclo de desarrollo.·
Feature -Driven Development.
(FDD) Define un proceso iterativo que consta de 5 pasos. Las
iteraciones son cortas (hasta 2 semanas). Se centra en las fases de
diseño e implementación del sistema partiendo de una lista de
características que debe reunir el software. Sus impulsores son Jeff
De Luca y Peter Coad. · Lean Development.
(LD) Definida por Bob Charette’ s a partir de su experiencia en
proyectos con la industria japonesa del automóvil en los años 80 y
utilizada en numerosos proyectos de telecomunicaciones en
Europa. En LD, los cambios se consideran riesgos, pero si se
manejan adecuadamente se pueden convertir en oportunidades que
mejoren la www.controlchaos.com
www.crystalmethodologies.org
www.dsdm.org
www.adaptivesd.com
www.featuredrivendevelopment.com
www.poppendieck.com
Productividad del cliente. Su principal característica es introducir un
mecanismo para implementar dichos cambios.
CONCLUSIONES
Toda metodología debe ser adaptada al contexto del proyecto
(recursos técnicos y humanos, tiempo de desarrollo, tipo de
sistema, etc. Históricamente, las metodologías tradicionales han
intentado abordar la mayor cantidad de situaciones de contexto del
proyecto, exigiendo un esfuerzo considerable para ser adaptadas,
sobre todo en proyectos pequeños y con requisitos muy
cambiantes.
Las metodologías ágiles ofrecen una solución casi a medida para
una gran cantidad de proyectos que tienen estas características.
Una de las cualidades más destacables en una metodología ágil es
su sencillez, tanto en su aprendizaje como en su aplicación,
reduciéndose así los costos de implantación en un equipo de
desarrollo.
Esto ha llevado hacia un interés creciente en las metodologías
ágiles. Sin embargo, hay que tener presente una serie de
inconvenientes y restricciones para su aplicación, tales como: están
dirigidas a equipos pequeños o medianos (Beck sugiere que el
tamaño de los equipos se limite de 3 a 20 como máximo, otros
dicen no más de 10 participantes).
El entorno físico debe ser un ambiente que permita la comunicación
y colaboración entre todos los miembros del equipo durante todo el
tiempo, cualquier resistencia del cliente o del equipo de desarrollo
hacia las prácticas y principios puede llevar al proceso al fracaso (el
clima de trabajo, la colaboración y la relación contractual son
claves), el uso de tecnologías que no tengan un ciclo rápido de
realimentación o que no soporten fácilmente el cambio, etc.

Más contenido relacionado

La actualidad más candente

Metodologías ágiles
Metodologías ágilesMetodologías ágiles
Metodologías ágilesFabian Garzon
 
Metodologías Ágiles en la Práctica
Metodologías Ágiles en la PrácticaMetodologías Ágiles en la Práctica
Metodologías Ágiles en la PrácticaManuel Rubio
 
Metología Agiles Desarrollo Software (XP)
Metología Agiles Desarrollo Software (XP)Metología Agiles Desarrollo Software (XP)
Metología Agiles Desarrollo Software (XP)Tuyo Mio
 
ASD (Adaptive Software Development)
ASD (Adaptive Software Development)ASD (Adaptive Software Development)
ASD (Adaptive Software Development)urumisama
 
Metodologías ágiles en el desarrollo de software
Metodologías ágiles en el desarrollo de softwareMetodologías ágiles en el desarrollo de software
Metodologías ágiles en el desarrollo de softwareprinceos
 
Metodologias Agiles
Metodologias AgilesMetodologias Agiles
Metodologias Agilespuyol10
 
Crystal clear Sebasky Analisis
Crystal clear Sebasky AnalisisCrystal clear Sebasky Analisis
Crystal clear Sebasky AnalisisSebastian Ordoñez
 
Adopción de una metodología agil para proyectos de software
Adopción de una metodología agil  para proyectos de softwareAdopción de una metodología agil  para proyectos de software
Adopción de una metodología agil para proyectos de softwarefredarwin
 
Metodologias de desarrollo
Metodologias de desarrolloMetodologias de desarrollo
Metodologias de desarrolloHermes Romero
 
Principios de las metodologías agiles
Principios  de las metodologías agilesPrincipios  de las metodologías agiles
Principios de las metodologías agilesjoselynvaleria93
 
Workshop Framework SCRUM
Workshop Framework SCRUMWorkshop Framework SCRUM
Workshop Framework SCRUMAngel Lacret
 
La programación extrema o e xtreme programming
La programación extrema o e xtreme programmingLa programación extrema o e xtreme programming
La programación extrema o e xtreme programmingJoseMariaAndujar
 

La actualidad más candente (16)

Metodologias agiles
Metodologias agilesMetodologias agiles
Metodologias agiles
 
Metodologías ágiles
Metodologías ágilesMetodologías ágiles
Metodologías ágiles
 
Metodologías Ágiles en la Práctica
Metodologías Ágiles en la PrácticaMetodologías Ágiles en la Práctica
Metodologías Ágiles en la Práctica
 
Metología Agiles Desarrollo Software (XP)
Metología Agiles Desarrollo Software (XP)Metología Agiles Desarrollo Software (XP)
Metología Agiles Desarrollo Software (XP)
 
metodología crystal clear
 metodología crystal clear metodología crystal clear
metodología crystal clear
 
ASD (Adaptive Software Development)
ASD (Adaptive Software Development)ASD (Adaptive Software Development)
ASD (Adaptive Software Development)
 
Metodologías ágiles en el desarrollo de software
Metodologías ágiles en el desarrollo de softwareMetodologías ágiles en el desarrollo de software
Metodologías ágiles en el desarrollo de software
 
Metodologias Agiles
Metodologias AgilesMetodologias Agiles
Metodologias Agiles
 
Crystal clear Sebasky Analisis
Crystal clear Sebasky AnalisisCrystal clear Sebasky Analisis
Crystal clear Sebasky Analisis
 
Adopción de una metodología agil para proyectos de software
Adopción de una metodología agil  para proyectos de softwareAdopción de una metodología agil  para proyectos de software
Adopción de una metodología agil para proyectos de software
 
Metodologias de desarrollo
Metodologias de desarrolloMetodologias de desarrollo
Metodologias de desarrollo
 
Principios de las metodologías agiles
Principios  de las metodologías agilesPrincipios  de las metodologías agiles
Principios de las metodologías agiles
 
METODOLOGÍAS ÁGILES EN TI
METODOLOGÍAS ÁGILES EN TIMETODOLOGÍAS ÁGILES EN TI
METODOLOGÍAS ÁGILES EN TI
 
Crystal clear exposicion
Crystal clear exposicionCrystal clear exposicion
Crystal clear exposicion
 
Workshop Framework SCRUM
Workshop Framework SCRUMWorkshop Framework SCRUM
Workshop Framework SCRUM
 
La programación extrema o e xtreme programming
La programación extrema o e xtreme programmingLa programación extrema o e xtreme programming
La programación extrema o e xtreme programming
 

Destacado (20)

CURRICULUM LOLI
CURRICULUM LOLICURRICULUM LOLI
CURRICULUM LOLI
 
Tecnologia educativa 2.2 lena saavedra c
Tecnologia educativa 2.2 lena saavedra cTecnologia educativa 2.2 lena saavedra c
Tecnologia educativa 2.2 lena saavedra c
 
Hipertensión arterial
Hipertensión arterialHipertensión arterial
Hipertensión arterial
 
Catedra
CatedraCatedra
Catedra
 
Ärgerkontrolle (German)
Ärgerkontrolle (German)Ärgerkontrolle (German)
Ärgerkontrolle (German)
 
Esport salut i desenvolupament a Haití, presentació
Esport salut i desenvolupament a Haití, presentacióEsport salut i desenvolupament a Haití, presentació
Esport salut i desenvolupament a Haití, presentació
 
Proyecto Final
Proyecto FinalProyecto Final
Proyecto Final
 
Latín
LatínLatín
Latín
 
Vega cinthia power_point
Vega cinthia power_pointVega cinthia power_point
Vega cinthia power_point
 
Liebe oder Obsession? (German)
Liebe oder Obsession? (German)Liebe oder Obsession? (German)
Liebe oder Obsession? (German)
 
Algebra de boole deusto(1)
Algebra de boole deusto(1)Algebra de boole deusto(1)
Algebra de boole deusto(1)
 
CURRICULUM MARIA
CURRICULUM MARIACURRICULUM MARIA
CURRICULUM MARIA
 
La diabetes
La diabetes La diabetes
La diabetes
 
Psicosocial
PsicosocialPsicosocial
Psicosocial
 
Manuel area1
Manuel area1Manuel area1
Manuel area1
 
Lobende Mensch (German)
Lobende Mensch (German)Lobende Mensch (German)
Lobende Mensch (German)
 
Viapositivas de tecnologia educativa 2.2 lena saavedra c
Viapositivas de tecnologia educativa 2.2 lena saavedra cViapositivas de tecnologia educativa 2.2 lena saavedra c
Viapositivas de tecnologia educativa 2.2 lena saavedra c
 
Trabajo de catedra universitaria
Trabajo de catedra universitariaTrabajo de catedra universitaria
Trabajo de catedra universitaria
 
Trabajo publisher
Trabajo publisherTrabajo publisher
Trabajo publisher
 
Tp redes acindar - equipo 1.pptx
Tp redes   acindar - equipo 1.pptxTp redes   acindar - equipo 1.pptx
Tp redes acindar - equipo 1.pptx
 

Similar a Los metodos agiles

Metodologiasagilesarquitectura
MetodologiasagilesarquitecturaMetodologiasagilesarquitectura
Metodologiasagilesarquitecturaroisbelfigueroa
 
Todo agilok
Todo agilokTodo agilok
Todo agilokCRJOSE
 
Díme que desarrollas y te diré que metodología usar
Díme que desarrollas y te diré que metodología usarDíme que desarrollas y te diré que metodología usar
Díme que desarrollas y te diré que metodología usarKiberley Santos
 
Unidad 1.2 B Metodos Agiles 1
Unidad 1.2 B Metodos Agiles  1Unidad 1.2 B Metodos Agiles  1
Unidad 1.2 B Metodos Agiles 1Sergio Sanchez
 
Metodologias de gestion de proyestos de desarrollo de software
Metodologias de gestion de proyestos de desarrollo de softwareMetodologias de gestion de proyestos de desarrollo de software
Metodologias de gestion de proyestos de desarrollo de softwareBrayan Seña
 
Metodologias agiles
Metodologias agilesMetodologias agiles
Metodologias agilesmartin8730
 
Metodologias agiles
Metodologias agilesMetodologias agiles
Metodologias agilesmartin8730
 
Metodologías de Desarrollo de Software Jr
 Metodologías de Desarrollo de Software Jr Metodologías de Desarrollo de Software Jr
Metodologías de Desarrollo de Software JrJunior Leal
 
Métodos ágiles de desarrollo de software
Métodos ágiles de desarrollo de softwareMétodos ágiles de desarrollo de software
Métodos ágiles de desarrollo de softwareEmanuel Barrera
 
SEPG LA 2005 Presentation "Practicas Agiles En Mejora De Procesos"
SEPG LA 2005 Presentation "Practicas Agiles En Mejora De Procesos"SEPG LA 2005 Presentation "Practicas Agiles En Mejora De Procesos"
SEPG LA 2005 Presentation "Practicas Agiles En Mejora De Procesos"Walter Ariel Risi
 

Similar a Los metodos agiles (20)

Metodologia
MetodologiaMetodologia
Metodologia
 
Exponer mañana
Exponer mañanaExponer mañana
Exponer mañana
 
Metodologiasagilesarquitectura
MetodologiasagilesarquitecturaMetodologiasagilesarquitectura
Metodologiasagilesarquitectura
 
METODOLOGÍAS ÁGILES
METODOLOGÍAS ÁGILESMETODOLOGÍAS ÁGILES
METODOLOGÍAS ÁGILES
 
Todo agilok
Todo agilokTodo agilok
Todo agilok
 
Articulo agiles metodos
Articulo agiles metodosArticulo agiles metodos
Articulo agiles metodos
 
Díme que desarrollas y te diré que metodología usar
Díme que desarrollas y te diré que metodología usarDíme que desarrollas y te diré que metodología usar
Díme que desarrollas y te diré que metodología usar
 
Unidad 1.2 B Metodos Agiles 1
Unidad 1.2 B Metodos Agiles  1Unidad 1.2 B Metodos Agiles  1
Unidad 1.2 B Metodos Agiles 1
 
Metodologías Ágiles
Metodologías ÁgilesMetodologías Ágiles
Metodologías Ágiles
 
Metodologias de gestion de proyestos de desarrollo de software
Metodologias de gestion de proyestos de desarrollo de softwareMetodologias de gestion de proyestos de desarrollo de software
Metodologias de gestion de proyestos de desarrollo de software
 
Metodologia scrum
Metodologia scrumMetodologia scrum
Metodologia scrum
 
Metodologias agiles
Metodologias agilesMetodologias agiles
Metodologias agiles
 
Metodologias agiles
Metodologias agilesMetodologias agiles
Metodologias agiles
 
Metodologiasagiles
MetodologiasagilesMetodologiasagiles
Metodologiasagiles
 
Exposicion
ExposicionExposicion
Exposicion
 
Metodologías de Desarrollo de Software Jr
 Metodologías de Desarrollo de Software Jr Metodologías de Desarrollo de Software Jr
Metodologías de Desarrollo de Software Jr
 
Métodos ágiles de desarrollo de software
Métodos ágiles de desarrollo de softwareMétodos ágiles de desarrollo de software
Métodos ágiles de desarrollo de software
 
Metodologias agiles
Metodologias agilesMetodologias agiles
Metodologias agiles
 
SEPG LA 2005 Presentation "Practicas Agiles En Mejora De Procesos"
SEPG LA 2005 Presentation "Practicas Agiles En Mejora De Procesos"SEPG LA 2005 Presentation "Practicas Agiles En Mejora De Procesos"
SEPG LA 2005 Presentation "Practicas Agiles En Mejora De Procesos"
 
prog
progprog
prog
 

Los metodos agiles

  • 1.
  • 2. UNIVERSIDAD ABIERTA PARA ADULTOS UAPA ESCUELA DE CIENCIAS Y TEGNOLOGIA CARRERA DE ING EN SOFWARE TEMA Reporte de metodologías agiles PRESENTADO POR: JOHALQUI LEDESMA PINALES MATRÍCULA: 10-1227 ASIGNATURA Ingeniería en Software I FACILITADOR Diógenes Amaury Martínez Silverio SANTIAGO DE LOS CABALLEROS, REPÚBLICA DOMINICANA 3, oct., 2012
  • 3. El desarrollo ágil de software son métodos de ingeniería del software basado en el desarrollo iterativo e incremental, donde los requerimientos y soluciones evolucionan mediante la colaboración de grupos auto organizado y multidisciplinario. Existen muchos métodos de desarrollo ágil; la mayoría minimiza riesgos desarrollando software en cortos lapsos de tiempo. El software desarrollado en una unidad de tiempo es llamado una iteración, la cual debe durar de una a cuatro semanas. Cada iteración del ciclo de vida incluye: planificación, análisis de requerimientos, diseño, codificación, revisión y documentación. Una iteración no debe agregar demasiada funcionalidad para justificar el lanzamiento del producto al mercado, pero la meta es tener una «demo» (sin errores) al final de cada iteración. Al final de cada iteración el equipo vuelve a evaluar las prioridades del proyecto. Los métodos de desarrollo ágil e iterativo 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.
  • 4. 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. Las metodologías ingenieriles han estado presentes durante mucho tiempo. No se han distinguido precisamente por ser muy exitosas. Aún menos por su popularidad. La crítica más frecuente a estas metodologías es que son burocráticas. Hay tanto que hacer para seguir la metodología que el ritmo entero del desarrollo se retarda. Los métodos ágiles son orientados a la gente y no orientados al proceso. La meta de los métodos ingenieriles es definir un proceso que funcionará bien con cualquiera que lo use. Los métodos ágiles afirman que ningún proceso podrá nunca maquillar las habilidades del equipo de desarrollo, de modo que el papel del proceso es apoyar al equipo de desarrollo en su trabajo. Explícitamente puntualizan el trabajar a favor de la naturaleza humana en lugar de en su contra y enfatizan que el desarrollo de software debe ser una actividad agradable.
  • 5. Las Metodologías Ágiles valoran: En la Alianza Ágil establecen como valores de los MA: 1. Al individuo y las interacciones en el equipo de desarrollo más que a las actividades y las herramientas. 2. Desarrollar software que funciona más que conseguir una buena documentación, implica minimalismo respecto del modelado y la documentación del sistema. 3. La colaboración con el cliente más que la negociación de un contrato. 4. Responder a los cambios más que seguir estrictamente una planificación. Principales Metodologías Ágiles Cristal Methodologies, Alistarir Cockburn, www.crystalmethodologies.org SCRUM, Ken Schwaber & Jeff Sutherland, www.controlchaos.com DSDM (Dynamic Systems Development Method), www.dsdm.org. Lean Programming, Mary Poppendieck, www.poppendieck.com FDD (Feature-Driven Development), Peter Coad & Jeff De Luca, www.nebulon.com/fdd, www.coad.com/peter/#fdd Extreme Programming, Kent Beck www.extremeprogramming.org, www.xprogramming.com Adaptative Software Development, Jim Highsmith www.adaptivesd.com
  • 6. RESUMEN El desarrollo de software no es una tarea fácil. Prueba de ello es que existen numerosas propuestas Metodológicas que inciden en distintas dimensiones del proceso de desarrollo. Por una parte tenemos Aquellas propuestas más tradicionales que se centran especialmente en el control del proceso, Estableciendo rigurosamente las actividades involucradas, los artefactos que se deben producir, y las Herramientas y notaciones que se usarán. Estas propuestas han demostrado ser efectivas y necesarias en Un gran número de proyectos, pero también han presentado problemas en otros muchos. Una posible Mejora es incluir en los procesos de desarrollo más actividades, más artefactos y más restricciones, basándose en los puntos débiles detectados. Sin embargo, el resultado final sería un proceso de desarrollo más complejo que puede incluso limitar la propia habilidad del equipo para llevar a cabo el proyecto. Otra aproximación es centrarse en otras dimensiones, como por ejemplo el factor humano o el producto software. Esta es la filosofía de las metodologías ágiles, las cuales dan mayor valor al individuo, a la Colaboración con el cliente y al des arrollo incremental del software con iteraciones muy cortas. Este enfoque está mostrando su efectividad en proyectos con requisitos muy cambiantes y cuando se exige Reducir drásticamente los tiempos de desarrollo pero manteniendo una alta calidad. Las metodologías. Ágiles están revolucionando la manera de producir software, y a la vez generando un amplio debate entre sus seguidores y quienes por escepticismo o convencimiento no las ven como alternativa para las metodologías tradicionales. En este trabajo se presenta resumidamente el contexto en el que surgen las metodologías ágiles, sus valores, principios y comparación con las metodologías tradicionales.
  • 7. Además se describen brevemente las principales propuestas, especialmente Programación Extrema (eXtre me Programming, XP) la metodología ágil más popular en la actualidad. OTRAS METODOLOGÍAS ÁGILES Aunque los creadores e impulsores de las metodologías ágiles más populares han suscrito el manifiesto ágil y coinciden con los principios enunciados anteriormente, cada metodología tiene características propias y hace hincapié en algunos aspectos más específicos. A continuación se resumen otras metodologías ágiles. La mayoría de ellas ya estaban siendo utilizadas con éxito en proyectos reales pero les faltaba una mayor difusión y reconocimiento. · SCRUM Desarrollada por Ken Schwaber, Jeff Sutherland y Mike Beedle. Define un marco para la gestión de proyectos, que se ha utilizado con éxito durante los últimos 10 años. Está especialmente indicada para proyectos con un rápido cambio de requisitos. Sus Principales características se pueden resumir en dos. El desarrollo de software se realiza mediante iteraciones, denominadas sprints, con una duración de 30 días. El resultado de cada sprint es un incremento ejecutable que se muestra al cliente. La segunda característica importante son las reuniones a lo largo proyecto, entre ellas destaca la reunión diaria de 15 minutos del equipo de desarrollo para coordinación e integración.
  • 8. · Crystal Methodologies Se trata de un conjunto de metodologías para el desarrollo de software caracterizadas por estar centradas en las personas que componen el equipo y la reducción al máximo del número de artefactos producidos. Han sido desarrolladas por Alistair Cockburn. El desarrollo de software se considera un juego cooperativo de invención y comunicación, limitado por los recursos a utilizar. El equipo de desarrollo es un factor clave, por lo que se deben invertir esfuerzos en mejorar sus habilidades y destrezas, así como tener políticas de trabajo en equipo definidas. Estas políticas dependerán del tamaño del equipo, estableciéndose una clasificación por colores, por ejemplo Crystal Clear (3 a 8 miembros) y Crystal Orange (25 a 50 miembros). · Dynamic Systems Development Method. (DSDM) Define el marco para desarrollar un proceso de producción de software. Nace en 1994 con el objetivo de crear una metodología RAD unificada. Sus principales características son: es un proceso iterativo e incremental y el equipo de desarrollo y el usuario trabajan juntos. Propone cinco fases: estudio viabilidad, estudio del negocio, modelado funcional, diseño y construcción, y finalmente implementación. Las tres últimas son iterativas, además de existir realimentación a todas las fases. · Adaptive Software Development. (ASD) Su impulsor es Jim Highsmith. Sus principales características son: iterativo, orientado a los componentes software más que a las tareas y tolerante a los cambios. El ciclo de vida que propone tiene tres fases esenciales: especulación, colaboración y
  • 9. aprendizaje. En la primera de ellas se inicia el proyecto y se planifican las características del software; en la segunda desarrollan las características y finalmente en la tercera se revisa su calidad, y se entrega al cliente. La revisión de los componentes sirve para aprender de los errores y volver a iniciar el ciclo de desarrollo.· Feature -Driven Development. (FDD) Define un proceso iterativo que consta de 5 pasos. Las iteraciones son cortas (hasta 2 semanas). Se centra en las fases de diseño e implementación del sistema partiendo de una lista de características que debe reunir el software. Sus impulsores son Jeff De Luca y Peter Coad. · Lean Development. (LD) Definida por Bob Charette’ s a partir de su experiencia en proyectos con la industria japonesa del automóvil en los años 80 y utilizada en numerosos proyectos de telecomunicaciones en Europa. En LD, los cambios se consideran riesgos, pero si se manejan adecuadamente se pueden convertir en oportunidades que mejoren la www.controlchaos.com www.crystalmethodologies.org www.dsdm.org www.adaptivesd.com www.featuredrivendevelopment.com www.poppendieck.com Productividad del cliente. Su principal característica es introducir un mecanismo para implementar dichos cambios.
  • 10. CONCLUSIONES Toda metodología debe ser adaptada al contexto del proyecto (recursos técnicos y humanos, tiempo de desarrollo, tipo de sistema, etc. Históricamente, las metodologías tradicionales han intentado abordar la mayor cantidad de situaciones de contexto del proyecto, exigiendo un esfuerzo considerable para ser adaptadas, sobre todo en proyectos pequeños y con requisitos muy cambiantes. Las metodologías ágiles ofrecen una solución casi a medida para una gran cantidad de proyectos que tienen estas características. Una de las cualidades más destacables en una metodología ágil es su sencillez, tanto en su aprendizaje como en su aplicación, reduciéndose así los costos de implantación en un equipo de desarrollo. Esto ha llevado hacia un interés creciente en las metodologías ágiles. Sin embargo, hay que tener presente una serie de inconvenientes y restricciones para su aplicación, tales como: están dirigidas a equipos pequeños o medianos (Beck sugiere que el tamaño de los equipos se limite de 3 a 20 como máximo, otros dicen no más de 10 participantes). El entorno físico debe ser un ambiente que permita la comunicación y colaboración entre todos los miembros del equipo durante todo el tiempo, cualquier resistencia del cliente o del equipo de desarrollo hacia las prácticas y principios puede llevar al proceso al fracaso (el clima de trabajo, la colaboración y la relación contractual son claves), el uso de tecnologías que no tengan un ciclo rápido de realimentación o que no soporten fácilmente el cambio, etc.