El documento describe varios métodos de desarrollo de software ágil como Programación Extrema (XP) y Scrum. El desarrollo ágil se basa en el desarrollo iterativo e incremental donde los requisitos y soluciones evolucionan a través de la colaboración. Scrum es adecuado para proyectos con requisitos inestables que requieren rapidez y flexibilidad, mientras que XP se enfoca en planeación, diseño, codificación y pruebas.
2. Estado del Arte
Estamos descubriendo formas mejores de desarrollar
software, por medio de intentarlo una y otra vez.
Este trabajo nos ha hecho valorar:
➔ Los individuos y sus interacciones.
➔ El software que funciona, más que la documentación
exhaustiva.
➔ La colaboración con el cliente.
➔ Responder con éxito al cambio.
3. Desarrollo Ágil?
Son métodos basados en el desarrollo iterativo e
incremental, donde los requisitos y soluciones
evolucionan mediante la colaboración.
Sus principales objetivos son:
1. La satisfacción del cliente.
2. La entrega rápida de software incremental.
3. Los equipos pequeños y muy motivados.
4. La rápida entrega, sobre el análisis y el diseño.
5. La comunicación entre desarrolladores y clientes.
4. Desarrollo Ágil
➔ Existen muchos métodos de desarrollo ágil; la
mayoría minimiza riesgos desarrollando software en
lapsos cortos.
➔ El software desarrollado en una unidad de tiempo es
llamado una iteración.
➔ El desarrollo Ágil se ha convertido en una palabra
mágica y comercial en los sistemas modernos.
5. Características de un Proceso Ágil.
1. Difícil predecir los requerimientos del cliente.
2. Es difícil pronosticar cómo cambiarán las
prioridades a medida que avanza el proyecto.
3. El diseño y la construcción deben ejecutarse en
forma simultánea, de modo que los modelos de
diseño se prueben a medida que se crean.
6. PROGRAMACIÓN EXTREMA (XP)
Es una metodología de desarrollo que engloba un
conjunto de recomendaciones, que ocurren en el
contexto de cuatro actividades estructurales:
1. Planeación
2. Diseño
3. Codificación
4. Pruebas
7. 1.Planeación.
➔ Es la actividad para recabar requerimientos.
Permite que los miembros del equipo entiendan el
contexto del negocio.
➔ Escuchar lleva a la creación de “historias del
usuario”, que describen las características del
software que se va a elaborar.
8. 2.Diseño.
➔ El diseño XP sigue rigurosamente el principio de
“mantenlo sencillo”.
➔ El diseño guía la implementación de una historia.
➔ Se posterga el diseño de funcionalidades extras.
➔ El diseño puede modificarse continuamente a
medida que avanza la construcción.
9. 3.Codificación
➔ Una vez que contamos con las historias, se
planifican las pruebas unitarias que se van a incluir.
➔ Una vez creada la prueba unitaria, el desarrollador
está mejor capacitado para codificar.
Una vez que el código está listo, se le aplica de
inmediato la prueba unitaria, con lo que se obtiene
retroalimentación instantánea.
10. 4.Pruebas.
➔ Se recomienda la implementación de pruebas
automatizadas.
➔ Se recomienda una estrategia con posibilidad de
regresión siempre que se modifique el código.
11. Scrum
Fue identificado y definido por Jeff Sutherland,
comparando con el avance en formación de los
jugadores de Rugby.
Es apropiada para proyectos con requisitos inestables y
para los que requieren rapidez y flexibilidad, situaciones
frecuentes en el desarrollo de determinados sistemas de
software.
12. Características de Scrum.
1. Se adopta una estrategia de desarrollo incremental,
en lugar de la planificación y ejecución completa del
producto.
2. La calidad del resultado se basa más en el
conocimiento del equipo, que en la calidad de los
procesos empleados.
3. Solapamiento de las diferentes fases del desarrollo,
en lugar de realizar una tras otra en un ciclo
secuencial o de cascada.
14. Scrum - Principales Roles
➔ ScrumMaster: Es el director de proyecto,
➔ Product Owner: representa a los stakeholders
(interesados externos o internos).
➔ Team: desarrolladores.
16. Scrum - Partes
Retraso: es la lista de prioridades de los requerimientos
del proyecto que dan al cliente un valor del negocio. El
ScrumMaster evalúa el retraso y actualiza las
prioridades según se requiera.
Sprints: son unidades tiempo de trabajo que se
necesitan para alcanzar un requerimiento definido en el
retraso.
Durante el sprint no se introducen cambios.
17. Reuniones de Scrum
Son reuniones breves (de 15 minutos) que el equipo
efectúa a diario. Hay tres preguntas clave:
➔ ¿Qué hiciste desde la última reunión del equipo?
➔ ¿Qué obstáculos estás encontrando?
➔ ¿Qué planeas hacer mientras llega la siguiente
reunión del equipo?
El objetivo de la reunión es “socializar el conocimiento”
18. ¿Por qué usar Scrum en la Actualidad?
Beedle y sus colegas afirman:
“Scrum supone de entrada la existencia de caos”
Los patrones de proceso Scrum permiten que un equipo
trabaje con éxito en un mundo en el que es imposible
eliminar la incertidumbre.
19. Otros Modelos Ágiles
La historia de la I.S. está salpicada de decenas de
métodos de desarrollo.
Cada uno tuvo notoriedad y luego fue eclipsado por algo
nuevo.
En los últimos años se han propuesto:
➔ Desarrollo adaptativo de software (DAS)
➔ Cristal
➔ Desarrollo impulsado por las características (DIC)
➔ Desarrollo esbelto de software (DES)
➔ Modelado ágil (MA)
20. Conclusiones
➔ En una economía moderna, las condiciones del
mercado cambian con rapidez, los clientes y usuarios
finales necesitan evolucionar y surgen nuevas
amenazas competitivas sin aviso previo.
➔ Los profesionales deben enfocar la ingeniería de
software en forma que les permita mantenerse ágiles
para definir procesos maniobrables y adaptativos,
que satisfagan las necesidades de los negocios
modernos.
21. 1.¿Qué es el Desarrollo Ágil?
2.¿Cuáles son: características de un Proceso Ágil?
3.¿Qué es la Programación Extrema?
4.¿Cómo es la actividad de Diseño en XP? (Programación
Extrema)
5.¿En qué casos recomienda usted, utilizar Scrum?
6.¿Cuáles son características de SCRUM?
7.¿Cómo son las reuniones Scrum?
8.¿Por qué se recomienda utilizar Scrum en la actualidad?
Responder aquí
Preguntas