1 / 20

Ingeniería de Software

Ingeniería de Software. Ciclos de vida ágiles. eXtreme Programming. Es una metodología ágil que plantea: Iteraciones cortas Entregables periódicos Colaboración con el cliente full time Herramientas y buenas prácticas para mejorar la calidad y la eficiencia. XP - Valores.

warner
Download Presentation

Ingeniería de Software

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Ingeniería de Software Ciclos de vida ágiles

  2. eXtremeProgramming • Es una metodología ágil que plantea: • Iteraciones cortas • Entregables periódicos • Colaboración con el cliente full time • Herramientas y buenas prácticas para mejorar la calidad y la eficiencia

  3. XP - Valores • Los Valores originales de XP son: • simplicidad • comunicación • retroalimentación (feedback) • coraje • respeto, fue añadido en la segunda edición de XP Explained.

  4. XP - Iteraciones

  5. XP - Buenas prácticas • Planning incremental • Releases cortas • Diseño simple • TestDrivenDevelopment + Full test coverage • Refactoring • Pair Programming • Building continuo • Collective ownership • Retrospectives • Stand-up meetings • Demos • Documentacióntardía • Risk Management

  6. XP – User stories (US) • Los requerimientos se plantean en forma de User Stories, o escenarios, los desarrolladores parten estos escenarios en múltiples tareas para ser estimadas. • Deben ser priorizados por el cliente. • Tienen la descripción de alto nivel de una necesidad del sistema, no una descripción detallada. • Cuando se desarrolle la historia, en paralelo se hace: • Análisis: el cliente provee la información necesaria • Diseño: se busca diseño simple • Programación: se busca código fácil de refactorizar • Testing: el desarrollador escribe testsunitarios automatizados • Producción: una vez “buildeado” el código debe ser funcional

  7. XP – User stories (US) • Las US deben por sí mismas contener las condiciones de aceptación de las mismas • Las US no son sólo requerimientos funcionales, también incluyen: • Tareas de documentación que le agregan valor al cliente • Requerimientos no funcionales • Bugs • Tareas que agregan valor de manera indirecta: reuniones, cursos, investig.

  8. XP – ArchitecturalSpike / ExplorationPhase / ReleasePlanning • No esunaiteración, se trata de explorarelementos de la soluciónqueparecenrelevantespara el aúnlimitadoconocimientoque se tiene del problema. • Se puedehacer un prototipoparaatacar los riesgosmasimportantes. • Intentaidentificarlasáreas de máximoriesgo, paraestimarlascorrectamente

  9. XP – Testing • Para que XP funcione correctamente se necesita, no sólo testers, sino los mismos desarrolladores deben asegurar el buen funcionamiento luego de cambios: • Testing automatizado • TDD • Full Test coverage • El cliente debe ayudar a definir las condiciones de aceptación, esto se debe hacer cuando se está por empezar a desarrollar la historia no antes ni después.

  10. XP – Pairprogramming • En XP, los programadores deberían trabajar de a pares. Si bien a primera instancia esto parece reducir la performance, permite: • Mejorar la calidad del código (mejor entendibilidad, menos cantidad de  defectos, mejor diseño) • Mejora el collectiveownership • Todo el código es revisado • Sirve para que los desarrolladores más expertos trabajen en pares con los menos expertos

  11. XP – Ventajas / Desventajas • Ventajas • Se genera un buen ambiente de trabajo • El modelo está pensado para reaccionar ante cambios, se disminuye la burocracia y el overhead • Se genera una buena calidad de código • Se entienden mejor los requerimientos al tener un cliente en el equipo • Se puede incorporar de a poco en el proceso • Desventajas • Al poner énfasis en la gente vs proceso, se necesita buscar personas con buen skill • Es difícil establecer contratos rígidos y el cliente debe proveer un experto para proveer los requerimientos • Requiere cambios culturales importantes

  12. Scrum • El foco en Scrum es establecer condiciones para administrar correctamente las iteraciones • Se definen 3 etapas en Scrum: • Etapa inicial: donde se especifica las tareas a realizar y la arquitectura • Ciclos de sprint: cada sprint realiza un incremento al sistema • Fin de proyecto: se termina la documentación y se hace un review de cómo salió el proyecto

  13. Sprint cycle • Un sprint es una iteración de entre 2 y 4 semanas • Se define un backlog (un conjunto de todos los issues a realizar) • Al principio de la iteracion se seleccionan del backlog todos los stories a realizar • Los desarrolladores dividen y organizan las tareas a realizar sin intervención de clientes • Se define un ScrumMaster que se relaciona con el cliente, el resto del equipo no se relaciona • Al final se revisa la iteración y los clientes tienen acceso al software

  14. Dailymeetings • Se realizan reuniones de 15 minutos donde están todos los desarrolladores hablan sobre qué estuvieron haciendo, mejorando las relaciones en el equipo y permitiendo ayudar a resolver problemas

  15. Diferencias entre Scrum y XP • Scrum provee niveles de planificación y especifica roles y responsabilidades, en XP el foco esta en las herramientas de desarrollo • Scrum requiere userstories detalladas dado que el cliente no interactúa una vez iniciado el Sprint, en XP es requerido que el cliente sea accesible siempre

  16. Comparación

  17. Comparación

  18. Preguntas

  19. Sugerencias

  20. Aplausos

More Related