INSTITUTO TECNOLÓGICO DE            PARRAL           Desarrollo Ágil     Reingeniería de softwareTitular: LI. Diana Estela...
Desarrollo ÁgilReingeniería de Software
¿Qué es?• La ingeniería de software ágil combina una  filosofía con un conjunto de lineamientos de  desarrollo.La filosofí...
¿Qué es? (2)Los lineamientos de desarrollo enfatizan:  – Entrega sobre análisis y diseño.  – Comunicación activa con el cl...
¿Quién lo hace?  Los ingenieros de software y otros  participantes en el proyecto:• Gerentes.• Clientes.• Usuarios finales...
¿Por qué es importante?El ámbito moderno de negocios que generasistemas basados en computadora yproductos de software evol...
¿Cuáles son los pasos?• Comunicación.• Planeación.• Modelado.• Construcción.• Despliegue.
¿Cómo me aseguro de que se hiso            bien?El trabajo estará bienhecho si el equipo ágilconcuerda en que elproceso fu...
Software Hoy en Día• Mito: Los  programadores de  ahora ya no  programan como los  de antes.• Herramientas más  fáciles y ...
Metodologías Ágiles• Siguen desarrollando las mismas actividades  del proceso de desarrollo de software, sólo  difieren en...
Manifiesto Ágil1. Al individuo y las interacciones en el equipo de desarrollo   más que a las actividades y las herramient...
Beneficios• Es más adecuada para los cambios  reduciendo los errores (costos) y logrando  la satisfacción de los clientes ...
Método Tradicional vs ÁgilMetodología Ágil                                                Metodología TradicionalPocos Art...
Metodologías Ágiles• Las dos principales metodologías ágiles  son scrum y XP (eXtreme Programming).• Cualquiera que fuera ...
XP• Es una metodología idónea para equipos de  desarrollo pequeños menores a 10 personas.• Se caracteriza por ser una meto...
XP• La comunicación se da de  manera     muy     informal,  generalmente verbal.• Las metodologías ágiles se  preocupan po...
XP• Los actores que participan en el desarrollo de  software son:• Programador: responsable de decisiones técnicas y  de c...
XP• Entrenador (Coach): es el líder del equipo.  Tiende a estar en un segundo plano a  medida que el equipo madura• Rastre...
XP• El proceso de desarrollo en XP se puede resumir como:Mientras(sistema_es_útil) {   Captar requisitos  User Stories  Me...
XP• XP es una metodología muy utilizada pero  como todo tiene también sus puntos débiles.  Entre ellos que pocos son los q...
XP• Las metodologías ágiles se caracterizan por  fomentar valores como:•   Comunicación•   Simplicidad•   Retroalimentació...
Artefactos en XP• Historias del Usuario• Tareas de Ingeniería• Pruebas de Aceptación• Pruebas Unitarias y de Integración• ...
Clima de Trabajo• Espacio abierto• Mesas centrales• Cubículos en el espacio exterior
Clima de Trabajo• Reunión diaria: “Stand-up Meeting”  – Todo el equipo  – Problemas  – Soluciones• De pie en un círculo  –...
Scrum• Es otra metodología ágil que  entre sus principales  características están:• Desarrollo de software por  medio de i...
Scrum• Los actores que intervienen en esta  metodología son:•   Propietarios del producto.•   Usuarios del producto.•   Sc...
Scrum
Scrum• Los sprints son la base del desarrollo en  scrum, consisten en una serie de actividades  previamente definidas en u...
ScrumEjemplo de Product Backlog
Scrum• Sprint planning meeting: reunión que se  realiza antes de cada Sprint.• Se hace conjuntamente con el Propietario  d...
Scrum• Revisión del sprint: se realiza al final de  cada Sprint.• Se deben reunir el propietario de la  aplicación los usu...
Scrum• Product owner:• Definir la funcionalidad del producto• Decidir las fechas de liberación y el  contenido (release)• ...
Scrum• ¿Quiénes son products owner?•   Analista•   Tester•   Usuario final•   Cliente•   Product Manager
Scrum• Un rol de suma importancia en esta  metodología es el escuchar.• Muchos problemas de desarrollo se  pueden solucion...
Conclusiones• Las metodologías ágiles no son nada nuevo  bajo el sol.• Se tienen que “tropicalizar” las metodologías  para...
Conclusiones• El proceso de desarrollo de software es un  proceso socio tecnológico.• Para poder aprender la metodología s...
Conclusiones• Si el usuario final y/o clientes no colaboran  es sumamente difícil aplicar la  metodología.• Se debe aplica...
Conclusiones• Se siguen realizando el mismo proceso de  desarrollo de software sólo cambia la forma.• No importa que metod...
Upcoming SlideShare
Loading in …5
×

Desarrollo ágil

627 views
559 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
627
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
29
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Desarrollo ágil

  1. 1. INSTITUTO TECNOLÓGICO DE PARRAL Desarrollo Ágil Reingeniería de softwareTitular: LI. Diana Estela Parra Flores.Elaborado por:Fredy Ponce HolguínIván Arturo Gardea Porras.
  2. 2. Desarrollo ÁgilReingeniería de Software
  3. 3. ¿Qué es?• La ingeniería de software ágil combina una filosofía con un conjunto de lineamientos de desarrollo.La filosofía pone el énfasis en: – La satisfacción del cliente. – Entrega rápida del software incremental – Equipos pequeños y muy motivados. – Sencillez general en el desarrollo.
  4. 4. ¿Qué es? (2)Los lineamientos de desarrollo enfatizan: – Entrega sobre análisis y diseño. – Comunicación activa con el cliente. – Comunicación continua con el cliente.
  5. 5. ¿Quién lo hace? Los ingenieros de software y otros participantes en el proyecto:• Gerentes.• Clientes.• Usuarios finales.Que forman un equipo con organización propia y que controlan su propio destino.
  6. 6. ¿Por qué es importante?El ámbito moderno de negocios que generasistemas basados en computadora yproductos de software evoluciona rápida yconstantemente. La ingeniería de softwareágil representa una alternativa razonable a laingeniería de software convencional paraciertas clases de SW.
  7. 7. ¿Cuáles son los pasos?• Comunicación.• Planeación.• Modelado.• Construcción.• Despliegue.
  8. 8. ¿Cómo me aseguro de que se hiso bien?El trabajo estará bienhecho si el equipo ágilconcuerda en que elproceso funciona y en queproduce incrementos desoftware utilizables quesatisfagan al cliente.
  9. 9. Software Hoy en Día• Mito: Los programadores de ahora ya no programan como los de antes.• Herramientas más fáciles y productivas• El software es cada día más complejo
  10. 10. Metodologías Ágiles• Siguen desarrollando las mismas actividades del proceso de desarrollo de software, sólo difieren en la forma de hacerlo.• Las Metodologías Ágiles se fundamentan en 4 principios básicos (manifiesto ágil):• Al individuo y las interacciones en el equipo de desarrollo más que a las actividades y las herramientas.
  11. 11. Manifiesto Ágil1. 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. 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.
  12. 12. Beneficios• Es más adecuada para los cambios reduciendo los errores (costos) y logrando la satisfacción de los clientes Tradicional Costo del cambio Suposición MAs tiempo
  13. 13. Método Tradicional vs ÁgilMetodología Ágil Metodología TradicionalPocos Artefactos. El modelado es prescindible, modelos Más Artefactos. El modelado es esencial, mantenimiento dedesechables. modelos.Pocos Roles, más genéricos y flexibles. Más Roles, más específicos.No existe un contrato tradicional, debe ser bastante Existe un contrato prefijado.flexible.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 Aplicables a proyectos de cualquier tamaño, pero suelen serfrecuentes), equipos pequeños (< 10 integrantes) y especialmente efectivas/usadas en proyectos grandes y contrabajando en el mismo sitio. equipos posiblemente dispersos.La arquitectura se va definiendo y mejorando a lo largo del Se promueve que la arquitectura se defina tempranamenteproyecto. en el proyecto.Énfasis en los aspectos humanos: el individuo y el trabajo en Énfasis en la definición del proceso: roles, actividades yequipo . artefactos.Se esperan cambios durante el proyecto. Se espera que no ocurran cambios de gran impacto durante el proyecto.
  14. 14. Metodologías Ágiles• Las dos principales metodologías ágiles son scrum y XP (eXtreme Programming).• Cualquiera que fuera el método ágil debe de cumplir con el manifiesto ágil.• Scrum es certificable mientras que XP no lo es, pero muchos equipos de desarrollo la manejan ampliamente.
  15. 15. XP• Es una metodología idónea para equipos de desarrollo pequeños menores a 10 personas.• Se caracteriza por ser una metodología “ligera” (excluye todo lo que no sirve dejando la esencia o “sabor” de las cosas).• Se centra en la implementación (codificación) por lo que es ideal para entornos dinámicos.
  16. 16. XP• La comunicación se da de manera muy informal, generalmente verbal.• Las metodologías ágiles se preocupan por inculcar valores y XP no es la excepción, sus principales valores son: comunicación, simplicidad, retroalimentación y coraje.
  17. 17. XP• Los actores que participan en el desarrollo de software son:• Programador: responsable de decisiones técnicas y de construir el sistema. No hay distinción entre analistas, diseñadores o codificadores. Es decir, en XP los programadores modelan, codifican y prueban.• Clientes: son parte del sistema, determinar que construir y cuando, realizan test para determinar cuando algo está completo.
  18. 18. XP• Entrenador (Coach): es el líder del equipo. Tiende a estar en un segundo plano a medida que el equipo madura• Rastreador (Tracker): también llamado Metric Man, se encarga de observar sin molestar, debe conservar datos históricos.• Probador (Tester): Ayuda al cliente con las pruebas funcionales.
  19. 19. XP• El proceso de desarrollo en XP se puede resumir como:Mientras(sistema_es_útil) { Captar requisitos User Stories Methaphor Planificar Release planning Iteration planning Desarrollar Programming Presentar la entrega Releasing}
  20. 20. XP• XP es una metodología muy utilizada pero como todo tiene también sus puntos débiles. Entre ellos que pocos son los que utilizan la metodología completa.• A continuación se muestran y se explican las prácticas que componen a la Programación Extrema.• XP no es sólo tirar líneas de código fuente
  21. 21. XP• Las metodologías ágiles se caracterizan por fomentar valores como:• Comunicación• Simplicidad• Retroalimentación• Coraje• Para muchas empresas es más importante las actitudes que las aptitudes.
  22. 22. Artefactos en XP• Historias del Usuario• Tareas de Ingeniería• Pruebas de Aceptación• Pruebas Unitarias y de Integración• Plan de la Entrega• Código
  23. 23. Clima de Trabajo• Espacio abierto• Mesas centrales• Cubículos en el espacio exterior
  24. 24. Clima de Trabajo• Reunión diaria: “Stand-up Meeting” – Todo el equipo – Problemas – Soluciones• De pie en un círculo – Evitar discusiones largas – Sin conversaciones separadas
  25. 25. Scrum• Es otra metodología ágil que entre sus principales características están:• Desarrollo de software por medio de iteraciones (Sprints).• Indicado para proyectos con un rápido cambio de requerimientos.• Gran protagonismo de reuniones a lo largo del proyecto.
  26. 26. Scrum• Los actores que intervienen en esta metodología son:• Propietarios del producto.• Usuarios del producto.• Scrum máster .• Equipo de scrum.
  27. 27. Scrum
  28. 28. Scrum• Los sprints son la base del desarrollo en scrum, consisten en una serie de actividades previamente definidas en un lapso de 30 días.• El product backlog es la lista de las tareas a realizar durante todo el proyecto. No es una lista fija. Se prioriza las tareas según los requisitos de los usuarios o del propietario de la aplicación.
  29. 29. ScrumEjemplo de Product Backlog
  30. 30. Scrum• Sprint planning meeting: reunión que se realiza antes de cada Sprint.• Se hace conjuntamente con el Propietario del producto el Scrum Master y el equipo Scrum.• Enfocar la reunión hacia los requisitos más prioritarios.
  31. 31. Scrum• Revisión del sprint: se realiza al final de cada Sprint.• Se deben reunir el propietario de la aplicación los usuarios así como el Scrum Master y su equipo , además también es recomendable que acudan ingenieros de otros proyectos para dar su punto de vista.
  32. 32. Scrum• Product owner:• Definir la funcionalidad del producto• Decidir las fechas de liberación y el contenido (release)• Aceptar o rechazar el producto• Responsable del ROI
  33. 33. Scrum• ¿Quiénes son products owner?• Analista• Tester• Usuario final• Cliente• Product Manager
  34. 34. Scrum• Un rol de suma importancia en esta metodología es el escuchar.• Muchos problemas de desarrollo se pueden solucionar fácilmente si se escucha a los clientes, usuarios finales y equipos de desarrollo.
  35. 35. Conclusiones• Las metodologías ágiles no son nada nuevo bajo el sol.• Se tienen que “tropicalizar” las metodologías para su buen funcionamiento.• Existe una fuerte discusión en la academia sobre si enfocarse a las metodologías ágiles o no (al final de cuentas se debe entender el proceso).
  36. 36. Conclusiones• El proceso de desarrollo de software es un proceso socio tecnológico.• Para poder aprender la metodología se necesita vivirla (se necesitan “horas de vuelo”).• Las metodologías ágiles son muy buenas cuando se domina el proceso en general.
  37. 37. Conclusiones• Si el usuario final y/o clientes no colaboran es sumamente difícil aplicar la metodología.• Se debe aplicar métodos ágiles si se tienen procesos bien definidos pero no funcionan de manera adecuada frente a los campos o bien, el equipo de desarrollo no está a gusto.
  38. 38. Conclusiones• Se siguen realizando el mismo proceso de desarrollo de software sólo cambia la forma.• No importa que metodología se utilice solo hay que llevarlo a la práctica como toda una verdadera disciplina.• La agilidad no cuesta. Lo único constante es el cambio.

×