1 / 56

Metodologías Ágiles

Metodologías Ágiles. Magister en Ingeniería de Software UNSL. Este curso. Se basa en el análisis critico de metodologías y procesos de desarrollo Trata detalladamente dos metodologías Ágiles

lonna
Download Presentation

Metodologías Ágiles

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. Metodologías Ágiles Magister en Ingeniería de Software UNSL Metodologías Ágiles - Maestría en Ingeniería de Software -UNSL

  2. Este curso • Se basa en el análisis critico de metodologías y procesos de desarrollo • Trata detalladamente dos metodologías Ágiles • Quizas el mayor desafío que Ustedes tienen es formar una opinión basada en evidencia acerca de las metodologías ágiles y rigurosas Metodologías Ágiles - Maestría en Ingeniería de Software -UNSL

  3. Aprobación • 15 % : Participación en clase • 25 % : Trabajos Prácticos • 60% : Trabajo de investigación + Presentación Metodologías Ágiles - Maestría en Ingeniería de Software -UNSL

  4. Objetivos de este modulo • Tener una interpretación propia basada en evidencia acerca de por qué surgieron las metodologías ágiles • Identificar fortalezas, debilidades, tendencias y preferencias en las metodologías robustas y ágiles Metodologías Ágiles - Maestría en Ingeniería de Software -UNSL

  5. Contenidos • Los inicios de la ingeniería de software • La crisis del software • Los procesos y modelos robustos • Los procesos y modelos ágiles • La gente Metodologías Ágiles - Maestría en Ingeniería de Software -UNSL

  6. Advertencia • Algunos puntos estarán interpretados, y Uds. son libres de tener una visión diferente • Esta presentación no es “completa” • La forma en que algunos temas se presentan pueden cuestionar algunos dogmas de la ingeniería de software Metodologías Ágiles - Maestría en Ingeniería de Software -UNSL

  7. El principio (sin ingeniería) Metodologías Ágiles - Maestría en Ingeniería de Software -UNSL

  8. Contexto histórico • La NATO declara la crisis del software en 1968, luego de crear el término Ingeniería de Software un año antes • Deming, procesos, calidad en el resto de la industria • Bill Curtis sobre variación entre programadores • Fred Brooks “The mythical man-month” • Gerald Weinberg “The psichology og programming” Metodologías Ágiles - Maestría en Ingeniería de Software -UNSL

  9. Contexto histórico • Evidencia de sectores no-software de una relación directa entre mejore procesos - mejores productos • Clean-pipe & Dirty water • Una de las premisas de CMM Metodologías Ágiles - Maestría en Ingeniería de Software -UNSL

  10. Contexto histórico • Contratos multimillonarios con el DoD • Necesidad de “certificar” proveedores Metodologías Ágiles - Maestría en Ingeniería de Software -UNSL

  11. Breve paréntesis • Durante Semana Santa, escuché una excelente interpretación del Requiem, de Mozart por parte de la Sinfónica de Córdoba. • Obviamente, la variación de cada uno de los individuos, o algunos en particular, con miembros de la Sinfónica de Londres, eran notables Metodologías Ágiles - Maestría en Ingeniería de Software -UNSL

  12. Breve paréntesis • El resultado final, sin embargo, era altamente comparable. Las diferencias se fundían en una excelente presentación, que dejó satisfechos a los aún mas exigentes • Era tan descabellado pensar que un equipo de desarrollo de 400 personas podía funcionar como una orquesta? Metodologías Ágiles - Maestría en Ingeniería de Software -UNSL

  13. CMM • Carneggie Mellon (por qué no el MIT? O Cal Tech?) • Bill Curtis • Mark Paulk • Watts Humphrey Metodologías Ágiles - Maestría en Ingeniería de Software -UNSL

  14. El modelo del SEI • Modelo IDEAL de process improvement • Ciclo clásico al estilo Demming, con una fase inicial de diagnóstico contra un modelo de referencia • CMM es el modelo de referencia • Los niveles, y el término madurez, son extraídos de Crosby (“Quality is Free”) Metodologías Ágiles - Maestría en Ingeniería de Software -UNSL

  15. Quality is free • La calidad se mide por el costo de reparar errores • Niveles de Crosby: • Uncertainty • Awakening • Enlightment • Wisdom • Certainty Metodologías Ágiles - Maestría en Ingeniería de Software -UNSL

  16. Estructura de CMM • Se pueden encontrar muchos tutoriales • 500 páginas de recomendaciones, aunque el modelo podría explicarse en 20 • Breve debate: El nombre de los niveles (Inicial, Repetible, Definido, Gerenciado, Optimizado) • Assessments de CMM (no auditorías, ni certificaciones) Metodologías Ágiles - Maestría en Ingeniería de Software -UNSL

  17. Otros modelos • Bajo la sombrilla de SPI (software process improvement) surgieron otros modelos • SPICE • ISO 9001 • El espíritu de CMM se desmerece en una certificación. Metodologías Ágiles - Maestría en Ingeniería de Software -UNSL

  18. Que se entiende por nivel Definido? Metodologías Ágiles - Maestría en Ingeniería de Software -UNSL

  19. Seriamente • CMM no es normativo, pero... • Características de un proceso robusto • Upfront planning • Requirements Management, en un sentido tradicional • Ciclos de vida waterfall, V-model • Métricas Metodologías Ágiles - Maestría en Ingeniería de Software -UNSL

  20. CMM y Producción en masa • Stock • Hand-off • Proceso con nivel decreciente en la necesidad de habilidades de los desarrolladores • Responsabilidad diluida en la organización Metodologías Ágiles - Maestría en Ingeniería de Software -UNSL

  21. Estructura de un Proceso de SW • Pipeline de fases ETVX • Cada fase tiene un entregable físico: documento de análisis, documento de diseño, etc • Planes detallados para las actividades de cada fase Metodologías Ágiles - Maestría en Ingeniería de Software -UNSL

  22. Los problemas de las metodologías rigurosas • Tolvanen, 1998 • overhead de proceso • métodos difíciles de usar y aprender • ambigüedad Metodologías Ágiles - Maestría en Ingeniería de Software -UNSL

  23. Los problemas de las metodologías rigurosas • Baskerville, Travis &Treux, 1992 • métodos orientados a proyectos grandes (realmente grandes) • falta de adaptabilidad Metodologías Ágiles - Maestría en Ingeniería de Software -UNSL

  24. Los problemas de las metodologías rigurosas • DeMarco & Lister, 1987 • la gente puede centrarse mas en la documentación que en el desarrollo real • no se asigna suficiente responsabilidad a los desarrolladores • falta de motivación Metodologías Ágiles - Maestría en Ingeniería de Software -UNSL

  25. Los problemas de las metodologías rigurosas • Bohem (2002) • enfoques rigurosos mas apropiados para sistemas críticos. La “inercia” de un enfoque rigurosos no es apropiada para ambientes de cambio y velocidad. Metodologías Ágiles - Maestría en Ingeniería de Software -UNSL

  26. Desarrollo ágil de SW (Agile) • Un compromiso útil entre nada de proceso y demasiado proceso (Fowler, 2001) Metodologías Ágiles - Maestría en Ingeniería de Software -UNSL

  27. Lean thinking • El modelo de manufactura en el que se baso Crosby, y luego inspirara CMM y otros procesos rigurososos, evolucionó • Conceptos como: • Just in time • Satisfacción del cliente • Eliminación de pasos innecesarios Metodologías Ágiles - Maestría en Ingeniería de Software -UNSL

  28. Ejemplo de empresas “Lean” • Toyota • Los trabajadores pueden detener la línea si detectan un defecto • eBay, Amazon, FedEx • Eliminación de las órdenes y tracking innecesario. Just-in-time. Envíos sin stock. • Chrysler • Acuerdos de colaboración con proveedores Metodologías Ágiles - Maestría en Ingeniería de Software -UNSL

  29. Principios de producción Lean • Toda tarea debe agregar valor al producto • Focalizarse en la gente que agrega valor • Agregar valor basado en demanda • Optimizar entre organizaciones Metodologías Ágiles - Maestría en Ingeniería de Software -UNSL

  30. Gastos en producción Lean • Producción en exceso • Stock • Pasos extra en el proceso • Búsqueda de información • Defectos • Esperas • Transportes Metodologías Ágiles - Maestría en Ingeniería de Software -UNSL

  31. Agile Alliance • 17 representantes de metodologías alternativas (XP, Scrum, Crystal...) reunidos en un hotel de Utah en 2001 • Companías que competían en un mismo mercado, intentando una “suma positiva” Metodologías Ágiles - Maestría en Ingeniería de Software -UNSL

  32. Agile Manifesto • declaración de principios • muy buena aceptación (debate Bohem) Metodologías Ágiles - Maestría en Ingeniería de Software -UNSL

  33. Los cuatro valores • Individuos e interacciones por sobre procesos y herramientas • Software funcionando por sobre documentación detallada • Colaboración por sobre negociación con el cliente • Responder a cambios por sobre seguir un plan Metodologías Ágiles - Maestría en Ingeniería de Software -UNSL

  34. Individuos e Interacciones • La suposición de los roles intercambiables Metodologías Ágiles - Maestría en Ingeniería de Software -UNSL

  35. Software por sobre documentación • foco en la implementación por sobre el modelado • no significa que no se documenten requerimientos, diseño, etc. Metodologías Ágiles - Maestría en Ingeniería de Software -UNSL

  36. Debate • UML, es Agile? • Como sé que mi proyecto tiene suficiente/demasiada documentación? Metodologías Ágiles - Maestría en Ingeniería de Software -UNSL

  37. Colaboración del Cliente • algunas metodologías un poco extremas • el espíritu es no “extorsionar” al cliente con un contrato. Estar dispuesto al cambio, y cerca del cliente para predecirlo. Metodologías Ágiles - Maestría en Ingeniería de Software -UNSL

  38. Responder al cambio • requirements emergence • cambios a los requerimientos originales pueden tener mayor valor que los relevados inicialmente Metodologías Ágiles - Maestría en Ingeniería de Software -UNSL

  39. Los 12 principios del Manifesto 1 - La prioridad es satisfacer al cliente a través de releases tempranos y frecuentes 2 - Recibir cambios de requerimientos, aun en etapas finales 3 - Releases frecuentes (2 semanas a un mes) 4 - Técnicos y no técnicos trabajando juntos TODO el proyecto Metodologías Ágiles - Maestría en Ingeniería de Software -UNSL

  40. Los 12 principios del Manifesto 5 - Hacer proyectos con individuos motivados 6 - El medio de comunicación por excelencia es cara a cara 7 - La mejor métrica de progreso es la cantidad de software funcionando 8 - El ritmo de desarrollo es sostenible en el tiempo Metodologías Ágiles - Maestría en Ingeniería de Software -UNSL

  41. Los 12 principios del Manifesto 9 - Atención continua a la excelencia técnica 10 - Simplicidad - Maximización del trabajo no hecho 11 - Las mejores arquitecturas, diseños y requerimientos emergen de equipos auto-organizados 12 - A intervalos regulares, el equipo evalúa su desempeño y ajusta la manera de trabajar Metodologías Ágiles - Maestría en Ingeniería de Software -UNSL

  42. 1. Satisfacción del cliente como prioridad uno • Basado en los releases frecuentes y en etapas tempranas • Glass (2001) Cuidado con el manejo de expectativas del cliente Metodologías Ágiles - Maestría en Ingeniería de Software -UNSL

  43. 2 - Cambios son bienvenidos • Brooks (1987) ya identificó el problema • “stabilize and synchronize” de Microsoft • requiremennts emergence • Como se factura esto? Metodologías Ágiles - Maestría en Ingeniería de Software -UNSL

  44. 3 - Entregas frecuentes • la psicología del programador (Weinberg): Objetivos próximos y distantes • mejor manejo de requerimientos (Cockburn, 2000) • evolución del modelo en espiral Metodologías Ágiles - Maestría en Ingeniería de Software -UNSL

  45. 4 - Técnicos y desarrolladores trabajando juntos “En mi trabajo, tengo los usuarios mas estúpidos del mundo” • Microsoft: managers escriben código • Reducción del gap comunicacional Metodologías Ágiles - Maestría en Ingeniería de Software -UNSL

  46. 5 - Motivación • people factor • la gente es la mejor oportunidad para mejorar la productividad (Bohem, 1981) • el Principio de Dilbert Metodologías Ágiles - Maestría en Ingeniería de Software -UNSL

  47. 6 - Comunicación cara a cara • No es necesariamente informal • el espacio físico debe favorecer la comunicación • frecuentemente confundido con una reducción en la documentación Metodologías Ágiles - Maestría en Ingeniería de Software -UNSL

  48. 7 - Software es la mejor medida de progreso • no significa que las metodologías ágiles no colecten otras métricas • no confundir funcionalidad con “cantidad de software” • la mayoría de las métricas tradicionales son un epifenómeno de software entregado Metodologías Ágiles - Maestría en Ingeniería de Software -UNSL

  49. 8 - Ritmo de desarrollo sostenible • DeMarco & Lister (1987) : Mas de 40 horas por semana no es sostenible en el tiempo • responsabilidad social + efectividad ($) • una de las características de “venta” de CMM a desarrolladores es, de hecho, la disminución del overtime Metodologías Ágiles - Maestría en Ingeniería de Software -UNSL

  50. 9 - Excelencia técnica • revisión continua de la arquitectura/diseño • mejora continua del producto • peer reviews Metodologías Ágiles - Maestría en Ingeniería de Software -UNSL

More Related