Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Fundamentos de las metodologías ágiles

2,067 views

Published on

Sesión 3 del curso Metodologías Ágiles de Desarrollo de Software de la Universidad de Alicante (http://www.dccia.ua.es/dccia/inf/asignaturas/MADS/2013-14)

Published in: Technology
  • Be the first to comment

Fundamentos de las metodologías ágiles

  1. 1. Fundamentos de las metodologías ágiles Sesión 3 Metodologías Ágiles de Desarrollo de Software
 Domingo Gallardo, DCCIA, Univ. Alicante
  2. 2. Manifiesto ágil Metodologías Ágiles de Desarrollo de Software
 Domingo Gallardo, DCCIA, Univ. Alicante
  3. 3. Manifiesto ágil Metodologías Ágiles de Desarrollo de Software
 Domingo Gallardo, DCCIA, Univ. Alicante
  4. 4. Año: 2001 • El manifesto ágil no representa la invención de las metologías ágiles, sino su presentación en sociedad • Muchas propuestas previas alternativas al modelo de cascada • • • • • Desarrollo en espiral, 1984 Rapid Aplication Development (RAD), 1991 Rational Unified Process (UP), 1994 Scrum, 1995 Extreme Programming, 1996 Metodologías Ágiles de Desarrollo de Software
 Domingo Gallardo, DCCIA, Univ. Alicante 4
  5. 5. Autores • • • • • • • • • Kent Beck (Twitter, Web) Mike Beedle Arie van Bennekum Alistair Cockburn (Web) Ward Cunningham Martin Fowler (Twitter, Web, ThoughtWorks) James Grenning Jim Highsmith • • • • • • • • Ron Jeffries (Twitter, Web) Jon Kern Brian Marick Robert C. Martin (Twitter) Steve Mellor Ken Schwaber (Scrum.org) Jeff Sutherland (Scrum.org) Dave Thomas (Pragmatic Programmer) Andrew Hunt (Pragmatic Programmer)
 Metodologías Ágiles de Desarrollo de Software
 Domingo Gallardo, DCCIA, Univ. Alicante 5
  6. 6. Valores, principios y prácticas • Las prácticas tienen sentido en el marco de un conjunto de valores y principios • Las metodologías ágiles no son dogmáticas, responden a unos valores que son los que hay que tratar de mantener Kent Beck - Extreme Programming Explained, 2004 Metodologías Ágiles de Desarrollo de Software
 Domingo Gallardo, DCCIA, Univ. Alicante 6
  7. 7. Los 4 valores del manifiesto ágil Valoramos: 1. Individuos e interacciones sobre procesos y herramientas 2. Software que funciona sobre documentación exahustiva 3. Colaboración con el cliente frente a negociación del contrato 4. Responder al cambio frente a seguir un plan Aunque los ítems de la derecha tienen valor, valoramos más los de la izquierda.
 Metodologías Ágiles de Desarrollo de Software
 Domingo Gallardo, DCCIA, Univ. Alicante 7
  8. 8. Los 12 principios del manifiesto ágil 1. Our highest priority is to satisfy the customer through early and continuous delivery of valuable software. 2. Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage. 3. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale. 4. Business people and developers must work together daily throughout the project. 5. Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done. Metodologías Ágiles de Desarrollo de Software
 Domingo Gallardo, DCCIA, Univ. Alicante 8
  9. 9. Los 12 principios del manifiesto ágil 6. The most efficient and effective method of conveying information to and within a development team is face-to-face conversation. 7. Working software is the primary measure of progress. 8. Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely. 9. Continuous attention to technical excellence and good design enhances agility. 10. Simplicity--the art of maximizing the amount of work not done--is essential. Metodologías Ágiles de Desarrollo de Software
 Domingo Gallardo, DCCIA, Univ. Alicante 9
  10. 10. Los 12 principios del manifiesto ágil 11. The best architectures, requirements, and designs emerge from selforganizing teams. 12. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly. Metodologías Ágiles de Desarrollo de Software
 10 Domingo Gallardo, DCCIA, Univ. Alicante
  11. 11. Principios Lean Metodologías Ágiles de Desarrollo de Software
 Domingo Gallardo, DCCIA, Univ. Alicante
  12. 12. ¿En qué se parece una fábrica y un proyecto software? Mary Poppendieck - Lean Software Development, Tutorial 2007 Metodologías Ágiles de Desarrollo de Software
 12 Domingo Gallardo, DCCIA, Univ. Alicante
  13. 13. El desarrollo de software como construcción de un producto • Entradas • • Salida • • Nuevas características (features) en forma de casos de uso, historias de usuario, etc. Software funcionando al que se le ha añadido las nuevas características Proceso • Cada característica debe ser analizada, desarrollada, probada, añadida y entregada Metodologías Ágiles de Desarrollo de Software
 13 Domingo Gallardo, DCCIA, Univ. Alicante
  14. 14. Sistema de producción de Toyota y fabricación lean • TPS (Toyota Production System), Taichi Ohno • Flujo de desarrollo just-in-time • Cultura de “parar la línea” • Mejora continua • Pensar en el conjunto • Da origen a los denominados sistemas de fabricación lean (lean = austero, flaco) • La idea central es la continua búsqueda y eliminación de los desperdicios (waste) generados por el proceso • Cuando se eliminan los desperdicios la calidad mejora, y el tiempo de producción y los costes se reducen y la producción se vuelve fluida (flow) • El término lean se ha popularizado: lean startups Metodologías Ágiles de Desarrollo de Software
 14 Domingo Gallardo, DCCIA, Univ. Alicante
  15. 15. Dos metáforas del desarollo de software • Dos metáforas poderosas que nos permiten entender mejor la actividad del desarrollo • • Desarrollo software como el proceso de fabricación de un producto Desarrollo software como el diseño de un producto que soluciona un problema • Es interesante tener siempre presente ambas metáforas • Los principios lean se pueden aplicar a ambos aspectos • Fabricación: optimizar el proceso identificando y eliminando lo innecesario • Diseño: extender el conocimiento y eliminar el desperdicio de reaprender Metodologías Ágiles de Desarrollo de Software
 15 Domingo Gallardo, DCCIA, Univ. Alicante
  16. 16. Eliminar los desperdicios (waste) • Desperdicio: cualquier cosa que no se utiliza y que no añade valor al producto final • Producir sólo lo necesario y en el momento en el que se necesita • • Si algo no se utiliza, no podemos darnos cuenta de sus fallos En el desarrollo de software hay mucha sobre-producción • • • • Demasiados requisitos para un release Demasiada arquitectura para las necesidades actuales Demasiado código para poder ser probado adecuadamente Demasiadas funcionalidades para el usuario final Metodologías Ágiles de Desarrollo de Software
 16 Domingo Gallardo, DCCIA, Univ. Alicante
  17. 17. ¿Qué es valor? Mary Poppendieck - Lean Software Development, Tutorial 2007 Metodologías Ágiles de Desarrollo de Software
 17 Domingo Gallardo, DCCIA, Univ. Alicante
  18. 18. Los 7 principios del desarrollo de software lean • Definidos por Mary Poppendieck ("Lean Software Development: An Agile Toolkit", 2003 y “Implementing Lean Software Development”, 2006) ! 1. Eliminar los desperdicios (Eliminate Waste) 2. Fomentar la calidad (Build Quality In) 3. Crear conocimiento (Create Knowledge) 4. Decidir lo más tarde posible (Defer Commitment) 5. Entregar rápido (Deliver Fast) 6. Respetar a la gente (Respect People) 7. Optimizar el conjunto (Optimize the Whole) Metodologías Ágiles de Desarrollo de Software
 18 Domingo Gallardo, DCCIA, Univ. Alicante
  19. 19. Sistemas de fabricación Pull • Uno de los pilares de la metodología Kanban • El flujo de trabajo se regula tirando (pull) de los materiales a transformar con una cadencia constante • Un sistema pull regula el flujo de los recursos mediante un proceso de fabricación reemplazando solo lo que ha sido consumido y lo que es inmediatamente entregable Metodologías Ágiles de Desarrollo de Software
 19 Domingo Gallardo, DCCIA, Univ. Alicante
  20. 20. Kanban • • Una de las herramientas 
 más importantes para 
 organizar el proceso de 
 producción son las
 kanban (del japonés,
 kan=visual y ban = tablero
 o tarjeta) Enfoque visual para el control de la producción, usando herramientas sencillas como contenedores retornables, tarjetas o incluso espacios vacíos para “tirar” de los productos desde los centros de producción hacia los centros de consumo o transformación
 ! ! ! • Una kanban es una señal o ayuda visual que indica que un centro de trabajo ha finalizado un proceso, necesita trabajo o necesita más materiales • Los tableros kanban permiten que los centros de trabajo hagan un seguimiento de las necesidades de los clientes o de los proveedores y que respondan rápida y adecuadamente Metodologías Ágiles de Desarrollo de Software
 20 Domingo Gallardo, DCCIA, Univ. Alicante
  21. 21. Kanban Toyota Just-in-Time Kanban System Metodologías Ágiles de Desarrollo de Software
 21 Domingo Gallardo, DCCIA, Univ. Alicante
  22. 22. Tableros kanban en el desarrollo de software Henrik Kniberg - Lean from the Trenches Metodologías Ágiles de Desarrollo de Software
 22 Domingo Gallardo, DCCIA, Univ. Alicante
  23. 23. Lecturas • • • Manifiesto ágil, 2001 Ken Beck, Learning from Lean Entrevista con Mary Poppendieck, An introduction to Lean Software Development, 2004 Metodologías Ágiles de Desarrollo de Software
 23 Domingo Gallardo, DCCIA, Univ. Alicante

×