Metodologas giles Magister en Ingeniera de Software UNSL

  • Slides: 56
Download presentation
Metodologías Ágiles Magister en Ingeniería de Software UNSL iridis group Metodologías Ágiles - Maestría

Metodologías Ágiles Magister en Ingeniería de Software UNSL iridis group Metodologías Ágiles - Maestría en Ingeniería de Software -UNSL

Este curso • Se basa en el análisis critico de metodologías y procesos de

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

Aprobación • 15 % : Participación en clase • 25 % : Trabajos Prácticos

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

Objetivos de este modulo • Tener una interpretación propia basada en evidencia acerca de

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

Contenidos • • • Los inicios de la ingeniería de software La crisis del

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

Advertencia • Algunos puntos estarán interpretados, y Uds. son libres de tener una visión

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

El principio (sin ingeniería) iridis group Metodologías Ágiles - Maestría en Ingeniería de Software

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

Contexto histórico • La NATO declara la crisis del software en 1968, luego de

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

Contexto histórico • Evidencia de sectores no-software de una relación directa entre mejore procesos

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

Contexto histórico • Contratos multimillonarios con el Do. D • Necesidad de “certificar” proveedores

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

Breve paréntesis • Durante Semana Santa, escuché una excelente interpretación del Requiem, de Mozart

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

Breve paréntesis • El resultado final, sin embargo, era altamente comparable. Las diferencias se

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

CMM • Carneggie Mellon (por qué no el MIT? O Cal Tech? ) •

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

El modelo del SEI • Modelo IDEAL de process improvement • Ciclo clásico al

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”) iridis group Metodologías Ágiles - Maestría en Ingeniería de Software -UNSL

Quality is free • La calidad se mide por el costo de reparar errores

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

Estructura de CMM • Se pueden encontrar muchos tutoriales • 500 páginas de recomendaciones,

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

Otros modelos • Bajo la sombrilla de SPI (software process improvement) surgieron otros modelos

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

Que se entiende por nivel Definido? iridis group Metodologías Ágiles - Maestría en Ingeniería

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

Seriamente • CMM no es normativo, pero. . . • Características de un proceso

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

CMM y Producción en masa – Stock – Hand-off – Proceso con nivel decreciente

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

Estructura de un Proceso de SW • Pipeline de fases ETVX • Cada fase

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

Los problemas de las metodologías rigurosas • Tolvanen, 1998 – overhead de proceso –

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

Los problemas de las metodologías rigurosas • Baskerville, Travis &Treux, 1992 – métodos orientados

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

Los problemas de las metodologías rigurosas • De. Marco & Lister, 1987 – la

Los problemas de las metodologías rigurosas • De. Marco & 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 iridis group Metodologías Ágiles - Maestría en Ingeniería de Software -UNSL

Los problemas de las metodologías rigurosas • Bohem (2002) – enfoques rigurosos mas apropiados

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

Desarrollo ágil de SW (Agile) • Un compromiso útil entre nada de proceso y

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

Lean thinking • El modelo de manufactura en el que se baso Crosby, y

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

Ejemplo de empresas “Lean” • Toyota – Los trabajadores pueden detener la línea si

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

Principios de producción Lean • • Toda tarea debe agregar valor al producto Focalizarse

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

Gastos en producción Lean • • Producción en exceso Stock Pasos extra en el

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

Agile Alliance • 17 representantes de metodologías alternativas (XP, Scrum, Crystal. . . )

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

Agile Manifesto • declaración de principios • muy buena aceptación (debate Bohem) iridis group

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

Los cuatro valores • Individuos e interacciones por sobre procesos y herramientas • Software

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

Individuos e Interacciones • La suposición de los roles intercambiables iridis group Metodologías Ágiles

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

Software por sobre documentación • foco en la implementación por sobre el modelado •

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

Debate • UML, es Agile? • Como sé que mi proyecto tiene suficiente/demasiada documentación?

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

Colaboración del Cliente • algunas metodologías un poco extremas • el espíritu es no

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

Responder al cambio • requirements emergence • cambios a los requerimientos originales pueden tener

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

Los 12 principios del Manifesto 1 - La prioridad es satisfacer al cliente a

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

Los 12 principios del Manifesto 5 - Hacer proyectos con individuos motivados 6 -

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

Los 12 principios del Manifesto 9 - Atención continua a la excelencia técnica 10

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 autoorganizados 12 - A intervalos regulares, el equipo evalúa su desempeño y ajusta la manera de trabajar iridis group Metodologías Ágiles - Maestría en Ingeniería de Software -UNSL

1. Satisfacción del cliente como prioridad uno • Basado en los releases frecuentes y

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

2 - Cambios son bienvenidos • • Brooks (1987) ya identificó el problema “stabilize

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

3 - Entregas frecuentes • la psicología del programador (Weinberg): Objetivos próximos y distantes

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

4 - Técnicos y desarrolladores trabajando juntos “En mi trabajo, tengo los usuarios mas

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

5 - Motivación • people factor • la gente es la mejor oportunidad para

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

6 - Comunicación cara a cara • No es necesariamente informal • el espacio

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

7 - Software es la mejor medida de progreso • no significa que las

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

8 - Ritmo de desarrollo sostenible • De. Marco & Lister (1987) : Mas

8 - Ritmo de desarrollo sostenible • De. Marco & 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 iridis group Metodologías Ágiles - Maestría en Ingeniería de Software -UNSL

9 - Excelencia técnica • revisión continua de la arquitectura/diseño • mejora continua del

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

10 - Maximizar el trabajo no hecho (o Simplicidad) • no implementar mas de

10 - Maximizar el trabajo no hecho (o Simplicidad) • no implementar mas de lo acordado • no debe confundirse con relegar diseño y saltar a la codificación • Refactoring • No es “good enough quality” • Cómo se alinea este principio con la forma de ser del desarrollador argentino? iridis group Metodologías Ágiles - Maestría en Ingeniería de Software -UNSL

11 - Equipos auto-organizados • • sinergia (De. Marco & Lister) es un principio

11 - Equipos auto-organizados • • sinergia (De. Marco & Lister) es un principio que apunta a la organización proceso de reclutamiento objetivos - motivación - satisfacción con el trabajo • preservar los equipos de un proyecto a otro iridis group Metodologías Ágiles - Maestría en Ingeniería de Software -UNSL

12 - Autoevaluación • mejora continua del proceso • conocimiento organizacional • los cambios

12 - Autoevaluación • mejora continua del proceso • conocimiento organizacional • los cambios pueden ser un poco erráticos si no se aplica un criterio cuantitativo iridis group Metodologías Ágiles - Maestría en Ingeniería de Software -UNSL

Práctico #1 1 - Fundamentar reducciones en el costo de cambio de requerimientos en

Práctico #1 1 - Fundamentar reducciones en el costo de cambio de requerimientos en una metodología que cumple los principios de Agile. Comenzar con la curva clásica, de cualquier libro de ingeniería de software. iridis group Metodologías Ágiles - Maestría en Ingeniería de Software -UNSL

Práctico #1 2 - Evaluar el costo de cambios desde una perspectiva del cliente.

Práctico #1 2 - Evaluar el costo de cambios desde una perspectiva del cliente. Es similar la necesidad del cliente si se usa una metodología tradicional? iridis group Metodologías Ágiles - Maestría en Ingeniería de Software -UNSL

Práctico #1 3 - Si vemos un libro de requerimientos como una orden de

Práctico #1 3 - Si vemos un libro de requerimientos como una orden de trabajo, y las correspondientes estimaciones como el presupuesto, el contrato de la empresa de software con su cliente es bastante directo. Bosqueje como sería un contrato usando una metodología ágil que implemente la misma aplicación. iridis group Metodologías Ágiles - Maestría en Ingeniería de Software -UNSL