domingo, 27 de enero de 2008

Cómo crear un reporte nuevo para Team Foundation Server

Vamos a ver cómo crear un reporte nuevo, desde cero, para usar en un proyecto de Team Foundation Server 2005 o 2008.

Para ello debe estar instalado el SQL Server Business Intelligence Development Studio de SQL Server 2005. Cabe aclarar que esta herramienta funciona con Visual Studio 2005 (no 2008 aún) aunque los reportes que se realicen aquí podrá utilizarse perfectamente en proyectos de Team Foundation Server 2008.

Para una introducción a la arquitectura de reportes en Team Foundation Server ver la entrada de mi blog: http://gabrielparadelo.blogspot.com/2007/11/reportes-en-team-foundation-server.html

Este ejemplo es para un reporte para ver el Esfuerzo Estimado, el Trabajo Restante y el Tiempo Insumido de las tareas de cada persona, filtrado por Proyecto e Iteración. Aunque las ideas pueden utilizarse para crear cualquier tipo de reporte.

  • Debemos comenzar en Visual Studio 2005. Crear un nuevo proyecto de tipo
    Business Intelligence Projects, Template
    Analysis Services Project.
  • Vamos a agregar un data source para trabajar con la información del cubo que mantiene TFS:
  1. Hacer click con el botón derecho en la carpeta
    Shared Data Sources y elegir la opción
    Add New Data Source.
  2. En la solapa
    General, en el campo Name escribir el nombre "TfsOlapReportDS". Es importante respetar este nombre ya que muchos reportes de TFS lo esperan.
  3. En el combo Type elegir Microsoft SQL Server Analysis Services.
  4. Hacer click en el botón
    Edit del connection string para editarlo.
  5. Elegir la base de datos
    TFSWarehouse y dar OK.

(Si quisiéramos trabajar con información de la base relacional habría que usar el nombre "TfsOlapReportDS" en el paso 2 y elegir el tipo Microsoft SQL Server en el paso 3).

  • Ahora vamos a agregar un reporte nuevo. Para ello:
    1. Hacer click con el botón derecho en la carpeta Reports y elegir la opción
      Add New Item.
    2. Elegir Report y hacer click en Add. Escribir el nombre del reporte, por ejemplo "Tiempos de Tareas por Recurso".
    3. El reporte aparecerá en la carpeta Reports y se abrirá. Veremos tres solapas: Data, Layout y Preview.

  • Vamos a preparar los datos que se utilizarán en el reporte:
  1. Crear un dataset dsEjemplo usando el dataset TfsOlapReportDS.
  2. Elegir la perpectiva (característica de la versión Enterprise de SQL Server) Current Work Item (datos actuales) en lugar de Build. (con Work Item History podría centrarme en los datos históricos)
  3. En el árbol de Metadata expandir la rama Measures.
  4. Abrir la carpeta
    Work Item.
  5. Arrastrar la medida (measure) Current Work.Item Count al área de resultados.
  6. Arrastrar la dimension
    Team Project al área dimension/filter y seleccionar el proyecto que quiero ver.
  7. Arrastrar la dimension
    Work Item.Work Item Type al área dimension/filter y seleccionar "Sprint Backlog Item". Para que se vean sólo los WI de este tipo.
  8. Arrastrar la dimension
    Iteration al área dimension/filter elegir … .
  9. Arrastrar la dimension
    AssignedTo.Person al área de resultados. Esto nos mostrará el detalle de personas.
  10. Arrastrar las medidas (measure) Estimated Effort, Work Remaining y Tiempo Insumido al área de resultados.
  • Tenemos listos los datos necesarios para presentar en el reporte pero todavía no veríamos nada si fuéramos a la solapa Preview. Tenemos que diseñar el reporte:
  1. Elegir la solapa
    Layout.
  2. Arrastrar un Table de la toolbox (a la izquierda) al centro de la página.
  3. Arrastrar al área Detail de la tabla los campos del Dataset (también a la izquierda. Si no está visible ir al menú View -> Datasets): Person, Title, State, Estimated_Effort__Scrum_, Work_Remaining__Scrum_ y Tiempo_Insumido.
  4. Cambiar los nombrede los títulos (en el área Header) por "Responsable", "Tarea", "Estado", "Esfuerzo Estimado", "Trabajo Restante", "Tiempo Insumido".
  5. Ir a la solapa
    Preview para ver el reporte.
  • Con esto el reporte está terminado y ahora sí podemos probarlo en la solapa Preview.
    Vamos ahora a subir el reporte a un proyecto de Team Foundation Server:
  1. En Visual Studio, Team Explorer, expandir un proyecto (a dónde subiremos el reporte).
  2. Hacer click con el botón derecho en la carpeta
    Reports y elegir Show Report Site.
  3. Hacer click en el elemento
    Upload File de la toolbar.
  4. Hacer click en el botón
    Browse y elegir el archivo ".rdl" del reporte elaborado. El reporte se agregará a la lista de reportes del proyecto.
  5. Hacer click en el nombre del reporte recién subido. Como aún no está seteado el dataset a utilizar, aparecerá el mensaje de error "The report server cannot process the report. The data source connection information has been deleted. (rsInvalidDataSourceReference)"
  6. Hacer click en la solapa
    Properties y después en el panel
    Data Sources, a la izquierda.
  7. En la página que se abre, seleccionar "A shared data source" (si aún no lo está) y después hacer click en el botón
    Browse.
  8. Elegir el dataset
    TfsOlapReportDS.
  9. Al final de la página, hacer click en Apply.
  10. Hacer click en la solapa
    View para ver el reporte.

Con esto vimos cómo realizar un reporte con datos del cubo OLAP mantenido por TFS. Recuerden que este cubo contiene información pre-agregada que permite realizar consultas con mínimo tiempo de espera.

viernes, 4 de enero de 2008

Compatibilidad de versiones anteriores de Visual Studio con TFS

Les cuento mi experiencia respecto de la compatibilidad que tienen las distintas herramientas de desarrollo con Team Foundation Server 2008:

Visual Studio 2005
Por supuesto esta versión funciona muy bien contra TFS 2008. De hecho clientes y servers 2005 y 2008 son compatibles:



Las diferencias se dan en la administración de builds, donde VS 2008 tiene un mayor control en este aspecto.

Visual Studio 2003
Este cliente puede consumir, de manera integrada, el código fuente del repositorio de Team Foundation Server.

La operación de check-in permite vincular work items, escribir notas y validar políticas de check-in.

El resto de la funcionalidad (visualización y modificación de work items, acceso a las librerías de documentos, reportes) se acceden desde el producto Team Explorer que, en esta versión de Visual Studio, no está integrado y debe utilizarse separadamente.

Visual Studio 6
Este cliente puede consumir, de manera integrada, el código fuente del repositorio de Team Foundation Server.

La operación de check-in permite vincular work items, escribir notas y validar políticas de check-in.

El resto de la funcionalidad (visualización y modificación de work items, acceso a las librerías de documentos, reportes) se acceden desde el producto Team Explorer que, en esta versión de Visual Studio, no está integrado y debe utilizarse separadamente.

Visual FoxPro 6
Este producto no se integra con Team Foundation Server.
El acceso al resto de la funcionalidad es a través del Team Explorer, como en el caso de Visual Studio .NET 2003.

jueves, 3 de enero de 2008

Scrum for Team System

Estoy haciendo consultoría en una empresa de software sobre metodologías ágiles de desarrollo y herramientas para soportarlas, bajo el marco de una certificación ISO 9001. Por ello estuve probando la versión beta del template Scrum para Team Foundation Server 2008, que ofrece Conchango.

Scrum es una metodología ágil de desarrollo basada en principios sencillos pero que, cumplidos rigurosamente, permiten obtener una alta productividad. Es una combinación perfecta para una herramienta como Visual Studio Team System.

Las principales características son:
- Equipos auto-organizados.
- Desarrollo incremental en iteraciones, llamadas sprints, de una duración fija (típicamente 4 semanas).
- Al final de cada sprint debe obtenerse un producto (software) potencialmente "instalable".
- Los requerimientos se capturan en una lista priorizada y actualizada llamada product backlog.

Scrum for Team System es un template que se añade al Team Foundation Server y permite crear proyectos (team projects) con work items, reportes, guía metodológica, etc. adaptados a esta metodología.

Esta en una versión beta, no obstante funciona muy bien y según sus creadores sólo le faltan muchos más reportes y la guía de metodológica actualizada. Dicen que la versión final estará disponible en breve y podrán actualizarse los proyectos in-situ.