Autor: | Sergio Talens-Oliag |
---|---|
Fecha: | 20 de abril de 2007 |
En esta charla se presentará una herramienta web ligera y extensible para la gestión de proyectos y seguimiento de incidencias denominada Trac <http://trac.edgewall.com/>.
La presentación general se concretará con ejemplos de casos de uso reales dentro del Instituto Tecnológico de Informática de Valencia <http://www.iti.upv.es/>.
Sin entrar en metodologías de trabajo concretas, podemos decir que para gestionar adecuadamente un proyecto de desarrollo de software es recomendable disponer de las siguientes herramientas:
Un sistema de planificación que nos permita organizar el proyecto en función de hitos, tareas y subtareas, con asignación y control de tiempos y recursos materiales y humanos.
Idealmente el sistema de planificación debe permitirnos también hacer el seguimiento y reajustar la planificación en función de la evolución del proyecto.
Este componente debe permitir definir un proyecto como una sucesión de hitos que a su vez se descomponen en tareas y subtareas, con asignación de tiempo y recursos a cada una.
Además de definir la planificación el sistema debe proporcionar mecanismos para hacer el seguimiento de la misma y modificar la planificación cuando sea necesario.
Para que esto sea posible es recomendable disponer de herramientas para llevar el control del tiempos estimados y empleados para cada tarea; para poder controlar de verdad la evolución del proyecto es importante que las personas que trabajan en el proyecto vayan reportando el tiempo que dedican a cada tarea y actualicen el estado de las mismas con relativa frecuencia; para un proyecto normal puede ser suficiente con actualizar semanalmente, aunque el control de tiempos siempre es más fiable si se completa diariamente.
Un sistema de gestión documental, que nos servirá para almacenar y mantener los documentos obtenidos o generados durante el desarrollo del proyecto y acceder a ellos cómodamente.
Cada hito, tarea o subtarea puede implicar la obtención o generación de documentación (actas de reuniones, documentos de diseño, etc.); idealmente el sistema de gestión de proyectos debe permitir que almacenemos esa documentación en el propio sistema.
Un sistema de control de versiones, que se utilizará para permitir el desarrollo concurrente y para mantener la historia del código fuente y parte de la documentación producida en el proyecto.
Al tratarse de proyectos informáticos lo normal es que se trabaje con código fuente y con documentos que van evolucionando a lo largo del desarrollo y que deben ser modificados por múltiples personas, por lo que resulta casi imprescindible disponer de un sistema de control de versiones que permita mantener la historia de los ficheros generados y que más de una persona trabaje concurrentemente sobre el mismo código.
Un sistema de gestión de incidencias que se empleará para hacer el seguimiento de los errores detectados y sus correcciones, tanto aquellos reportados por los responsables de la prueba del software como por los desarrolladores o los usuarios finales.
Este tipo de sistema también se puede utilizar como sistema de seguimiento de tareas de corta duración asociadas a fases del proyecto, a errores detectados o a cambios relacionados con solicitudes de mejora solicitadas por el cliente.
Existen multitud de paquetes de software especializados que proporcionan las funcionalidades necesarias para la gestión de proyectos, ya sea por separado o integrando múltiples funcionalidades en un único producto.
En esta presentación hablaremos de Trac, un sistema libre sencillo que integra varios componentes con capacidades suficientes para la gestión del día a día de proyectos de desarrollo de software.
Trac es un sistema web multiplataforma ligero y extensible que incluye las siguientes funcionalidades:
Un wiki que se puede emplear para documentar cualquier aspecto del proyecto de modo colaborativo y sin necesidad de herramientas especiales (sólo necesitamos los permisos adecuados y un navegador web).
La sintaxis del wiki se puede emplear en casi todos los módulos del sistema (por ejemplo en los tickets), se permite la definición y empleo de macros (p. ej. para generar listas de cambios) y la inclusión de texto con sintáxis distintas a la del Wiki como html o rst.
Un visualizador del repositorio Subversion asociado al un proyecto, que nos permite ver el estado actual del repositorio, los cambios que se han ido produciendo, comparar distintas versiones de ficheros en línea, etc.
Es importante indicar que Trac únicamente es un interfaz de lectura para el repositorio Subversion, para acceder al Subversion se pueden usar múltiples medios (https://, svn://, svn+ssh://, etc.). Una opción cómoda para poder compartir los usuarios de Trac con el Subversion es montar el acceso a este último con apache2, de modo que un mismo servidor nos proporcione los dos servicios.
Un sistema de gestión de incidencias o ticketing que nos permite dar de alta incidencias de distinto tipo y hacer el seguimiento de su evolución (modificación de datos, cambios de estado, inserción de comentarios o ficheros adjuntos, etc.) vía web o por correo electrónico.
Actualmente el flujo de trabajo con tickets de Trac es fijo, es decir, las reglas de como y cuando se puede pasar de un estado a otro son fijas, independientemente del tipo o características del ticket.
Trac está desarrollado en torno a la idea de un núcleo al que se le pueden añadir plugins que proporcionan distintas funcionalidades (casi todos los componentes estándar son módulos que pueden ser activados, desactivados o reemplazados o modificados por otros).
Actualmente existen plugins para añadir funcionalidades a Trac como:
Se puede hacer desde la línea de órdenes (trac-admin) o usando el WebAdminPlugin.
Las herramientas permiten:
Los requisitos de las versiones actuales (0.10.x) son:
Varios usos:
Proyecto Trac:
Componentes adicionales:
ITI: