TFS + MS Project: cómo hacer que se lleven bien

Durante el trabajo con Team Foundation Server en distintos equipos de desarrollo, al usar la integración con MS Project, he podido comprobar que surgen dudas recurrentes, sobre todo relacionadas con la sincronización de las fechas de inicio y fin de las tareas (Start Date y Finish Date). En este post voy a comentar una serie de recomendaciones para trabajar con dichas herramientas y un par de métodos para minimizar los problemas de sincronización de fechas, las cuales por otra parte sólo son editables desde Project y Excel según vienen configuradas por defecto en las plantillas metodológicas de CMMI y MSF for Agile.

 

CamposFecha

 

“Buenas prácticas” de trabajo con TFS + MS Project

Un escenario que ilustra bastante bien una forma de trabajar correcta con las herramientas sería el siguiente:

  • Comenzar por introducir las tareas de nuestro proyecto como elementos de trabajo (work items) de TFS
  • En el momento en que necesitemos usar Project, podemos exportar las tareas desde Team Explorer (por ejemplo desde el menú contextual asociado a los resultados de una consulta de elementos de trabajo)
  • Una vez en Project podemos modificar las tareas a nuestro gusto; cambiar la fecha de inicio, calendario, duración o cualquier otro dato asociado. Si usamos la opción de publicar del addin de Project para TFS (menú Team en MS Project), estos cambios se verán reflejados en TFS
  • Al finalizar los cambios, guardaremos el fichero .mpp para poder usarlo posteriormente. Lo mejor es que lo publiquemos en el portal de proyecto alojado en Sharepoint, de modo que sea accesible para otros miembros del equipo que lo necesiten

Una vez hecho esto (y aquí es donde está la fuente de confusión más común), cuando queramos trabajar con las tareas de TFS, lo mejor es que el fichero de Project actúe como “maestro” de la información y no al revés. Es decir:

  • Si queremos actualizar el fichero de Project con cambios en las tareas que se hayan hecho en TFS, abriríamos dicho fichero desde el portal de proyecto e incorporaríamos los cambios usando la opción de refrescar que nos proporciona el addin de Project para TFS
  • Si queremos incorporar nuevas tareas añadidas en TFS a nuestro fichero de Project, podemos usar la opción de obtener work items proporcionada por el addin
  • También podemos añadir tareas nuevas en Project y publicarlas en TFS como comenté anteriormente
  • Al acabar de trabajar, guardaríamos los cambios en el portal de proyecto para que estén disponibles para el resto del equipo

De esta forma el fichero de Project siempre estará sincronizado con las tareas de TFS y nos ahorraremos los problemas de los que voy a hablar a continuación.

 

Problemas de sincronización de fechas de inicio y fin de tareas

En las plantillas metodológicas de MSF for Agile y CMMI que vienen de serie con TFS, en el mapeo de campos con MS Project, el modo de sincronización por defecto de los campos de fecha de inicio y fin de tarea está establecido a “Publish only”. Esto quiere decir que sólo se guardarán cambios en esos campos cuando guardemos en sentido Project -> TFS, pero no cuando guardemos en sentido TFS -> Project. Esto nos puede llevar a problemas si tenemos escenarios como el que describo a continuación:

  • Un miembro del equipo introduce una serie de tareas en TFS, modifica la fecha de inicio y la duración en Project y publica los cambios de vuelta a TFS. En este punto, las tareas en TFS tienen las fechas de inicio y fin correctas
  • Otro miembro del equipo (o el mismo 🙂 ) exporta desde TFS a Project las tareas, usando un fichero de Project nuevo. Como el contenido de los campos de fecha no viaja en sentido TFS -> Project, la fecha de inicio de las tareas en Project será la del día de hoy (de todas las tareas, por lo que incluso se pierde la ordenación entre las mismas). De hecho el usuario lo suele percibir como que se ha perdido el trabajo de planificación que había realizado, cuando en realidad las fechas siguen intactas en TFS
  • Si después de trabajar con el Project dicho usuario publica los cambios a TFS, las tareas se guardarán con la fecha errónea y entonces sí que se pierden todos los cambios que se habían realizado en la anterior publicación

 

Solucionar los problemas de sincronización: método fácil y rápido

El método más simple para solucionar el problema descrito es ceñirse a las buenas prácticas que describí anteriormente. Si todo el equipo trabaja siempre sobre el mismo fichero de Project (alojado en Sharepoint), y de la forma descrita, nunca sobreescribiremos las fechas de las tareas en TFS con datos erróneos.

 

Solucionar los problemas de sincronización: método menos fácil y menos rápido

La otra solución pasa por modificar el mapeo de los campos de fecha de TFS a Project para eliminar la restricción “Publish only”. De esta forma se elimina el riesgo de sobreescribir la fecha de las tareas en TFS, ya que al exportar en sentido TFS -> Project los valores de esos campos también serán actualizados. En cualquier caso, aunque se siga este segundo método, creo que sigue siendo muy ventajoso complementarlo con las buenas prácticas descritas.

Para eliminar la restricción “Publish only” procederemos de la siguiente forma:

  • Descargar y abrir la plantilla metodológica correspondiente (lo mejor es usar el editor proporcionado por las power tools de TFS)
  • Dentro del apartado “Areas & Iterations”, seleccionar “MS Project Mapping”

 

PublishOnly

 

  • Hacer doble click en el elemento “Microsoft.VSTS.Scheduling.StartDate”. Desmarcar “Publish only” y pulsar OK
  • Lo mismo para “Microsoft.VSTS.Scheduling.FinishDate”
  • Guardamos los cambios y subimos la plantilla metodológica al servidor de TFS, sobreescribiendo la actual. A partir de este punto las fechas de inicio y fin se sincronizarán en ambos sentidos para los proyectos nuevos

Para aplicar estos cambios en proyectos existentes, haremos lo siguiente:

  • Una vez guardada la plantilla metodológica, los cambios en el mapeo se habrán reflejado en el fichero FileMappings.xml ubicado en la carpeta Classification, dentro de la carpeta que obtenemos al descargar la plantilla metodológica
  • Incorporaremos los cambios a cualquier proyecto existente importando el nuevo FileMappings.xml en él. Para ello podemos usar la herramienta TFSFieldMapping.exe ubicada normalmente en C:Program FilesMicrosoft Visual Studio 9.0Common7IDE (y accesible desde un símbolo de sistema de Visual Studio):
TFSFieldMapping upload http://servidortfs:8080 NombreDeProyecto "C:...Plantilla MetodologicaClassificationFileMappings.xml"

Una vez ejecutado el comando, la sincronización de fechas para las tareas comenzará a ser bidireccional.

 

Y eso es todo… espero que haya sido de ayuda para los que trabajan con MS Project y TFS.

 

Un saludo!!!

5 comentarios en “TFS + MS Project: cómo hacer que se lleven bien”

  1. Buenas,

    he seguido los pasos, pero me han desaparecido los dos campos en la visualizacion. He comprobado que estan en el fichero de mapeos, asi como en el de diseño de formularios (incluso en la previsualización del formulario aparecen), pero no se muestran al visualizar una tarea.

    ¿Que puedo hacer?

    Gracias.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *