02 abril 2007



SVN + TRAC = Remote Project Management

Encontramos en la empresa un hosting de Subversion bastante bueno: Hosted-Projects que nos representa alrededor de US$7/mes y tiene todo lo esperado de un Servidor SVN. En un futuro próximo esperamos implementar uno propio.

Adicional a esto, el sitio ofrece integración de SVN con TRAC-Project, una alternativa Wiki muy buena para administración de proyectos y código. Esta integración implica que se pueden hacer cosas como:

Changesets: detalle de una actualización de código (Commit en Tortoise) que muestra quién actualizó, cuándo pasó y qué cambios incluye.

Milestones: Agendas de proyecto que indican los cambios que se esperan de versión en versión para tener claras las tareas que hay que crear y asignar.

Browse Source: funcionalidad para navegar en el código fuente en línea, comparar las versiones al nivel de líneas de código de una forma muy amigable, capacidad de utilizar wiki para referenciar las versiones, archivos y líneas.

Tickets: tareas asignables, incluyentes en una determinada agenda (milestones). Pueden ser errores a arreglar, mejoras pendientes, tareas de test, etc. Al dueño de la tarea le llega un correo notificándole lo que hay que hacer, dónde hay que hacerlo (código fuente referenciado), para cuándo tiene que estar, etc.

Capacidades Wiki: este paradigma de edición de páginas en este contexto permite crear reportes de Tickets totalmente personalizados, cambiar la apariencia del sitio, agregar páginas informativas del proyecto, utilizar formato wiki para referenciar cualquier cosa (un usuario, una versión, una página, un archivo, una línea de código, etc.), las posibilidades son extraordinarias.
TRAC implementa una modalidad para SQL Queries que permite hacer cosas como:

SELECT p.value AS __color__,
owner AS __group__,
id AS ticket, summary, component, milestone, t.type AS type, time AS created,
changetime AS _changetime, description AS _description,
reporter AS _reporter
FROM ticket t
LEFT JOIN enum p ON p.name = t.priority AND p.type = 'priority'
WHERE status = 'assigned'
ORDER BY owner, p.value, t.type, time


que en este caso muestra todos los tickets que ya estén asignados, agrupados por dueño, ordenados por prioridad. Esto se puede guardar como un reporte personalizado, por ejemplo.

Bueno, no me quiero extender mucho, prefiero que ustedes lean todo lo que se puede hacer.

Éste tipo de herramientas son muy útiles cuando se trabaja de forma remota, permitiendo un control detallado y ordenado de lo que se está haciendo.

Para cliente SVN les recomiendo Tortoise el cual es gráfico e integrado a tu explorador de carpetas, también pueden usar la versión de línea de comandos o plug-ins para sus IDE's. En cualquier caso lean bien la documentación tanto de SVN como de su cliente para utilizar de la mejor manera la estructura de directorios, las actualizaciones de código y el trabajo en equipo.

Aquí solo resta decir que el administrador del proyecto tiene que ser muy ordenado en la estructura de la agenda de trabajo, en la distribución de tareas, en la estructura de directorios y accesos de seguridad. También tiene que haber disciplina de los desarrolladores en utilizar la herramienta y estandarizar los mecanismos de administración, codificación y comunicación. En otro post estaré hablando de estas recomendaciones.

No hay comentarios.: