450 likes | 603 Views
Desarrollo de Software a Distancia Gesti ón de Software 2006. Germán Viera Ariel Ron Julián Magnone. Agenda. Introducción Caso de estudio: SEGAL Calidad Áreas Claves Calidad en la Comunicación Calidad en Proyectos Open Source Proyecto de Ingeniería de Software. Introducción.
E N D
Desarrollo de Software a Distancia Gestión de Software 2006 Germán VieraAriel RonJulián Magnone
Agenda • Introducción • Caso de estudio: SEGAL • Calidad • Áreas Claves • Calidad en la Comunicación • Calidad en Proyectos Open Source • Proyecto de Ingeniería de Software
Introducción • ¿Qué entendemos por Desarrollo de Software a Distancia? • Proyectos en los cuales alguno (o algunos) de los involucrados se encuentra en sitios geográficos diferentes. • Clientes • Proveedores • Conocido como • GSD: Global Software Development • DSD: Distributed Software Development • CSD: Collaborative Software Development
Introducción (2) • ¿Por qué investigar el Desarrollo de Software a Distancia? • Fenómeno en aumento • Reciente aparición • Impacto directo en: • Gestión de Procesos • Calidad • Realidad en la industria de software local
Introducción (3) • Posibles escenarios • Cliente a Distancia • Desarrollo on-site off-shore • Proveedor Distribuido • Open Source Distributed Model
IntroducciónCaso 1 • Cliente a Distancia Proveedor de Software Cliente • Proveedor en sitio geográfico distinto al del Cliente • Sin contacto persona-persona • ej. a través de Internet • Diferentes tamaños de organizaciones
IntroducciónCaso 2 A • Desarrollo on-site off-shore Proveedor de Software Cliente Grupo del Proveedor. • Proveedor en sitio geográfico distinto al del Cliente • Proveedor envía al sitio del cliente un grupo de profesionales para: • Construcción del Producto • Consultoría • Organizaciones quizás no tan pequeñas
IntroducciónCaso 2 B • Desarrollo on-site off-shore Proveedor de Software Cliente Grupo del Proveedor. Grupo Cliente • Un grupo del Proveedor es enviado al Cliente • Posible razón: • Recursos Calificados • Seguridad • Logística
IntroducciónCaso 3 • Proveedor Distribuido Desarrolladores Cliente Proveedor Analistas de Negocio • La estructura del proveedor es distribuida • Abstracción del Proveedor como un “todo”
IntroducciónCaso 4 • Open Source Políticas Documentación Gestión Estrategia Ingeniería etc. Comunidad • Distribución total • El producto surge de la necesidad de los involucrados • Bases de Conocimiento • Concepto de Usuarios
Ventajas del Desarrollo a Distancia • Ventajas para el “Cliente” • Reducir costos • Permite enfocarse en sus procesos de negocio. • Mejora la eficiencia. • Acceder a mano de obra calificada. • Ventajas para el “Proveedor” • Nuevos mercados a nivel global. • Oportunidades en mercados reducidos.
Inconvenientes • Problemas conocidos en eldesarrollo de software a distancia • Comunicación • Distancia • Herramientas y métodos • Coordinación • ej. Actividades • Diferencia Cultural • Diferencia Horaria
Caso de Estudio: SEGAL • Software Engineering andGlobal interAction Laboratory • Objetivo Explorar y estudiar el desarrollo de software a distancia (GSD), con equipos de desarrollo… • distribuidos geográficamente • con diferencia horaria • Dr. Daniela Damian • University of Victoria, Canadahttp://cs.uvic.ca/~danielad
Caso de Estudio: SEGAL (2) • Áreas de Interés • Entender los problemas que enfrenta el desarrollo de software con/en organizaciones distribuidas. • Estudiar herramientas y tecnologías que permitan mejorar la colaboración. • Human-Computer Interaction (HCI) • Paper “Requirements Engineering challenges in multi-site software development organizations”, Dr. Daniela Damian, 2003
Caso de Estudio: SEGAL (3) • Resultados en base a estudios empíricos • Propuesta de desarrollo de un proyecto real • Grupos distribuidos • Actividades del Proceso distribuidas • Negociación, Relevamiento de Requerimientos, Desarrollo, Testing, etc. • 8000KLOC cada liberación • 12 a 18 meses de desarrollo • 120 desarrolladores Full Time
Caso de Estudio: SEGAL (4) • Ubicación geográfica de los involucrados • Cliente distribuido mundialmente. • Gestión del Proyecto en EE.UU. • Gestión de Ingeniería de Software en Australia • Desarrolladores en Australia y Nueva Zelanda
Caso de Estudio: SEGAL (5) • Resultados del estudio • El conjunto de problemas conocidos derivan en retos a resolver. • El paper concluye con recomendaciones de cómo encarar cada uno de éstos problemas.
Caso de Estudio: SEGAL (6) • Herramientas y Tecnologías • Video y Audio • E-mail • IM • Software colaborativo
India • ¿Por qué India? • Ingenieros calificados • Alta motivación • Salarios reducidos • Buen dominio del idioma inglés • 250.000 ingenieros se reciben cada año • Principal Inconveniente • Diferencia Horaria con EE.UU.
Calidad en el Desarrollo a Distancia • Gestión de Calidad basada en estándares • Una implementación más de: • CMM • ISO • Áreas claves a tratar por los grupos QA • Calidad del Producto y Proceso. • Calidad de la Comunicación.
Calidad de la Comunicación • Área Clave. • Requiere un análisis cualitativo y/o cuantitativo desde el kick-off del proyecto. • Informalidad o prácticas no estandarizadas pueden concluir en el fracaso del proyecto.
Calidad de la Comunicación (2) • QA de la Comunicación • Mencionada explícitamente en la mayoría de los estándares de Procesos, aunque sin profundizar. • CMM • Contempla la importancia pero sin definir actividades de medición ni control.
Calidad de la Comunicación (3) • Compromiso con la estabilidad de la calidad de comunicación. • Cláusulas contractuales. • Compromiso del cliente con el proveedor. • Acuerdos en las instancias de interacción.
Calidad de la Comunicación (4) • Temas a Evaluar y/o Medir: • Detalles Estratégicos. • Detalles Culturales. • Distribución del conocimiento. • Diferencia Horaria. • Mantener el Ciclo de Comunicación. • Herramientas de comunicación. • Gestión del Proyecto y Proceso. • Detalles Técnicos.
Calidad de la Comunicación (5) • Detalles Estratégicos: • Información proveniente de diferentes entidades • Consistencia • Independencia • Información digerida hacia la Alta Gerencia • Facilitar la toma de decisiones
Calidad de la Comunicación (6) • Detalles Culturales: • Evaluar la capacidad de comprensión de las diferentes entidades. • Intersección • Disyunción • Evaluar factibilidad de estandarización de la comunicación. • Comunicación Administrativa • Comunicación Técnica • Sensaciones de responsabilidad diferentes • Oriente • Occidente
Calidad de la Comunicación (7) • Diferencia Horaria: • Aprovechar al máximo las interacciones. • Elaborar metodologías de comunicación asincrónica. • E-mail • Medir la calidad de las interacciones • Preguntas antes, respuestas después. • Evaluar si los objetivos fueron cumplidos.
Calidad de la Comunicación (8) • Mantener el Ciclo de Comunicación:
Calidad de la Comunicación (9) • Mantener el Ciclo de Comunicación: Cliente Gerencia Gestión Proyecto Ingeniería
Calidad de la Comunicación (10) • Mantener el Ciclo de Comunicación : Cliente Gestión Calidad Arquitectura y Diseño Requerimientos Desarrollo
Calidad de la Comunicación (11) • Herramientas • Sincrónicas o Asincrónicas • Tiempo Real • Texto, voz, video • Basadas en colaboración estandarizada, o en repositorios • Maximizar comunicación sin olvidar la minimización de costos. • Punto a punto o a través de red de distribución.
Distribución del Conocimiento • Conocimiento del negocio a los desarrolladores, analistas y diseñadores. • Políticas de la organización. • Entrenamiento en herramientas. • Metodologías de trabajo, utilización de estándares. • Decisiones de la gerencia. • Estado actual del proyecto. Digestión de métricas. • Obtención de métricas.
Calidad – Open Source • Aplicado por Organizaciones más conocidas • Apache • Java Net • Objetivos • Calidad del Producto. • Automatización de la Verificación. • Feedback constante de los usuarios. • Independencia del Proceso. • Lineamientos de Calidad acordes a los de la organización.
Calidad – Open Source (2) Especificación Solicitud Base de Conocimiento QA Aseguramiento de la Calidad (Grupos de Discusión)
Calidad – Open Source (3) Gap Análisis (Paso previo al inicio) Asignación de Roles Base de Conocimiento QA Base de Conocimiento Incubadora Adoptar Modelo de Proceso Aseguramiento de la Calidad Objetivos de Calidad del Producto y de Uso Grupo de Calidad Designado
Calidad – Open Source (4) Base de Conocimiento Proyectos Aseguramiento de la Calidad Base de Conocimiento Incubadora Base de Conocimiento QA Grupo de Calidad Designado
Calidad – Open Source (5) • Asumiendo un proceso en Etapas • Etapa Inicial Planificación Especificación Verificación por Pares Base de Conocimiento QA Base de Conocimiento Proyecto Framework de Desarrollo y Verificación Grupo de Calidad Designado Objetivos de Calidad
Calidad – Open Source (6) • Etapas de Elaboración y Construcción Verificación Automática Implementación Diseño Verificación Por Pares Base de Conocimiento QA Base de Conocimiento Proyecto Objetivos de Calidad Grupo de Calidad Designado Calidad de Uso
Calidad – Open Source (7) • Etapa de Liberación Regresión Desarrollo Base de Conocimiento Proyecto Usuarios Calidad de Uso Verificación Base de Conocimiento QA Aseguramiento de Calidad (Org.) Grupo de Calidad Designado
Proyecto de Ingeniería de Software • Características • Nombre del Producto: Unilab - 2004 • Desarrollado a distancia • Equipo de desarrollo en Montevideo, Uruguay • Cliente en Madrid, España • Universidad Politécnica de Madrid
Proyecto de Ingeniería de Software (2) • Inconvenientes: • Objetivos de Calidad no fueron contemplados exitosamente. • Feedback de calidad del producto no adecuado. • Poca retroalimentación. • Puesta en Producción complicada. • Servidor de Producción en España. • Agenda de reuniones afectada por diferencia horaria.
Proyecto de Ingeniería de Software (3) • Conclusión • Si bien se logró cumplir con el alcance establecido, los problemas de comunicación afectaron la calidad del proceso y del producto.
? ? ? ? Preguntas ? ?