Jornadas de Introducción a la Ingeniería + Trabajo en Grupo = Herramientas de Gestion de Proyectos Software.

Slides:



Advertisements
Presentaciones similares
Bitácora electrónica(blog) con requisitos de acceso e interactividad PARCIAL 3 Q I.
Advertisements

Gestión de versiones. Cronograma Conceptos introductorios Arquitecturas posibles Riesgos en la no utilización Herramientas.
Proyecto Aula Virtual. Conceptos El Aula Virtual es una plataforma versátil que proporciona herramientas que facilitan la docencia presencial/semipresencial/virtual.
Ing. De la Puente, Matias Sistema de control de versiones GIT
Control de Versiones Utilizando SVN. ELO329 - Diseño y Programación Orientado a Objetos 2 Control de Versiones ”Se llama control de versiones a la gestión.
Proyecto ROOTVE V2: Control de versiones con Subversion Grupo de Investigación y Desarrollo en Seguridad de la Información - GIDSI.
Un modelo de Gestión Automatizada de Dispositivos IP mediante Software Libre Un Modelo de Gestión Automatizada de Dispositivos IP mediante Software Libre.
VIDEOCONFERENCIA Por: Ana Ramos Fuentes. ¿Que es? Videoconferencia o videollamada es la comunicación simultánea bidireccional de audio y vídeo, que permite.
Primer Taller de desarrollo con Software Libre Posadas - Misiones José Luís Di Biase Héctor Daniel Sanchez
SOFTWA RE APLICATIVO Y DE DESARROLLO. Software aplicativo Software de Aplicación es todo programa informático diseñado para facilitar al usuario la realización.
Planificación y Arquitectura Ciclo de vida de definición, diseño e implementación de soluciones WSS 3.0 / MOSS Planificando hojas de trabajo Consideraciones.
El Brief Carlos Palomino Pareja. Principio  La actividad publicitaria se inicia cuando un cliente plantea a la agencia un problema relacionado con un.
UNIVERSIDAD DE PANAMÁ CENTRO REGIONAL UNIVERSITARIO DE COCLÉ FACULTAD DE INFORMÁTICA ELECTRÓNICA Y COMUNICACIÓN ESCUELA DE INFORMÁTICA PARA LA GESTIÓN.
ALFRESCO.
Portales colaborativos
Comunicación interna
Biblioteca Virtual, Repositorio Institucional y Observatorio Tecnológico Objetivo: Recuperar y gestionar toda la documentación científica, revistas, tesis,
Tutorial Aula Virtual Parte I
METODOLOGIA DE TRABAJO
Mensajería Instantánea
Administración Municipal de Gómez Palacio
Cochabamba – Bolivia Junio 2017
Tema 4: Ingeniería del Software
Aprender y enseñar en colaboración
Unidad 3- Desarrollo de la acción tutorial en línea.
Fundamentos de negocios y comercio electrónico.
ESTRATEGIAS DE SEGUIMIENTO Y ACOMPAÑAMIENTO DE TUTORÍA VIRTUAL
introducción Ingeniería de software
INTRODUCCIÓN Elmasri: Pág
CAPACITACIÓN ADOBE CONNECT INDICE? 1. ¿Qué es adobe Connect? 2. ¿Quién debe usar Adobe Connect? 3. Requerimientos Básicos Para el uso de la herramienta.
Profesor: José Luis Gonzalez
Universidad manuela beltran - virtual
CÓMO CREAR UNA CUENTA EN WIKISPACES.COM.
PLATAFORMAS DE APRENDIZAJE - LMS
Fundamentos del computador
PREZI..
La planeación y la organización de problemas técnicos y el trabajo por proyectos en los procesos productivos.
Tendencias en los sistemas operativos
Herramienta tareas ¿Que es internet? ¿Cómo funciona internet?
LA FUNCION INFORMATICA
¿Qué es ITIL? “Information Technology Infrastructure Library”
Eliana matallana – mónica yate
Las herramientas Case Julian madrigal.
Qué son y características generales
Facilitador: Salvador López Vargas
Escritorios Virtuales
MODALIDADES QUE LA TECNOLOGIA PRESENTA
Diagramas del modelo uml
Vivir en un mundo basado en redes
TAREA 3 GLOSARIO TIC Libia Quintana HERRAMIENTA TAREAS.
Proceso Unificado de Desarrollo de Software
Tendencias de Recursos y medios más utilizado en Eva´s
1199 Logos Escuela de Bachilleres, S.C.
NOMBRE DE LA ASIGNATURA: VERIFICACIÓN Y VALIDACIÓN DEL SOFTWARE
Empresa: Software ABC Colombia
EJEMPLO DE USO DE MAHARA PARA LA TUTORÍA DE PROYECTOS DE INVESTIGACIÓN
TRABAJO ESPECAL DE GRADO
Área de Soporte al Usuario
XBRL en la recogida de datos de las Estadísticas Estructurales
APLICACIÓN DEL PORTAFOLIO EN LA ENSEÑANZA DE LA MATEMATICA
Aplicación de PSP (Personal Software Process)
Presentación de seguimiento del proyecto Equipo LSI 02
C.R.M. Comercial.
Agentes: Introducción
BASES DE DATOS II.
Instituto Tecnológico de Zacatecas
Kick Off del Proyecto Fecha:
METODOLOGÍAS ÁGILES Por metodologías ágiles entendemos a aquellas metodologías de gestión que permiten adaptar la forma de trabajo al contexto y naturaleza.
¿Qué es ISO 19115:2003? “ Identifica los metadatos necesarios para describir la información geográfica digital. Los metadatos pueden describir conjuntos.
SISTEMA INTEGRAL DE GESTION TRI NORMA
Transcripción de la presentación:

Jornadas de Introducción a la Ingeniería + Trabajo en Grupo = Herramientas de Gestion de Proyectos Software

Índice ● Conceptos básicos de gestión de proyectos software ● Gestión de grupos de trabajo ● Herramientas para la gestión de proyectos software – Sistemas de control de versiones – Sistemas de seguimiento de errores (Bugtrack)

Conceptos

● Milestone: – “an important event in the development or history of something or in someone's life”. (Cambridge dictionaries online) – Conjunto de tareas que conforman un hito importante en la vida de un proyecto. ● Roadmap: – Refleja la evolución del proyecto e informa de objetivos futuros. ● Tarea: – Cualquier labor o trabajo que se tenga que realizar en un proyecto (análisis, documentación, implementación, pruebas). Conlleva un plazo de entrega. ● Componente: – Partes o bloques de un proyecto. Es frecuente reutilizar componentes entre proyectos. Conceptos

● Línea de tiempo asociada a la vida de un código fuente Esquema obtenidos de Conceptos

● Los entornos de trabajo: – Entorno de desarrollo – Entorno de preproducción – Entorno de producción

Gestión de un grupo de trabajo

Definición ● Un grupo de desarrollo software no deja de ser un grupo de trabajo ● Definición de grupo, ~ de trabajo: – Conjunto o equipo que en una escuela organiza el profesor o constituyen los alumnos para realizar en común una tarea. (RAE) ● En nuestro caso: – Conjunto de individuos con un rol o perfil determinado con un objetivo común.

Definición ● Cada individuo interacturará con el grupo según su perfil. ● Dos aspectos a tener en cuenta: – Problemas intrínsecos a la comunicación entre personas – Necesidades del “día a día” del trabajo en grupo ● Uso de la informática como solución a estos problemas

Problemas en la comunicación ● Las interacciones puede ser: – Conversaciones de voz. – Transferencia de documentación escrita. – Presentaciones, exposiones, seminarios – Etc... ● En definitiva, intercambio de información.

Problemas en la comunicación ● Factores que afectan a la comunicación en grupo: – El número de individuos – La distribución geográfica de los miembros – Diferencias sociales, culturales, horaria – Tipo de información que se transmite – Idioma

● Disponemos de diversos mecanismos para realizar esa comunicación. – – Fax – Teléfono – Publicaciones web – Pizarras virtuales – Video conferencia P2P propósito general Mecanismos de comunicación

– Foros – Chats – Mensajería instantánea – Calendarios colaborativos – Repositorios de documentos – Herramientas de gestión de proyectos – Planificadores de proyectos – Etc... propósito especifico Mecanismos de comunicación

Necesidades del “día a día” ● Va a depender del objetivo del grupo de trabajo. ● Nos centraremos en los grupos de trabajo de desarrollo de software.

Características de las herramientas de gestión de proyectos software

Características ● Múltiples proyectos – Es frecuente estar trabajando en más de un proyecto. – Puede ser necesario compartir información entre proyectos. – Visión centralizada de los proyectos. – Configuración personalizada para cada proyecto.

Características ● Administración de múltiples usuarios – Cada usuario puede estar vinculado a uno más proyectos. – Los usuarios necesitarán personalizar su vista sobre la información de los proyectos (dashboard).

● Preferencias de usuario – Contraseña – Zona horaria y formato para la fecha – Proyecto por defecto tras autenticarse – Correo electrónico, datos personales – Tareas por página – Etc... Características

● Administrador de tareas – Vista detallada de las tareas. – Información sobre el estado de las mismas (workflow). – Histórico de la tarea (fechas, modificaciones, etc...). – Discusiones asociadas a tareas. – Recursos consumidos (temporales, humanos, etc...).

Características ● Dependencia entre tareas – Controlar que determinadas tareas no comiencen hasta que se hayan cerrado otras. Situación habitual. – Pueden ayudar a mantener la planificación del proyecto (milestone, roadmap).

Características ● Diagramas GANTT – Muy útiles para tener una visión centralizada de la distribución de los recursos y las tareas en el tiempo. – Necesarios para la toma de decisiones. – Planificación de milestones futuras.

Características ● Calendario – Centralización de fechas importantes. – Individuales. – Asociados a proyectos.

Características ● Notificaciones – Activas y/o pasivas. – Correo electrónico. – Permiten informar de cambios relacionado con el proyecto o los proyectos: ● Nuevos tickets ● Nuevos eventos ● Modificación en los estados de un ticket que tengamos asociado. ● Etc..

Características ● Administrador de documentos – Permitirán compartir archivos con otros usuarios. – Controlar permisos de acceso. – Visión individual o a nivel de proyecto.

Características ● Foros de discusión – Establecen una comunicación activa. – Permiten intercambiar ideas y/o comentarios sobre tickets y otros elementos relacionados con el proyecto. – Resuelven los problemas en la comunicación originados por las diferencias geográficas. Huso horario.

Características ● Mensajería – Establece una comunicación entre usuarios. – Sistema de comunicación pasiva. – Permiten la coordinación entre subgrupos de trabajo.

Dos casos muy específicos ● Sistemas de control de versiones ● Sistemas de seguimiento de errores (bugtrack)

Sistemas de control de versiones

¿Qué es un sistema de control de versiones? ● Sistema que sirve para mantener distintas versiones de un fichero, normalmente código fuente, documentación o ficheros de configuración ● Ejemplos: – Guardar distintas copias de los ficheros nombrándolos adecuadamente – Hacer scripts para automatizar procesos – Usar un software específico para realizar el control de versiones

Utilidad de un Sistema de Control de Versiones ● Centrado en desarrollo de software. Código fuente principalmente ● Comparación entre estados de un código en el tiempo ● Recuperación de estados pasados ● Sistema de respaldo en caso de perdida (backup) ● Resolución de conflictos en un desarrollo colaborativo

El problema de compartir ficheros ● El problema que queremos evitar es el siguiente: Imagen obtenida de (Subversion book)

Solución Bloquear-Modificar-Desbloquear ● Una primera solución al problema es la siguiente: Imagen obtenida de (Subversion book)

Solución Copiar-Modificar-Unir ● La segunda solución (la más habitual) es: Imagen obtenida de (Subversion book)

Solución Copiar-Modificar-Unir ● Continuamos con la solución Imagen obtenida de (Subversion book)

Uso de un sistema de control de versiones ● Procedimiento de uso habitual de un sistema de control de versiones: – Descarga de ficheros inicial (Checkout) – Ciclo de trabajo habitual: ● Modificación de los ficheros ● Actualización de ficheros en local (Update) ● Resolución de conflictos (si los hay) ● Actualización de ficheros en repositorio (Commit).

Uso avanzado de los SCV ● Ramas (branches) – Políticas de definición de ramas ● Etiquetas (tags) ● Rama principal (trunk) ● Fusiones de ramas (merge)

Sistemas de seguimiento de errores (Bugtrack)

El problema ● Los proyectos de software crecen: – Mayor cantidad de código fuente → mayor número de bugs – Mayor cantidad de funcionalidades → mayor número de bugs ● Los bugs realmente importantes son los encontrados por los usuarios finales de nuestro software. ● La figura del QA (Quality Assurance). ● Necesidad de gestión de esos bugs

¿Qué es un Sistema de Bugtrack? ● Permite notificar bugs de forma centralizada. ● Establece un flujo de trabajo, basado en estados, a partir de los bugs. ● Proporciona un sistema de notificación (rss, s, etc...). ● Proporciona un histórico de bugs del proyecto.

¿Qué es un Sistema de Bugtrack? ● Ayuda a establecer el roadmap basado en los bugs de nuestro proyecto. ● Proporciona un histórico de milestones y releases de nuestro proyecto. ● Es una herramienta muy importante de trabajo para el QA (Quality Assurance). ● Permite conseguir un feedback entre el usuario final y el grupo de desarrollo.

Esquema de trabajo Esquema obtenido de Los problemas resueltos se marcan como cerrados, los que no han sido resueltos, se reabren Nuevos bugs y mejoras son enviados por el equipo de calidad El equipo de calidad comprueba que los problemas han sido resueltos en la nueva versión El equipo de desarrollo saca una nueva versión interna con los bugs corregidos y mejoras El equipo de desarrollo corige los problemas según su prioridad y los marca como corregidos Líderes de proyecto asignan una prioridad a esos problemas

Algunas recomendaciones ● Un buen tester debe intentar reducir al máximo el número de pasos necesarios para reproducir el bug. ● La única persona que puede cerrar un bug es la persona que lo abrió en primer lugar. Cualquiera puede resolver, pero sólo la persona que lo abrió puede estar segura de que está corregido. ● Toda versión del software que se le de a los testers debe estar identificada claramente (p.ej. Con una etiqueta). ● Evita añadir nuevos campos al sistema de bugtrack para no complicar el proceso de añadir y modificar bugs. ● Motivar a testers y programadores para usar el sistema de bugtrack.

En resumen ● Grandes proyectos en la actualidad son gestionados con sistemas de bugtrack. ● Centraliza en una única herramienta la casi la totalidad del trabajo del QA. ● Estos sistemas son necesarios independientemente de los recursos humanos de los que esté compuesto el grupo de trabajo.

Conclusiones

● La gestión de un desarrollo software es un caso particular de trabajo en grupo. ● Existen herramientas que pueden facilitar en gran medida esta gestión. – Más genéricas: Calendario, gestión de tareas – Más específicas: Sistemas de control de versiones o seguimiento de errores

Conclusiones ● Cuanto mayor sea el proyecto, mayor es la necesidad de este tipo de herramientas. ● El uso de estos sistemas requiere habituarse a una metodología que conlleva un periodo de adaptación. ● Sin embargo, los beneficios que se obtienen son muy significativos.

Tendencias ● Adaptar nuestras necesidades a soluciones de bajo coste o libres. ● Adquirir software con licencia. ● Outsourcing.

Referencias

Referencias: Herramientas de gestión de proyectos software ● Project management software, collaboration team and group, project tracking – ● Trac: Integrated SCM & Project Management – ● Basecamp – ● ACE Project – ● DotProject – ● Project.NET –

Referencias: Sistemas de Control de Versiones ● Subversion (Project home): – TortoiseSVN: – Plugin para Eclipse (subclipse) ● Concurrent Version System: ● Arch: ● Version Control with Subversion: bean.com ● BetterSCMInitiative:

Referencias: Herramientas de seguimiento de errores ● Bug Tracking Made Simple: ● Painless Bug Tracking: ● Mantis: ● FastBugTrack: ● Bugzilla: ● BUGTrack: ● Project Management Software: management-software.org

¿Preguntas?

Muchas gracias