lunes 3 de marzo de 2008

Fue liberado Scrum for Team System Version 2

Está disponible el RTM de Scrum for Team System Version 2., el template de Conchango para Team Foundation Server.
Para acceder hay que registrarse en:

http://scrumforteamsystem.com/en/registerpage1.aspx

Desde allí, después es posible acceder a descargarlo.
Si tienen una versión beta del template instalado, debe desinstalarse primero.
Tampoco olvidar que tiene que estar instalado en el server de TFS el TFS Client para que el template pueda utilizarse.

jueves 28 de febrero de 2008

Scrum for Team System en el MS Architect Forum del 15/2/08

Acá está el PPT de la presentación que di en el Architect Forum organizado por Microsoft en argentina el 15/2/08.

También grabaron todas las charlas en video. Si consigo el link, lo posteo.

http://cid-0b9abcbe363a9927.skydrive.live.com/self.aspx/Public/ScrumForTeamSystem_2008.02.15.ppt

jueves 14 de febrero de 2008

Instalacion de Scrum for Team System

Les paso un tip relacionado con la instalación de Scrum for Team System.
No está claro si está relacionado o no con el témplate de Conchango, pero el hecho es que en todas las instalaciones que hice encontré que comienzan a generarse una serie de entradas en el System event log.

El error dice:

Error DCOM: The application-specific permission settings do not grant Local Activation permission for the COM Server application with CLSID {61738644-F196-11D0-9953-00C04FD919C1} to the user NT AUTHORITY\NETWORK SERVICE SID (S-1-5-20). This security permission can be modified using the Component Services administrative tool.

Hay que buscar el componente WAMREG admin Service en el applet Component Services, solapa Security, panel Launch and Activation Persmissions y agregar el usuario NETWORK SERVICE con el permiso Local Activation.

¡El error se va!

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.

viernes 30 de noviembre de 2007

AJAX Control Toolkit

AJAX Control Toolkit Es un proyecto conjunto entre la comunidad y Microsoft. Está construído sobre las extensiones para AJAX de ASP.NET 2.0. Es una excelente colección de controles Web.
Su home en CodePlex es:
http://www.codeplex.com/Wiki/View.aspx?ProjectName=AtlasControlToolkit

En esta página están listados todos los controles y pueden probarse.
http://www.asp.net/ajax/ajaxcontroltoolkit/samples/

Los que mejor me impresionaron:
- Accordion: Para mostrar múltiples paneles, desplegando de a uno por vez.
- CollapsiblePanel: Un panel que puede contraerse.
- DragPanel: Un panel que puede draggearse con el mouse sobre la página.
- MaskedEdit: Para tener inputs con máscaras.
- HoverMenu: Un menú contextual para usar, por ejemplo, sobre filas de una grilla.
- NoBot: Para identificar invisiblemente si quién está interactuando con la página es una persona o no.

domingo 11 de noviembre de 2007

Presentación sobre WF y WCF

Con mi amigo Dante Otero preparamos una presentación sobre nuestra experiencia de implementación con Workflow Foundation (WF) y Windows Communication Foundation (WCF). Se trató de un sistema para ser utilizado en un Call Center para la atención de solicitudes y reclamos de clientes, relacionado con la venta de suscripciones de diarios y revistas.
Acá está el video de la presentación

jueves 8 de noviembre de 2007

Soma anunció la salida de Visual Studio 2008

Somasegar anunció en su blog que Visual Studio 2008 y Team Foundation Server 2008 estarán disponibles antes de fin de mes (noviembre 2007)
También, por supuesto, la nueva versión del Framework .NET 3.5
link: blogs.msdn.com/somasegar/archive/2007/11/05/teched-developer-in-europe.aspx

Reportes en Team Foundation Server

Crear reportes en TFS asusta un poco cuando se intenta la primera vez. La información parece estar escondida entre montones de bases y tablas. Pero conociendo un poco como está estructurada la información el tema se aclara y el enorme potencial disponible se vuelve manejable.
Para comenzar, los reportes de TFS están montados sobre Microsoft SQL Server Reporting Services y SQL Server Analysis Services.
Team Foundation Server utiliza 3 almacenes de información, optimizados para distintos tipos de utilización.

Almacenes de datos de TFS
TFS utiliza tres almacenes distintos de información, con los datos fluyendo de izquierda a derecha.

La base primaria (TFS OLTP) contiene información online. Está formada por múltiples DB para workitems, control de códifo fuente, builds, etc. Está normalizada y diseñada para ser eficiente en su funcionamiento pero no es fácil de entender a la hora de preparar reportes. Esto no es un problema, ya que para eso están los otros dos almacenes. Es posible que estas bases contengan sólo información reciente.

La segunda base (TFS Relational Warehouse) está orientada a la realización de consultas. Su esquema es más fácil de entender y contiene cierta información redundante, para minimizar la necesidad de joins al preparar los reportes.
Existen procesos que corren periódicamente (por default cada hora), manteniendo esta base actualizada. Contiene toda la información histórica.

Finalmente existe la base para procesamiento analítico (OLAP Cube). Esta base debe ser accedida por medio de Analysis Services y su lenguaje específico, MDX. Esta base es ideal para el análisis de información histórica ya que contiene información pre-agregada para optimizar los tiempos de las consultas.

Para una información más detallada y algunos ejemplos consultar (en inglés):
http://www.microsoft.com/downloads/details.aspx?familyid=a74486b2-f7db-4a85-97bd-46bf478bda60&displaylang=en

sábado 22 de septiembre de 2007

Arquitectura Corporativa

Debería ser natural que a partir del modelo de operación de negocio de una compañía, IT provea la infraestructura para la ejecución de los procesos de negocio y potencie las posibilidades de crecimiento. Esto no siempre se da en la realidad, por lo que es necesario ofrecer una visón integrada de los procesos, la información, las aplicaciones y la tecnología.
El modelo de operación de negocio, identifica el grado de integración (cuánto requieren compartir información las distintas áreas de negocio) y estandarización (procesos unificados entre áreas de negocio) y estará determinado por la estrategia de negocio de la compañía, aunque no siempre de manera consciente ni totalmente coherente.
Es posible presentar un camino evolutivo en el grado de madurez de la arquitectura corporativa, que no siempre es pareja en toda la compañía:
Silos de negocio: focalización de la inversión de IT en la solución de problemas y oportunidades localizadas.
Tecnología estandarizada: foco puesto en infraestructura tecnológica compartida y reducción / estandarización de las plataformas utilizadas.
Core optimizado: Información y aplicaciones unificadas a nivel corporativo, unificando datos y sistemas.
Modularidad de negocio: agilidad estratégica ofrecida mediante módulos reutilizables (ej. servicios empresariales).

sábado 28 de octubre de 2006

Process Template Editor

Este programa, de desarrollo compartido, permite definir nuevos workitems, editar los campos asociados a cada uno, manejar los estados y las transiciones admitidas.
Los formularios pueden diseñarse gráficamente, asignando y modificando la distribución de los campos.
Por detras, el Process Template Editor mantiene los documentos XML correspondientes a cada elemento. Posee funciones para importar y exportar las definiciones entre un proyecto de TFS y un documento XML. También pueden editarse, abriéndolas de un proyecto directamente (open from server).
En este último caso encontramos que en algunas ocaciones la operación falla, terminando con una excepción. Cuando esto sucede ya no es posible abrir ese tipo de workitem desde ese proyecto de TFS, por ello es recomendable exportar la definición a XML. De esta manera, si la apertura desde el proyecto del server no es posible, siempre puede trabajarse sobre el XML de respaldo y luego importarlo al proyecto.

El resumen de este procedimiento es, para cada tipo de workitem que se edite:
1. Open from server.
2. Editarlo.
3. Save (guarda en el server).
4. Export (guarda en disco la definición).

Si el paso 1 falla, realizar:
1. Open from file.
2. Editarlo.
3. Save (guarda en el disco).
4. Import (guarda en el server).

Introducción

En mi trabajo diario uso Team Foundation Server para gestionar el proceso de desarrollo de los proyectos que llevamos adelante. Tengo como objetivo customizarlo para que lo refleje adecuadamente.

Comenzamos con un template basado en scrum, dado que era el que más se parecía al proceso de desarrollo que tenemos (detalles más adelante).

Definimos o modificamos workitems para: casos de uso, releases, iteraciones, tareas y bugs. Estamos trabajando sobre cada uno de ellos en dos proyectos piloto.

Para editar los workitems utilizamos la herramienta Process Template Editor que nos permite editarlos gráficamente, en lugar de hacerlo sobre el XML que los define. Aunque tiene algunos temas pendientes, funciona.