3.desarrollo ágil

20
3.Desarrollo Ágil Ramiro Estigarribia Canese

Upload: ramiro-estigarribia-canese

Post on 14-Apr-2017

280 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: 3.desarrollo ágil

3.Desarrollo Ágil

Ramiro Estigarribia Canese

Page 2: 3.desarrollo ágil

Estado del ArteEstamos 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.

Page 3: 3.desarrollo ágil

¿Qué es la I.S. Ágil?Son métodos de ingeniería del software 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.

Page 4: 3.desarrollo ágil

I.S. Á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.

Page 5: 3.desarrollo ágil

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.

Page 6: 3.desarrollo ágil

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ón2. Diseño3. Codificación4. Pruebas.

Page 7: 3.desarrollo ágil

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.

Page 8: 3.desarrollo ágil

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.

Page 9: 3.desarrollo ágil

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.

Page 10: 3.desarrollo ágil

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.

Page 11: 3.desarrollo ágil

ScrumFue 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.

Page 12: 3.desarrollo ágil

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.

Page 13: 3.desarrollo ágil

Solapamiento de Fases del Desarrollo

Page 14: 3.desarrollo ágil

Scrum - Principales Roles➔ ScrumMaster: mantiene los procesos y trabaja de

forma similar al director de proyecto,➔ Product Owner: representa a los stakeholders

(interesados externos o internos).➔ Team: desarrolladores.

Page 15: 3.desarrollo ágil

SCRUM

Page 16: 3.desarrollo ágil

Scrum - PartesRetraso: 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.

Page 17: 3.desarrollo ágil

Reuniones de ScrumSon 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”

Page 18: 3.desarrollo ágil

¿Por qué utilizar Scrum?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.

Page 19: 3.desarrollo ágil

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)

Page 20: 3.desarrollo ágil

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.