La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

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

Presentaciones similares


Presentación del tema: "Jornadas de Introducción a la Ingeniería + Trabajo en Grupo = Herramientas de Gestion de Proyectos Software."— Transcripción de la presentación:

1

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

3 Í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)

4 Conceptos

5 ● 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

6 ● Línea de tiempo asociada a la vida de un código fuente Esquema obtenidos de http://svnbook.red-bean.comhttp://svnbook.red-bean.com Conceptos

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

8 Gestión de un grupo de trabajo

9 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.

10 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

11 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.

12 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

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

14 – 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

15 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.

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

17 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.

18 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).

19 ● 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

20 ● 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...).

21 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).

22 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.

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

24 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..

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

26 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.

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

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

29 Sistemas de control de versiones

30 ¿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

31 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

32 El problema de compartir ficheros ● El problema que queremos evitar es el siguiente: Imagen obtenida de http://svnbook.red-bean.com/en/1.1/ch02s02.html (Subversion book)http://svnbook.red-bean.com/en/1.1/ch02s02.html

33 Solución Bloquear-Modificar-Desbloquear ● Una primera solución al problema es la siguiente: Imagen obtenida de http://svnbook.red-bean.com/en/1.1/ch02s02.html (Subversion book)http://svnbook.red-bean.com/en/1.1/ch02s02.html

34 Solución Copiar-Modificar-Unir ● La segunda solución (la más habitual) es: Imagen obtenida de http://svnbook.red-bean.com/en/1.1/ch02s02.html (Subversion book)http://svnbook.red-bean.com/en/1.1/ch02s02.html

35 Solución Copiar-Modificar-Unir ● Continuamos con la solución Imagen obtenida de http://svnbook.red-bean.com/en/1.1/ch02s02.html (Subversion book)http://svnbook.red-bean.com/en/1.1/ch02s02.html

36 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).

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

38 Sistemas de seguimiento de errores (Bugtrack)

39 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

40 ¿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, emails, etc...). ● Proporciona un histórico de bugs del proyecto.

41 ¿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.

42 Esquema de trabajo Esquema obtenido de http://www.developer.comhttp://www.developer.com 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

43 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.

44 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.

45 Conclusiones

46 ● 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

47 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.

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

49 Referencias

50 Referencias: Herramientas de gestión de proyectos software ● Project management software, collaboration team and group, project tracking – http://www.project-management-software.org/ http://www.project-management-software.org/ ● Trac: Integrated SCM & Project Management – http://www.edgewall.com/trac/ http://www.edgewall.com/trac/ ● Basecamp – http://www.basecamphq.com/ http://www.basecamphq.com/ ● ACE Project – http://www.aceproject.com/ http://www.aceproject.com/ ● DotProject – http://www.dotproject.net/ http://www.dotproject.net/ ● Project.NET – http://www.project.net/ http://www.project.net/

51 Referencias: Sistemas de Control de Versiones ● Subversion (Project home): http://subversion.tigris.org – TortoiseSVN: http://tortoisesvn.tigris.org – Plugin para Eclipse (subclipse) ● Concurrent Version System: http://subversion.tigris.org ● Arch: http://gnuarch.org ● Version Control with Subversion: http://svnbook.red- bean.com ● BetterSCMInitiative: http://better-scm.berlios.de

52 Referencias: Herramientas de seguimiento de errores ● Bug Tracking Made Simple: http://www.developer.com/mgmt/article.php/11085_3389021_1 ● Painless Bug Tracking: http://www.joelonsoftware.com/articles/fog0000000029.html ● Mantis: http://www.mantisbt.org ● FastBugTrack: http://www.fastbugtrack.com ● Bugzilla: http://www.bugzilla.org ● BUGTrack: http://www.ebugtrack.com ● Project Management Software: http://www.project- management-software.org

53 ¿Preguntas?

54 Muchas gracias


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

Presentaciones similares


Anuncios Google