1.2 Manifiesto ágil Tema 1: Fundamentos de las metodologías ágiles Metodologías Ágiles de Desarrollo de Software Domingo Gallardo, DCCIA, Univ. Alicante, 2014-15 Manifiesto ágil Metodologías Ágiles de Desarrollo de Software Domingo Gallardo, DCCIA, Univ. Alicante, 2014-15 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 • Reunión previa en 2000 en un workshop organizado por Kent Beck para hablar de XP • En febrero de 2001 un grupo de 17 desarrolladores muy activos en estas nuevas metodologías denominadas ligeras (lightweight) se reunieron en el resort de Snowbird (Utah), convocados por Bob Martin, Martin Fowler y Alistair Cockburn • La idea inicial era entender mejor los enfoques de cada uno, pero Bob Martin preparó un borrador de documento (manifiesto) que se discutió entre todos. Se acordó el apartado de los “valores” y se encontró un nombre “paraguas” para este conjunto de técnicas: ágiles. Metodologías Ágiles de Desarrollo de Software Domingo Gallardo, DCCIA, Univ. Alicante, 2014-15 Manifiesto ágil 3 Autores • • • • • • • • • Kent Beck (Twitter, Web) Mike Beedle Arie van Bennekum Alistair Cockburn (Twitter, Web) Ward Cunningham (Twitter) Martin Fowler (Twitter, Web) 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) Metodologías Ágiles de Desarrollo de Software Domingo Gallardo, DCCIA, Univ. Alicante, 2014-15 Manifiesto ágil 4 Valores, principios y prácticas (1) • • • • 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 principios y valores que son los que hay que tratar de conseguir Si se intenta copiar las prácticas sin aplicar los principios subyacentes se caerá en la repetición vacía y en “rituales ágiles” que son cualquier cosa menos ágiles • Daily scrum zombies (Henrik Kniberg) • Tableros de Kanban con tareas vacías que se eternizan • Un principio fundamental de estas prácticas: mejorar la transparencia (qué ha hecho quién) Para que las prácticas sean efectivas, los principios y valores deben ser compartidos por toda la organización, no sólo por el equipo de desarrollo de software Metodologías Ágiles de Desarrollo de Software Domingo Gallardo, DCCIA, Univ. Alicante, 2014-15 Brodzinski - Values, Principles, Practices Manifiesto ágil 5 Valores, principios y prácticas (2) • Los valores y principios son generales y se pueden aplicar a múltiples situaciones, las prácticas son concretas y se aplican en contextos restringidos • Valor: interacción y comunicación • Prácticas: demostración del producto, reuniones diarias, pair programming • Tan malo es prácticas sin valores como valores sin prácticas: hay quienes hablan de Ágil (con mayúsculas) como si se tratara de una religión, pero no terminan de aplicar ni definir ninguna práctica • Para ser un buen jardinero hay que dominar las prácticas de la jardinería (plantar, podar, regar, …) y entender el funcionamiento profundo de un jardín (los valores) Metodologías Ágiles de Desarrollo de Software Domingo Gallardo, DCCIA, Univ. Alicante, 2014-15 Kent Beck - Extreme Programming Explained, 2004 Manifiesto ágil 6 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, 2014-15 Manifiesto ágil 7 Actividad (15 minutos) • Grupos de 4 personas: repartimos los valores de forma que cada grupo tenga un valor del manifiesto (pueden estar repetidos). Cada grupo: • Escribe 3 ejemplos de prácticas asociadas a cada uno de los valores • Escribe alguna anécdota o ejemplo concreto del mundo del desarrollo de software en el que no se haya cumplido el valore • Puesta en común Metodologías Ágiles de Desarrollo de Software Domingo Gallardo, DCCIA, Univ. Alicante, 2014-15 Manifiesto ágil 8 Los 12 principios del manifiesto ágil • Los leemos en voz alta, y explicamos lo que entendemos por ese principio, poniendo algún ejemplo de alguna práctica basada en él 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, 2014-15 Manifiesto ágil 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, 2014-15 Manifiesto ágil 10 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. Metodologías Ágiles de Desarrollo de Software Domingo Gallardo, DCCIA, Univ. Alicante, 2014-15 Manifiesto ágil 11 Actividad • Grupos de 4 personas, cada persona vota en secreto a 4 principios, se suman los votos y se eligen los 2 principios con más votos • El portavoz del grupo explica el resultado y las razones Metodologías Ágiles de Desarrollo de Software Domingo Gallardo, DCCIA, Univ. Alicante, 2014-15 Manifiesto ágil 12 Referencias y bibliografía avanzada • • • • • • Varios autores - Manifesto for Agile Software Develpment Martin Fowler - The new methodology Martin Fowler - Writing the Agile Manifesto Robert Martin - The Founding of the Agile Alliance Kent Beck - Extreme Programming Explained Second Edition, cap. 3 y 4 Jeff Sutherland - Agile Principles and Values Metodologías Ágiles de Desarrollo de Software Domingo Gallardo, DCCIA, Univ. Alicante, 2014-15 Manifiesto ágil 13