Tema 5. Gestión de Proyectos (ISG3) Antonio José Sáenz Albanés (C.T.O) Reconocimiento – No Comercial – Compartir Igual - 2.5 - España Tema 5. Gestión de Proyectos (ISG3) 1 Objetivos del Tema Introducción a la Gestión de Proyectos Gestión de Proyectos Pequeños y Medianos Buenas Prácticas y Agilidad El Modelo Open Source como Prueba de Concepto Aplicación a la Práctica de la Asignatura Tema 5. Gestión de Proyectos (ISG3) 2 Planificación 1ª Clase: Presentación y Conceptos Generales 2ª Clase: Concreción en Entorno de Trabajo 3ª Clase: Revisión de Avance y Dudas 4ª Clase: Defensa y Evaluación Metodológica Tema 5. Gestión de Proyectos (ISG3) 3 Presentación y Conceptos Generales Introducción Métodos y Sistemática Buenas Prácticas Open Up Licencias, Software Libre y Empresa Referencias Tema 5. Gestión de Proyectos (ISG3) 4 Introducción Tema 5. Gestión de Proyectos (ISG3) 5 Objetivo de proyecto $ Tema 5. Gestión de Proyectos (ISG3) 6 Dimensiones gestión proyectos Alcance (Entregables) Plazos (Tiempos) Esfuerzo (Recursos) Tema 5. Gestión de Proyectos (ISG3) 7 Visión a 7.000 metros Plan de Proyecto Entregable Facturable Tema 5. Gestión de Proyectos (ISG3) 8 Estimar, planificar, asignar,... Puntos Función COCOMO (II) Delphi Tema 5. Gestión de Proyectos (ISG3) 9 Seguimiento Métricas Tema 5. Gestión de Proyectos (ISG3) 10 ¿Es esto gestión de proyectos? Tema 5. Gestión de Proyectos (ISG3) 11 O, ... ¿Esto? Tema 5. Gestión de Proyectos (ISG3) 12 Imposibles Este proyecto es importantísimo, pero no tiene presupuesto, ni documentación y además es para mañana. Por fin, esta es tu oportunidad para impresionar de verdad a todos. Tema 5. Gestión de Proyectos (ISG3) 13 In-Comunicación Tema 5. Gestión de Proyectos (ISG3) 14 Causas de proyectos fallidos Requisitos incompletos: 13% Falta de participación del cliente: 12% Recursos inadecuados: 11% El usuario pide un imposible: 10% Falta de soporte de gestión: 9% Cambios en los requisitos: 9% Planning incorrecto: 8% Tema 5. Gestión de Proyectos (ISG3) 15 ¿Gestión de Proyectos? La gestión de proyectos en la ingeniería del software requiere de mecanismos que le permitan la CONDUCCIÓN del proyecto hacia su éxito. Entre dichos mecanismos se encuentran: Sistemática Procesos Indicadores (métricas) de gestión Sentido común, o en su defecto BUENAS PRÁCTICAS Tema 5. Gestión de Proyectos (ISG3) 16 Ingeniería Nuevas necesidades Ciencia Aplicada a la resolución de problemas de interés Tecnología Balance económico y de oportunidad Ingeniería Tema 5. Gestión de Proyectos (ISG3) 17 Métodos y Sistemática Tema 5. Gestión de Proyectos (ISG3) 18 Respuesta Super Métodos (~'90) Tema 5. Gestión de Proyectos (ISG3) 19 Procesos, Tareas, Métodos, Ciclos,... Tema 5. Gestión de Proyectos (ISG3) 20 Problema inesperado “Featuritis” Nunca 45,00% Siempre 7,00% Apenas 19,00% A menudo 13,00% A veces 16,00% © 2002/2006 The Standing Group International Tema 5. Gestión de Proyectos (ISG3) 21 Respuesta “La Agilidad” (~'00) Tema 5. Gestión de Proyectos (ISG3) 22 El Manifiesto Ágil (2001) Estamos descubriendo mejores formas de desarrollar software, haciéndolo y ayudando a otros a hacerlo. En este trabajo hemos concluido en valorar: Individuos e interacciones sobre procesos y herramientas Software que funcione sobre documentación detallada Colaboración con el cliente sobre negociación de contratos Respuesta al cambio sobre seguimiento de un plan Es decir, mientras que encontramos valiosos los términos de la derecha, consideramos más valiosos los de la izquierda Tema 5. Gestión de Proyectos (ISG3) 23 Individuos e Interacciones La gente es el principal factor de éxito de un proyecto software. Es más importante construir un buen equipo que construir el entorno. Muchas veces se comete el error de construir primero el entorno y esperar que el equipo se adapte automáticamente. Es mejor crear el equipo y que éste configure su propio entorno de desarrollo en base a sus necesidades. Tema 5. Gestión de Proyectos (ISG3) 24 Software que funcione La regla a seguir es “no producir documentos a menos que sean necesarios de forma inmediata para tomar un decisión importante”. Estos documentos deben ser cortos y centrarse en lo fundamental. Tema 5. Gestión de Proyectos (ISG3) 25 Colaboración con el Cliente Se propone que exista una interacción constante entre el cliente y el equipo de desarrollo. Esta colaboración entre ambos será la que marque la marcha del proyecto y asegure su éxito. Tema 5. Gestión de Proyectos (ISG3) 26 Respuesta al Cambio La habilidad de responder a los cambios que puedan surgir a los largo del proyecto (cambios en los requisitos, en la tecnología, en el equipo, etc.) determina también e l éxito o fracaso del mismo. Por lo tanto, la planificación no debe ser estricta sino flexible y abierta. Tema 5. Gestión de Proyectos (ISG3) 27 El Manifiesto Ágil (2001) Kent Beck Andrew Hunt Mike Beedle Ron Jeffries Arie van Bennekum Jon Kern Alistair Cockburn Brian Marick Ward Cunningham Robert C. Martin Martin Fowler Steve Mellor James Grenning Ken Schwaber Jim Highsmith Jeff Sutherland Dave Thomas Tema 5. Gestión de Proyectos (ISG3) 28 Principios (i) Prioridad de satisfacer al cliente a través de la entrega temprana y continua de software de valor. Dar la bienvenida a los cambios de requisitos, incluso al final del desarrollo. Los procesos ágiles usan el cambio para darle una ventaja competitiva al cliente. Entregas frecuentes de software que funcione, desde cada dos semanas a cada dos meses, con preferencia el el ritmo más rápido. Los responsables del negocio y los desarrolladores deben trabajar juntos durante todo el proyecto. Tema 5. Gestión de Proyectos (ISG3) 29 Principios (ii) Contruir proyectos con personas motivadas. Deles el ambiente y el apoyo que necesitan, y confíe en que harán su trabajo. La forma más eficiente y efectiva de traspasar información hacia y desde un equipo de desarrollo es la conversación cara-a-cara. El software que funcione es la principal medida de avance. Los procesos ágiles promueven el desarrollo sostenible. Los auspiciadores, desarrolladores y usuarios deben ser capaces de mantener un paso constante indefinidamente. Tema 5. Gestión de Proyectos (ISG3) 30 Principios (y iii) La atención constante por la excelencia técnica y el buen diseño aumenta la agilidad. La simplicidad --el arte de maximizar la cantidad de trabajo no hecho-- es esencial. Las mejores arquitecturas, requisitos y diseños emergen de los equipos auto-organizados A intervalos regulares, el equipo reflexiona sobre cómo hacerse más efectivo, luego afina y ajusta su comportamiento según eso. Tema 5. Gestión de Proyectos (ISG3) 31 Nuevas Técnicas Refactorización (refactoring) Cambios en el diseño sobre el sistema implementado Pruebas automáticas Pruebas exhaustivas del sistema cuyos resultados se comparan con resultados esperados Integración continua Automatización de la integración de sistemas de modo de permitir pruebas automáticas muy frecuentes Gestión de configuración Hecha de una forma especial para apoyar la interacción y la integración continua Tema 5. Gestión de Proyectos (ISG3) 32 Ágil vs Tradicional Basadas en heurísticas provenientes de prácticas de producción de código Especialmente preparados para cambios durante el proyecto Impuesta internamente Proceso menos controlado, con pocos principios El contrato es flexible Basadas en normas provenientes de estándares seguidos por el entorno de desarrollo Presenta cierta resistencia al cambio Impuesta externamente Proceso muy controlado, con numerosas políticas y normas Contrato prefijado El cliente interactúa formalmente en El cliente es parte del equipo de desarrollo reuniones Equipos pequeños y/o en contacto físico Grupos grandes y/o distribuidos Pocos artefactos Numerosos artefactos Pocos roles Numerosos roles Menor énfasis en la arquitectura Arquitectura y modelos fundamentales Tema 5. Gestión de Proyectos (ISG3) 33 Arquitectura (Cascada) Se diseña una arquitectura apropiada para todos los requisitos Respuesta a cambios: Difícil o fácil según encaje en la arquitectura Difícil de explicar las diferencias del impacto al cliente Esto genera desconfianza Tema 5. Gestión de Proyectos (ISG3) 34 Arquitectura (Evolutiva) Se reconoce que existirán cambios Arquitecturas flexibles Basadas en Mensajes Desacople Interfaz / Implementación, ... Problemas Arquitecturas más complejas Difícil predecir cambios Aún así no acepta todos los cambios... Tema 5. Gestión de Proyectos (ISG3) 35 Arquitectura (Ágil) Se parte de arquitectura simple enfocada a requisitos de primera iteración La arquitectura puede cambiar si no se adapta al cambio de requisitos Tema 5. Gestión de Proyectos (ISG3) 36 Valor Tema 5. Gestión de Proyectos (ISG3) 37 Valor Tema 5. Gestión de Proyectos (ISG3) 38 Valor Tema 5. Gestión de Proyectos (ISG3) 39 Valor Tema 5. Gestión de Proyectos (ISG3) 40 Valor Tema 5. Gestión de Proyectos (ISG3) 41 Valor Tema 5. Gestión de Proyectos (ISG3) 42 XP (Coste de los Cambios) “El error es usualmente 100 veces más caro de corregir en la fase de mantenimiento que en la fase de requisitos.” (Barry Boehm, Software Engineering Economics, 1981, p. 40.) Tema 5. Gestión de Proyectos (ISG3) 43 Implantación (R.O.I) Tema 5. Gestión de Proyectos (ISG3) 44 Implantación (Éxito) Tema 5. Gestión de Proyectos (ISG3) 45 Implantación (Chasm) Tema 5. Gestión de Proyectos (ISG3) 46 Malinterpretaciones Tema 5. Gestión de Proyectos (ISG3) 47 Buenas Prácticas Tema 5. Gestión de Proyectos (ISG3) 48 Modelar la actividad por procesos Con adecuada periodicidad Facilitan el uso de indicadores Enfocan las métricas Permiten especializaciones y control de granularidad Seleccionando de “metodologías” de suficiente uso Métrica v3; (R/E/Open/Agile/Basic) UP; ITIL, ... Tema 5. Gestión de Proyectos (ISG3) 49 Un poco sobre métricas Dinámica 1.Plantear meta 2.Selección indicador 1.“Accionable” 2.Suficiente periodicidad 3.Valor Objetivo y márgenes 4.Plantear acciones 5.Evaluar indicadores 6.Replantear acciones ¿minimizan $ global? Tema 5. Gestión de Proyectos (ISG3) 50 Granularidad de procesos Tema 5. Gestión de Proyectos (ISG3) 51 Gestión Requisitos Formal Gestionar: Interlocutores Validaciones Cambios Indicador objetivo ;-)? Ejemplos de indicadores: # Requisitos identificados # Requisitos modelados formalmente (casos de uso, etc.) # Requisitos validados por el cliente Tema 5. Gestión de Proyectos (ISG3) 52 Planear Entregas Parciales Minimizan el cash-flow Minimizan riesgos Facilitan replanificaciones Entregables Facturables Terminación Planificada Inicialmente FASES e Hitos Tema 5. Gestión de Proyectos (ISG3) 53 Modelar vs. Documentar (i) Modelar: aprender / comunicar / reutilizar Documentar: entregable contractual Problemas Los mismos artefactos (son costosos) Cuidado con los indicadores / métricas Buena Práctica: Modelar lo imprescindible Reutilizar Frameworks, patrones como guía de lectura y documentar sólo las diferencias, Técnicas de código “legible” Tema 5. Gestión de Proyectos (ISG3) 54 Modelar vs. Documentar (ii) Arquitectura / Análisis / Diseño Ejemplos de indicadores: # subsistemas modelados por patrones # modelos reutilizados # modelos no basados en patrones • Vamos a usar el Patrón “Cadena de Responsabilidad” para “tal cosa” • Hemos seleccionado Oracle porque cumple los requisitos de prestaciones y el cliente ya tiene licencia y administradores cualificados • Vamos a aplicar la siguiente arquitectura de red. • Estamos aplicando estos esquemas J2EE • Distribuiremos los componentes entre las capas de la siguiente manera Tema 5. Gestión de Proyectos (ISG3) 55 Desarrollo basado en pruebas Diseñar la solución Definición de la interfaz a probar Crear pruebas para la solución Las pruebas deben ejecutarse y fallar Implementar la solución Las pruebas deben ejecutarse y pasarse ok Trabajar en incrementos tan pequeños como sea posible Tema 5. Gestión de Proyectos (ISG3) 56 Desarrollo basado en pruebas (ii) Las pruebas de desarrollo tejen la implementación de la solución No se muestra los bucles cortos de realimentación Ejemplos de indicadores: # Tests por requisito funcional # Tests verificados por iteración # Requisitos sin Test Refinar la Arquitectura Diseñar la Solución Implementar las pruebas de desarrollo Implementar la Solución Ejecutar las pruebas de desarrollo Tema 5. Gestión de Proyectos (ISG3) 57 Control adaptativo proyecto (i) Indicadores globales objetivo < # “funcionalidades” no usadas < $ por h.h. inútiles < Coste por riesgos Basados en indicadores de avance Requiere suficiente granularidad Gestión priorizada de requisitos Iteraciones verificadas ... Tema 5. Gestión de Proyectos (ISG3) 58 Control adaptativo proyecto (ii) Terminación Planificada Inicialmente Entregables Facturables Terminación Real FASES e Iteraciones 2 1 3 4 5 6 Camino Inicial Planificado 1 2 3 Plan de Proyecto Actualizado Alta Prioridad Camino 4 Real 5 6 7 Implementados en Iteración Requisitos bien definidos Visión y Alcance Nuevos Repriorizados Requisitos vagos Eliminados Baja Prioridad Espacio de Satisfacción del Stakeholder Criterios de Evaluación Riesgos Registro de Pruebas Lista de Work Items Tema 5. Gestión de Proyectos (ISG3) 59 Control adaptativo proyecto (iii) Alta Prioridad Implementados en Iteración Requisitos bien definidos Nuevos Repriorizados Requisitos vagos Eliminados Baja Prioridad Nunca 45,00% Lista de Work Items Ejemplos de indicadores: Siempre 7,00% Apenas 19,00% # Requisitos Implementados / Req. Totales / Iteración A menudo 13,00% A veces 16,00% # Req. Nuevos-Eliminados / Iteración Tema 5. Gestión de Proyectos (ISG3) 60 Open UP Tema 5. Gestión de Proyectos (ISG3) 61 El Proyecto “Eclipse Process Framework (EPF)” Suministra un ecosistema abierto y colaborativo para la evolución de los procesos de desarrollo de software Suministra ejemplos de prácticas, configuración de procesos y un metamodelo, que se pueden usar de fundamento para una gran variedad de procesos que sirvan para abordar las necesidades de las Tecnologías de la Información Utiliza a la comunidad de Eclipse para ganar amplia aceptación del marco de trabajo Tema 5. Gestión de Proyectos (ISG3) 62 El Ecosistema EPF Inhouse Content EXTENSIONES G. G. ●G. ● ● de de de Proyectos Operaciones Sistemas Plug-ins Free Process Content Plug-ins Open Unified Process (OpenUP) Ingeniería de Software Commercial Process Arquitectura Basada en Guiada por Aportar Valor Basic Unified Process OpenUP/Basic Adapted Adapted from from RUP RUP Content Plug-ins Modelos Marco de Trabajo Ágil y Consolidado Scrum Otros Procesos ágiles ● ● XP Scrum ● DSDM ● AMDD Extensible, Adaptable, FlexibleUTILIDADES (de Autor, de Publicación) Extensiones de Herramientas Vocabulario y Lenguaje Comunes METAMODELO (Arquitectura de Método Unificado) Common Language & Vocabulary Desarrollo enDevelopment Software de Fuentes Abiertas Open Source Tema 5. Gestión de ECLIPSE Proyectos (ISG3) 63 ¿Qué es OpenUP? Un proceso iterativo de desarrollo de software que es mínimo, completo y extensible. • Mínimo – sólo incluye lo fundamental • Completo – se puede considerar como un proceso para construir sistemas enteros • Extensible – se puede utilizar como el fundamento sobre el que incorporar y adaptar procesos a medida que se necesiten Tema 5. Gestión de Proyectos (ISG3) 64 Analista Stakeholder Probador Desarrollador penUP Jefe de Proyecto Arquitecto Tema 5. Gestión de Proyectos (ISG3) 65 Analista Stakeholder Probador Desarrollador penUP Jefe de Proyecto Arquitecto Tema 5. Gestión de Proyectos (ISG3) 66 Analista Stakeholder Probador Desarrollador penUP Jefe de Proyecto Arquitecto Tema 5. Gestión de Proyectos (ISG3) 67 Analista Stakeholder Probador Desarrollador penUP Jefe de Proyecto Arquitecto Tema 5. Gestión de Proyectos (ISG3) 68 Analista Stakeholder Probador Desarrollador penUP Jefe de Proyecto Arquitecto Tema 5. Gestión de Proyectos (ISG3) 69 Analista Stakeholder Probador Desarrollador penUP Jefe de Proyecto Arquitecto Tema 5. Gestión de Proyectos (ISG3) 70 Colaboración y Objetivos (Niveles) Tema 5. Gestión de Proyectos (ISG3) 71 Principios OpenUP se apoya en un conjunto de principios fundamentales: Colaborar para alinear los intereses y compartir el conocimiento Evolucionar para obtener continuamente realimentación y mejoras Equilibrar prioridades enfrentadas para miximizar el valor aportado al stakeholder Enfocarse en articular la arquitectura Tema 5. Gestión de Proyectos (ISG3) 72 Colaboración Mantener un conocimiento común Artefactos Clave: Visión, requisitos, arquitectura, plan de iteración Fomentar un ambiente de confianza Gestionar por objetivos, derribar muros, comprender la perspectiva de los demás Compartir responsabilidades El producto pertenece a todos, luego debemos ayudarnos unos a otros Aprendizaje continuo Desarrollar capacidades técnicas y de colaboración, debemos ser estudiantes y profesores a la vez Organizarse alrededor de la arquitectura A medida que los equipos crecen, debemos tener equipos de equipos enfocados en pequeños componentes Tema 5. Gestión de Proyectos (ISG3) 73 Formas de los Requisitos La Visión define el punto de vista del stakeholder sobre el producto Los Casos de Uso definen escenarios de usuario Cualquier requisitos basado en escenarios lo haría Los Requisitos de Soporte cubren aspectos técnicos y otros no referentes al uso del producto Los “Work Items” (elementos de trabajo) referencian requisitos del producto con más detalle Tema 5. Gestión de Proyectos (ISG3) 74 Definición Iterativa de Requisitos La Visión define el producto La identificación de los Casos de Uso define el alcance de una release (versión, liberación) Los detalles de los casos de uso conducen el trabajo dentro de una iteración Los Requisitos de Soporte se gestionan a lo largo de todo el ciclo de vida Tema 5. Gestión de Proyectos (ISG3) 75 Objetivo: Casos de Pruebas Casos de Pruebas Están alineados con requisitos y errores Especifican las condiciones que deben validarse Esbozan los datos necesarios Por su parte los Script de Pruebas (de los subprocesos de la Solución) Están alineados con los Casos de Pruebas Son instucciones detalladas paso a paso Coomplementados por datos de pruebas Es mejor que estén automatizados Los Casos de Pruebas son una forma de “Test First Design (TFD)” (Diseño guiado por las pruebas) Tema 5. Gestión de Proyectos (ISG3) 76 Roles Orientados al Objetivo Analista Captura, organiza y prioriza requisitos Stakeholder Conduce el objetivo; el proyecto debe satisfacer sus necesidades Probador Define los criterios para aceptar una solución EL Jefe de Proyecto actualizará la Lista de “Work Items” con elementos (items) agrupados y priorizados El Arquitecto y el Desarrollador producirán una solución que cumpla con el “objetivo” Tema 5. Gestión de Proyectos (ISG3) 77 Identificar la Meta Final Tu meta es encontrar un camino desde Aquí hasta Allí Punto de Arranque del Proyecto Espacio de Satisfacción del Stakeholder Tema 5. Gestión de Proyectos (ISG3) 78 Divide y Vencerás Terminación Planificada 1 2 3 4 5 6 Camino Planificado Inicial Plan de Proyecto Espacio de Satisfacción del Stakeholder Tema 5. Gestión de Proyectos (ISG3) 79 Hitos de Gestión Terminación Planificada 1 3 2 4 5 6 Planned Path Comienzo Elaboración Construcción Transición ¿Comprendemos ¿Comprendemos el problema? la solución?¿Características¿Listo completadas? para Liberar? Espacio de Satisfacción del Stakeholder Tema 5. Gestión de Proyectos (ISG3) 80 Priorizar y Gestionar el Trabajo Alta Prioridad Los work items de alta prioridad deberían estar bien definidos Los work items de baja prioridad pueden ser vagos En cada iteración se implementan los work items de mayor prioridad Se pueden añadir nuevos work items en cualquier momento Los work items se pueden repriorizar en cualquier momento Se pueden eliminar work items en cualquier momento Baja Prioridad Lista de Work Items Tema 5. Gestión de Proyectos (ISG3) 81 Conceptos Clave: Estimación Ágil Tamaño (puntos): Para cada work item, esimamos lo grande que es. Nos enfocamos en su tamaño relativo, así que es clave ser consistentes dentro de nuestra lista de work items. Velocidad Una medida de cuantos puntos se liberan (entregan) en cada iteración Esfuerzo (días o horas): Estimación del esfuerzo real. Tema 5. Gestión de Proyectos (ISG3) 82 Planifica Tu Iteración Especifica la velocidad objetivo (deseada) y esboza los objetivos de la iteración en el Plan de Iteración Analiza el Work Item de mayor prioridad Estima el esfuerzo en horas Si es demasiado grande para caber en la iteración, divídelo en work items menores Añádelo al Plan de Iteración Analiza el siguiente work item por orden de prioridad hasta que el Plan de Iteración esta “lleno” Especifica las pruebas y otros criterios de “evaluación” (assessment) Estimar y añadir al plan de iteración Objetivos de la Iteración ●Lista de Work Items de la Iteración ●Resultados de Medidas y Pruebas ● Plan de Iteración Lista de Work Items Tema 5. Gestión de Proyectos (ISG3) 83 Conducción por Criterios de Evaluación de la Iteración Terminación Planificada 2 1 3 4 5 6 Camino Planificado 1 Actualizado 2 3 Camino 4 Real 5 6 7 Espacio de Satisfacción del Stakeholder Plan de Proyecto Tema 5. Gestión de Proyectos (ISG3) 84 El Rol de la Arquitectura Suministra el contexto para el diseño y la implementación Suministra una mitigación de riesgos Mejora la “predictabilidad” del plan Definirla pronto, mejorarla y evolucionarla Tema 5. Gestión de Proyectos (ISG3) 85 La Arquitectura y los Principios Colaborar La arquitectura ayuda a mantener un conjunto de conocimientos técnicos comunes Equilibrar Las decisiones tomadas sobre la arquitectura son parte de un equilibrio para alcanzar el máximo beneficio para el stakeholder dentro de de las restricciones Enfocarse Utiliza la arquitectura para resaltar las decisiones técnicas esenciales Evolucionar Las evoluciones tempranas aseguran la viabilidad del producto y minimizan los riesgos Tema 5. Gestión de Proyectos (ISG3) 86 Representación de la Arquitectura No se requieren documentos pesados Gran parte de la arquitectura se puede: Seleccionar en vez de diseñar Referenciar en vez de describir • Vamos a usar el Patrón “Cadena de Responsabilidad” para “tal cosa” • Hemos seleccionado Oracle porque cumple los requisitos de prestaciones y el cliente ya tiene licencia y administradores cualificados • Vamos a aplicar la siguiente arquitectura de red. • Estamos aplicando estos esquemas J2EE • Distribuiremos los componentes entre las capas de la siguiente manera Tema 5. Gestión de Proyectos (ISG3) 87 Diseño Pasos Comprender los requisitos, identificar un escenario Identificar sus elementos Determinar como colaboran esos elementos Refinar las decisiones, los aspectos internos del diseño Comunicarlo ¿Aprueba un análisis? Si es apropiado. ¿Diseño visual? Si es apropiado. ¿Usar una herramienta de diseño? Si es apropiado. ¿Diseño de larga duración? Si es apropiado. Tema 5. Gestión de Proyectos (ISG3) 88 Desarrollo Guiado por Work Items Seleccionar uno de los “work item” de los asignados a la actual iteración Colaborar con el equipo si es necesario descomponerlo en otros menores Identificar el contexto de requisitos Adjuntos: Casos de uso, requisitos de soporte, información de “bugs” errores, casos de prueba Recolectar cualquier información adicional Repetir hasta completar: Construir una pequeña solución que se verifique con pruebas de desarrollo (developer tests) Comprobar que se ha completado utilizando las puebas deTema sistema 5. Gestión de Proyectos (ISG3) 89 Diseño basado en pruebas Diseñar la solución Definición de la interfaz a probar Crear pruebas para la solución Las pruebas deben ejecutarse y fallar Implementar la solución Las pruebas deben ejecutarse y pasarse ok Trabajar en incrementos tan pequeños como sea posible Tema 5. Gestión de Proyectos (ISG3) 90 Diseño Basado en Pruebas Las pruebas de desarrollo tejen la implementación de la solución Refinar la Arquitectura Diseñar la Solución No se muestra en el dibujo los bucles cortos de realimentación Implementar las pruebas de desarrollo Implementar la Solución Ejecutar las pruebas de desarrollo Tema 5. Gestión de Proyectos (ISG3) 91 Roles Relevantes a la Solución Desarrollador Diseña e implementa la solución Arquitecto Toma las decisiones técnicas claves y estructura la solución Probador Implementa y conduce las pruebas que verifican la solución EL Jefe de Proyecto monitoriza el desarrollo El Stakeholder participa en la verificación de la solución El Analista suministra información adicional Tema 5. Gestión de Proyectos (ISG3) 92 Ejemplo: Iteraciones en la Práctica Asumiendo iteraciones de ~6 semanas de duración: 1 semana de planificación, análisis y diseño 3-4 semanas de diseño y codificación 1-2 semanas de pruebas y cierre Muchos miembros del equipo pueden hacer también diseño y codificación en la primera semana Las integraciones semanales suelen probar el grado de avance; las integraciones quincenales suelen inyectar disciplina y repitabilidad Los temas de alto nivel y los artefactos de objetivo para cada iteración los deciden los líderes de desarrollo basándose en criterios de negocio y escenarios de casos de uso Los planes detallados de la iteración los suministran los equipos del componente (enlazando cada línea con el caso de uso y escenario) La integración resultante de la iteración se contrasta contra los casos de uso y se publican para tener una visibilidad más amplia El contenido importa – se debe inyectar contenido interesante en cada iteración planificada para asegurar su adopción y progresión a traves de cada integración de iteración Las fechas importan – se deben revisar siguiendo cada iteración de entrega. Las iteraciones estan constreñidas (timeboxed). Las Fases no. Tema 5. Gestión de Proyectos (ISG3) 93 Lecciones Prácticas Es fácil, incluso tentador deslizar funciones de una iteración a la siguiente; esto inevitablemente termina en un colapso a medida que nos acercamos a la entrega Si reducimos las 1-2 semanas del periodo de cierre, se genera poca estabilidad El ratio de adopción se ve afectado significativamente por la estabilidad de la iteración y por la facilidad para descargarlas Existe una tendencia de no documentar adecuadamente las nuevas funcionalidades que van en una iteración; esto dificulta establecer que cosas hay nuevas y excitantes Tema 5. Gestión de Proyectos (ISG3) 94 Licencias, Software Libre y Empresa Tema 5. Gestión de Proyectos (ISG3) 95 Un Poco de Historia Orígenes de la informática Ciencia aplicada Acceso a los fuentes, Rápida evolución (Algorítmica, ...) '70 Enfrentamiento Modelos de negocio propietario de pago por uso Ética de los Hackers del M.I.T. (acceso al fuente). '80 Free Software Foundation Licencia GPL (Software Libre). '90 Iniciativa del Software de Fuentes Abiertas Modelo de desarrollo cooperativo. Proliferan Licencias (OSI). '00 Se extrapola a otros campos Wikipedia, Conocimiento Libre, ... Tema 5. Gestión de Proyectos (ISG3) 96 Visiones del Software Libre Ética y Derechos del Usuario Modelo de Desarrollo Colaborativo Tema 5. Gestión de Proyectos (ISG3) 97 Free Software Foundation El uso de Software Libre concede DERECHOS Uso libre Adaptación (acceso al código fuente) Redistribución Mejorar y compartir sus mejoras Protecciones Adicionales (GPLv3) Anti-Tivoización Anti-Restricción de Derechos Digitales (DRM) Patentes Tema 5. Gestión de Proyectos (ISG3) 98 Open Source Initiative Desarrollador (Fuentes Abiertas) Redistribución Acceso al fuente Modificación Integridad del código del autor No discriminación de personas No discriminación de uso Licencia “distribuible” Licencia no atada al producto No impedir del uso con otros productos Licencia tecnológicamente neutra Tema 5. Gestión de Proyectos (ISG3) 99 Popularidad de Licencias* GNU/GPL GNU/LGPL BSD MIT Artistic Apache 2.0 Otros (*) Diciembre de 2006 (analizados > 30.000 proyectos) en Freshmeat.net Tema 5. Gestión de Proyectos (ISG3) 100 Compatibilidad de Licencias Tema 5. Gestión de Proyectos (ISG3) 101 Errores de Interpretación El software libre es gratis Cuesta dinero y se puede exigir dinero por él Hay mucho software gratis que no es libre (IE) El software libre es “de dominio público” Copyright del autor y licencia asociada Debo hacer siempre público el código fuente No, sólo a quién se lo suministro Es de baja calidad (porque es gratis) No, prima la calidad frente al ciclo de “nuevas prestaciones” y obsolescencia controlada Tema 5. Gestión de Proyectos (ISG3) 102 S.L. Motor de Innovación Combina dos poderosos mecanismos de innovación La competencia Todos los contendientes emplean el mismo conjunto de programas de partida, sin exclusividades. La cooperación (incluso entre empresas rivales) Todos los contendientes disponen de la mejoras que cada uno ha aportado al conjunto de partida. Cambio de ecosistema Desde un contexto favorable a los monopolios de empresa Hacia otro favorable a los monopolios de productos Con un conjunto de empresas dándoles soporte Tema 5. Gestión de Proyectos (ISG3) 103 La Estándarización Favorece S.L. Tema 5. Gestión de Proyectos (ISG3) 104 ¿Qué software hay? Tema 5. Gestión de Proyectos (ISG3) 105 Repositorios e Índices http://sourceforge.net/ http://freshmeat.net/ Tema 5. Gestión de Proyectos (ISG3) 106 Sistemas Operativos Tema 5. Gestión de Proyectos (ISG3) 107 Infraestructuras de red Tema 5. Gestión de Proyectos (ISG3) 108 Bases de Datos Tema 5. Gestión de Proyectos (ISG3) 109 Servidores de Aplicación Tema 5. Gestión de Proyectos (ISG3) 110 Escritorio Tema 5. Gestión de Proyectos (ISG3) 111 Ofimática Tema 5. Gestión de Proyectos (ISG3) 112 Colaboración y Navegación Thunderbird Firefox Tema 5. Gestión de Proyectos (ISG3) 113 Aplicaciones de Empresa Tema 5. Gestión de Proyectos (ISG3) 114 Seguridad Tema 5. Gestión de Proyectos (ISG3) 115 Modelos de Negocio Tema 5. Gestión de Proyectos (ISG3) 116 Empresa Desarrolladora Cambios Puede competir sin importar su tamaño. Tecnología punta muy barata. Puede aprovechar el trabajo de su competencia. Puede conseguir la colaboración de la comunidad, a bajo coste. Canal de distribución barato, efectivo y global. Puede convertir sus productos en aplicaciones de referencia. ¿Ingresos? Juega con ventaja al conocer su producto Marketing de calidad técnica Desarrollos a medida e integraciones Canal de soporte a medida Tema 5. Gestión de Proyectos (ISG3) 117 Empresa Integradora Cambios Gran variedad y disponibilidad de componentes a bajo coste No traslada al cliente costes de licencia, sólo por su trabajo Puede modificar los “componentes” para encajarlos mejor o aprovechar sus características Se aproxima a la empresa desarrolladora Tema 5. Gestión de Proyectos (ISG3) 118 Mantenimiento y Soporte Cambios Bajo coste de componentes Acceso al código y su reparación Traslada sólo sus costes y hay un amplio mercado Tema 5. Gestión de Proyectos (ISG3) 119 Otros Modelos de Negocio Empaquetadores (Ubuntu, Red Hat) Loss Leaders (Novell – Ximian) Crea un producto libre Tiene amplia base de usuarios Vende soporte y adaptaciones Gadgets Dispositivos físicos con funciones soft avanzadas (Linksys) Consultores Aplicaciones que requieren servicios on-line Se cobra por dichos servicios (Half-life) Tema 5. Gestión de Proyectos (ISG3) 120 ¿Y para mí? Tema 5. Gestión de Proyectos (ISG3) 121 S.O. y Escritorio (Unbuntu / Kubuntu) Tema 5. Gestión de Proyectos (ISG3) 122 Ofimática (Open Office) Tema 5. Gestión de Proyectos (ISG3) 123 Ofimática (Colaboración) Firefox Thunderbird Tema 5. Gestión de Proyectos (ISG3) 124 Organización (FreeMind - Ideas) Tema 5. Gestión de Proyectos (ISG3) 125 Organización (GTD - ThinkingRock) Tema 5. Gestión de Proyectos (ISG3) 126 Planificación (OpenProj) Tema 5. Gestión de Proyectos (ISG3) 127 Gestión Proyectos (dotProject) Tema 5. Gestión de Proyectos (ISG3) 128 Diagramación (Umbrello - Dia) Tema 5. Gestión de Proyectos (ISG3) 129 Diagramación Técnica (QCAD) Tema 5. Gestión de Proyectos (ISG3) 130 Gestión Documental (Alfresco) Tema 5. Gestión de Proyectos (ISG3) 131 Referencias Tema 5. Gestión de Proyectos (ISG3) 132 Referencias Manifesto for Agile Software Development. http://www.agilealliance.org/ The Agile Alliance. http://www.agilealliance.org/home Agile Modeling / EUP http://enterpriseunifiedprocess.info, http://www.agilemodelling.com Open UP http://epf.eclipse.org/wikis/openup/ Free Software Foundation http://www.fsf.org Open Source Initiative http://opensource.org Agile Testing. http://www.testing.com/agile/ Tema 5. Gestión de Proyectos (ISG3) 133 ¡Gracias!.. ¿Preguntas? us@ajsa.net Tema 5. Gestión de Proyectos (ISG3) 134