Upload
others
View
5
Download
0
Embed Size (px)
Citation preview
Metodologías Ágiles de Desarrollo de SoftwareDomingo Gallardo, DCCIA, Univ. Alicante
Fundamentos de las metodologías ágilesSesión 3
Metodologías Ágiles de Desarrollo de SoftwareDomingo Gallardo, DCCIA, Univ. Alicante
Manifiesto ágil
Metodologías Ágiles de Desarrollo de SoftwareDomingo Gallardo, DCCIA, Univ. Alicante
Manifiesto ágil
Metodologías Ágiles de Desarrollo de SoftwareDomingo Gallardo, DCCIA, Univ. Alicante
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
4
Metodologías Ágiles de Desarrollo de SoftwareDomingo Gallardo, DCCIA, Univ. Alicante
Autores
• Kent Beck (Twitter, Web)
• Mike Beedle• Arie van Bennekum• Alistair Cockburn (Web)
• Ward Cunningham• Martin Fowler (Twitter, Web,
ThoughtWorks)
• James Grenning• Jim Highsmith• Andrew Hunt (Pragmatic
Programmer)
• 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)
5
Metodologías Ágiles de Desarrollo de SoftwareDomingo Gallardo, DCCIA, Univ. Alicante
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
6
Metodologías Ágiles de Desarrollo de SoftwareDomingo Gallardo, DCCIA, Univ. Alicante
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.
7
Metodologías Ágiles de Desarrollo de SoftwareDomingo Gallardo, DCCIA, Univ. Alicante
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.
8
Metodologías Ágiles de Desarrollo de SoftwareDomingo Gallardo, DCCIA, Univ. Alicante
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.
9
Metodologías Ágiles de Desarrollo de SoftwareDomingo Gallardo, DCCIA, Univ. Alicante
Los 12 principios del manifiesto ágil
11. The best architectures, requirements, and designs emerge from self-organizing teams.
12. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.
10
Metodologías Ágiles de Desarrollo de SoftwareDomingo Gallardo, DCCIA, Univ. Alicante
Principios Lean
Metodologías Ágiles de Desarrollo de SoftwareDomingo Gallardo, DCCIA, Univ. Alicante
¿En qué se parece una fábrica y un proyecto software?
12
Mary Poppendieck - Lean Software Development, Tutorial 2007
Metodologías Ágiles de Desarrollo de SoftwareDomingo Gallardo, DCCIA, Univ. Alicante
El desarrollo de software como construcción de un producto• Entradas
• Nuevas características (features) en forma de casos de uso, historias de usuario, etc.
• Salida• 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
13
Metodologías Ágiles de Desarrollo de SoftwareDomingo Gallardo, DCCIA, Univ. Alicante
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 startups14
Metodologías Ágiles de Desarrollo de SoftwareDomingo Gallardo, DCCIA, Univ. Alicante
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 re-
aprender
15
Metodologías Ágiles de Desarrollo de SoftwareDomingo Gallardo, DCCIA, Univ. Alicante
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
16
Metodologías Ágiles de Desarrollo de SoftwareDomingo Gallardo, DCCIA, Univ. Alicante
¿Qué es valor?
Mary Poppendieck - Lean Software Development, Tutorial 2007
17
Metodologías Ágiles de Desarrollo de SoftwareDomingo Gallardo, DCCIA, Univ. Alicante
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)
18
Metodologías Ágiles de Desarrollo de SoftwareDomingo Gallardo, DCCIA, Univ. Alicante
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
19
Metodologías Ágiles de Desarrollo de SoftwareDomingo Gallardo, DCCIA, Univ. Alicante
Kanban
• Una de las herramientas más importantes para organizar el proceso de producción son laskanban (del japonés,kan=visual y ban = tableroo 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
20
Metodologías Ágiles de Desarrollo de SoftwareDomingo Gallardo, DCCIA, Univ. Alicante
Kanban
Toyota Just-in-Time Kanban System
21
Metodologías Ágiles de Desarrollo de SoftwareDomingo Gallardo, DCCIA, Univ. Alicante
Tableros kanban en el desarrollo de software
Henrik Kniberg - Lean from the Trenches
22
Metodologías Ágiles de Desarrollo de SoftwareDomingo Gallardo, DCCIA, Univ. Alicante
Lecturas
• Manifiesto ágil, 2001• Ken Beck, Learning from Lean• Entrevista con Mary Poppendieck, An introduction to Lean Software
Development, 2004
23