Este documento presenta una introducción a Team Foundation Server 2010. Explica que TFS es una plataforma de colaboración para la gestión del ciclo de vida de aplicaciones que automatiza el proceso de entrega de software y proporciona herramientas para gestionar proyectos de desarrollo de forma eficaz. Se detallan conceptos clave como team project collections, team projects y la terminología jerárquica de TFS. También se describen características como la integración con Visual Studio y otras herramientas.
2. Temario
1. Introducción a TFS
2. Instalación y Configuración
3. Metodologías de Desarrollo
4. Work Items
5. Control de Código
6. Gestión de Proyectos con TFS
7. Portal de Proyecto y Reporting
8. Integración Continua
9. TFS Power Tools y Plantillas de Proyecto
4. Visual Studio 2010
5 versiones:
Express
Professional ($799)
Professional with MSDN ($1199 - $799 upgrade)
Premium with MSDN ($5,469 - $2,299 upgrade)
Ultimate with MSDN ($11,924 - $3,841 upgrade)
5. Visual Studio 2010
Premium incluye:
Tests Unitarios, de cobertura y de interfaz (Coded UI)
Generación de datos para tests
Análisis y métricas de código
Perfiles
Ultimate incluye:
Tests de carga y performance para Web
Intellitrace (depurador histórico)
Gestión de Tests
8. Team Foundation Server
Visual Studio TFS 2010
Plataforma de colaboración
Gestión del ciclo de vida de una aplicación (ALM)
Automatiza el proceso de entrega del software
Proporciona herramientas para gestionar
eficazmente los proyectos de desarrollo de software
11. Team Foundation Server
Team Project Collection
Instancia en SQL Server que almacena proyectos
colaborativos
Asociada a un sitio SharePoint (opcional)
Accesible desde Administration Console
Default Collection
Ej: Tailspin Toys
12. Team Foundation Server
Team Project
Proyecto de equipo compuesto
Work Items
TFVC
Sitio Web del proyecto
Librería de Documentos
Reports
Builds
Iteraciones
…
13. Team Foundation Server
Team Project
Se crea a partir de una plantilla de proceso
MSF for Agile
MSF for CMMi
Otras descargables
Configurables mediante Power Tools
14. Team Foundation Server
Integración con otras herramientas
Integrado con Visual Studio 2010
http://localhost:8080/tfs/
Integrado con Excel (Pestaña Team)
Integrado con MS Project (Menú Team)
Plugin para Eclipse
Team Explorer Everywhere
16. Team Foundation Server
Requisitos mínimos
< 20 usuarios
8GB disco + 1GB memoria
20-250 usuarios
230GB disco + 2GB memoria
> 250 usuarios
500GB disco + 4GB memoria
Software
SQL Server 2008 Standard
Windows SharePoint Services 3.0
Windows Server 2003 SP2
17. Team Foundation Server 11
Nueva edición en fase Beta
Basado en .Net 4.5
2 ediciones
Completa
Express
23. Instalación de TSF 10
http://www.microsoft.com/en-
us/download/confirmation.aspx?id=24337
Se puede hacer una instalación básica
Configura IIS automáticamente
Incluye SQL Server Express
No incluye Portal de Proyecto ni Reporting
25. Instalación de TSF 10
O una instalación avanzada
Todo en la misma máquina
Necesitamos SQL Server 2008
Para los servicios de Reporting
El Portal de Proyecto se configura como WSS
26. Instalación de TSF 10
O una instalación avanzada
Utilización de distintos servidores
27. Configuración de TSF 10
Se inicia tras la instalación
Si al finalizar marcamos la casilla
Launch Team Foundation Server Configuration Tool
La configuración básica
Incluye SQL Express
Permite especificar otro SQL Server
Si tenemos portal de proyecto
Hay que validar la cuenta de Servicios de Red
DOMINIOwssservice
30. Migración
Migrar la última versión de Visual Source Safe
1. Abrir VS con VSS y obtener la última versión
2. Desconectar la solución de VSS
File > Source Control > Change Source Control
Unbind the Solution and all Projects
3. Establecer TFS como control de código
Tools > Options > Source Control
4. Crear un Team Project
5. Abrir la solución y añadirla a control de código
6. Check in de los cambios
31. Migración
Migración completa desde Visual Source Safe
1. Preparar la máquina destino
VSS y TFS en el mismo servidor
5GB de espacio libre en disco para ficheros temporales
Doble del espacio ocupado en VSS
VSS 2005 + parche para VSSConverter
2. Comprobar permisos
Administrador de VSS y grupo Administradores en la
máquina del TFS
Permiso de creación en la Base de Datos
32. Migración
3. Planificar la migración
i. Hacer check-in de todo
ii. Bloquear el acceso a VSS
iii. Backup de la Base de Datos de VSS
iv. Actualizar a VSS 6.0 si es una versión anterior (DDUPD)
v. Analizar la integridad de la Base de Datos (ANALYZE)
4. Crear un fichero de análisis
analisis.xml
Analizar el VSS con VSSConverter y el fichero
VSSConverter Analyze analisis.xml
34. Migración
5. Crear un fichero de migración
migracion.xml (ejemplos)
Incluye el mapeo de los usuarios (permisos)
Ejecutar la migración desde la consola de VS
VSSConverter Migrate migracion.xml
6. Verificar la migración
36. Ejercicios
1. Crear una colección nueva
o Team Foundation Administrative Console
o Application Tier > Team Project Collections
o Create Collection
o Verificar SIEMPRE
37. Ejercicios
2. Conectar con la colección
o Visual Studio 2010
o Conectar con Team Foundation Server
o Indicar la URL/IP del servidor
o Indicar la cuenta de usuario con que conectar
o Seleccionar la colección creada
38. Ejercicios
3. Crear un Team Project basado en Agile
4. Crear un Team Project basado en CMMi
o Una vez conectados con una colección
o Botón derecho > Nuevo Proyecto de Equipo
o Elegir la platilla
o NO configurar un sitio SharePoint
o Crear una carpeta de código fuente vacía
41. Ciclo de Vida
Ciclo de vida
Especificación/Análisis
Diseño y Construcción
Pruebas
Instalación y Mantenimiento
Modelos de ciclo de vida
Lineal
Evolutivo/Espiral
Retroalimentado/Prototipado
42. Ciclo de Vida
El modelo de ciclo de vida condiciona el tipo de
metodología aplicada
Metodologías clásicas (pesadas, formales)
Métrica, RUP
Metodologías ágil
Scrum, XP
Procesos y calidad
CMMi, ITIL
43. Principio Básicos de los Proyectos
El Triángulo de Hierro Coste
Coste
Tiempo
Alcance
Calidad y
Productividad Productividad
Calidad
Alcance Tiempo
44. Principio Básicos de los Proyectos
La magia no existe
Productividad <> Más horas
Mejora continua (Ishikawa)
Mejora del proceso para ser más productivo
Luchar contra el cambio no es efectivo
Gestión del cambio Burocracia
Burocracia Insatisfacción
La incertidumbre disminuye con el tiempo
Decide en el último momento responsable
45. ¿Por qué Métodos Ágiles?
Los Proyectos fallan
No se entregan a tiempo
No cumplen con los objetivos
Cuestan más de lo estimado
¿De quién es la culpa?
Hay demasiada documentación
Hay muchos cambios
La tecnología no es adecuada
Los desarrolladores no son expertos
…
46. ¿Por qué Métodos Ágiles?
Modelo de desarrollo ágil
No solo realizar entregas periódicas
Sino priorizar las que aportan más valor
El valor aportado al principio es mayor
El valor aportado al final es menor
47. ¿Por qué Métodos Ágiles?
Modelo de desarrollo ágil
Esto nos da la oportunidad de añadir más valor en
subsiguientes iteraciones
Y así poder continuar con el proyecto
48. Manifiesto Ágil
2001, Kent Beck et. Al.
“Estamos poniendo al descubierto mejores
métodos para desarrollar software, haciéndolo
y ayudando a otros a que lo hagan ”
49. Manifiesto Ágil
Valorar más:
Individuos y su interacción
Software que funciona
Colaborar con el cliente
Respuesta al cambio
Por encima de:
Procesos y herramientas
Documentación
Ceñirse a contratos
Seguir un plan
50. Principios del Agilismo
Satisfacer al cliente mediante entregas
tempranas y continuas de software de valor
Doblegarse a los requisitos cambiantes
Trabajo conjunto de personas de negocio y
desarrolladores
Mantener la motivación de los individuos
Aportarles los entornos y apoyo que necesiten
Confiar en su capacidad
51. Principios del Agilismo
Comunicar la información cara a cara
Utilizar el software que funciona como medida
de progreso
Mantener un ritmo constante de trabajo
Simplicidad y excelencia técnica
Equipos auto-organizados
Auto-reflexión periódica del equipo para ser
más efectivos
53. Historias de Usuario
Representación de una característica escrita en una o
dos frases utilizando el lenguaje común del usuario
Como {rol} quiero {algo} para obtener {valor de
negocio}
Forma rápida de administrar los requisitos sin elaborar
gran cantidad de documentos formales
Debe ser limitada, escribible sobre un post-it
De duración estimada entre 10 horas y 2 semanas
54. Historias de Usuario
Tiene asociada una prioridad
Tiene asociadas unas pruebas de validación
No es una especificación rigurosa sino un
comienzo
No es una tarea
Cada historia es, en principio, independiente
Las historias SON negociables
Las historias son valiosas
55. Historias de Usuario
Las historias son estimables
Días ideales, Puntos de historia, Triangulación
Las historias deben ser pequeñas y fáciles de entender
Las historias debe poder probarse para asegurar que
han finalizado
Pruebas unitarias
Criterio de aceptación
Prototipos
56. Historias de Usuario
Beneficios
Representan requisitos que pueden implementarse
rápidamente (días o semanas)
Necesitan poco mantenimiento
Mantienen una relación cercana con el cliente
Permite dividir los proyectos en pequeñas entregas
Permite estimar fácilmente el esfuerzo de desarrollo
Ideal para proyectos con requerimientos no muy
claros
57. Historias de Usuario
Limitaciones
Sin pruebas de validación pueden quedar abiertas a
distintas interpretaciones haciendo difícil utilizarlas
como base para un contrato
Se requiere un contacto permanente con el cliente
durante el proyecto lo cual puede ser difícil o
costoso
Podría resultar difícil escalar a proyectos grandes
Requiere desarrolladores muy competentes
Requieren saber cuando se puede considerar hecha
58. Historias de Usuario
Ejercicio A
Se quiere desarrollar un sistema sencillo de control de
préstamos en una biblioteca. El sistema debe admitir el alta y
la baja de socios y de libros. Los socios pueden pedir libros en
préstamo, pero no se pueden tener más de tres libros en
préstamo en un momento determinado. Los libros se han de
devolver antes de un mes de la fecha del préstamo. Cada vez
que un socio devuelve un libro después de la fecha de la
devolución, se penaliza reduciendo en una unidad el número
de libros que puede tener simultáneamente. Cuando llega a
cero el socio se dé de baja automáticamente.
59. Historias de Usuario
Ejercicio B
Se quiere desarrollar un simulador de Mus para
jugar online.
Ejercicio C
Se quiere desarrollar un simulador del juego de
cartas Bang! de Emiliano Sciarra.
Instrucciones
60. Historias de Usuario
Resolución ejercicio A
Alta libro
Baja libro
Alta socio
Baja socio
Préstamo de libro
Devolver libro
Penalizar socio
Baja automática de socio
Iniciar sesión en el sistema
Cerrar sesión
Alta usuario
Baja usuario
61. Planning Poker
Estimación de tareas por consenso
Utilizando cartas con valores:
0, ½, 1, 2, 3, 5, 8, 13, 20, 40, 100, ?,
No tiene unidades, el objetivo no es dar un valor
Se explica la característica a estimar y todos votan excepto un
moderador
Los votos más extremos deben explicarse
Se repite la votación hasta el consenso
Evita el poder de alguien influyente
Incluye el punto de vista del cliente
63. Planning Poker
Ejercicio A
Estimar alguna historia detectada en el ejercicio anterior
Ejercicio B: Estimar
Como usuario quiero poder ver los productos disponibles para
comprar ordenados por precio y/o tipo de artículo para
encontrar lo que busco más rápido.
Como usuario quiero poder ver los detalles de mi pedido para
saber en qué estado se encuentra y si todavía estoy a tiempo
de modificarlo.
64. Planning Poker
Ejercicio C: Estimar
Como usuario quiero poder pagar con tarjeta o mediante Pay-
Pall para tener distintas alternativas en caso de no tener el
número de tarjeta a mano.
Como usuario quiero poder acceder a la aplicación desde mi
móvil para poder utilizarla en cualquier parte.
Como usuario quiero poder imprimir documentos para poder
llevármelos conmigo.
Como usuario quiero poder ver la fecha y hora actuales para
no tener que salir de la aplicación para ello.
66. Scrum
El factor más importante en el desarrollo de software no
son las técnicas y las herramientas que emplean los
programadores, sino la calidad de los propios
programadores
Robert L. Glass
Scrum y XP desde las Trincheras
Henrik Kniberg
68. Scrum
No es un método independiente, sino complemento de
otras metodologías (XP, MSF, RUP)
Enfatiza valores y prácticas de gestión, no cuestiones
técnicas de desarrollo
Equipos auto-dirigidos y auto-organizados
No hay un Jefe de Proyecto que decida
Excepción: el Scrum Master que debe ser 50% programador y
que resuelve problemas, pero no manda
Los observadores externos se llaman “gallinas”; pueden
observar, pero no interferir ni opinar
69. Categorías en Scrum
Primero una historia:
Una gallina y un cerdo pasean por la carretera cuando la gallina le dice
al cerdo: “¿Qué te parece si abrimos un restaurante?”, a lo que el
cerdo le pregunta: “¿y cómo se llamaría?”
La gallina le contesta: “Huevos con jamón” y el cerdo le replica: “No
estoy de acuerdo, porque en este negocio yo estaría
comprometido, mientras que tu sólo estarías implicada”
70. Categorías en Scrum
¿Qué queremos decir?
Quienes tienen la responsabilidad
también tienen la autoridad necesaria
para poder lograr el éxito
Para que quienes no la tienen no puedan
producir interferencias innecesarias
71. Roles en Scrum (Cerdos)
Dueño del Producto
Product Owner
Determina qué es importante para
el proyecto
Determina la dirección en que
evoluciona el producto
Equipo Scrum
Analista, Desarrollador, Tester,…
Proactivos, multifuncionales,
autoorganizados, <10 por equipo
72. Roles en Scrum (Cerdos)
Scrum Master
Debe asegurar que el proyecto
progresa con suavidad
Y que el equipo tiene lo que
necesita para tener éxito
Establece reuniones
Resuelve problemas
Monitoriza el progreso del proyecto
73. Roles en Scrum (Gallinas)
Usuarios finales
Marketing
Áreas comerciales
Áreas contables
Administradores
Etc
75. Sprint
Iteraciones de treinta días; se admite que sean más
frecuentes (recomendado 3 semanas)
Demostración a participantes externos al final de cada
iteración en una fecha indicada
Al principio de cada iteración, plantear una Meta
expresada en términos de negocio
Planificación del Sprint entre todos con una agenda
acotada (no alargar reuniones!!)
Se selecciona una Pila de Sprint
Historias que se van a incluir en el Sprint
76. Pila de Producto (Product Backlog)
Lista priorizada de requisitos/historias
Nombre, importancia, estimación inicial, cómo
probarlo,…
Puntos de historia: días/persona ideales para completar
la historia
77. Pila de Sprint (Sprint Backlog)
Historias ordenadas
por importancia de la
pila de producto que
se van a implementar
Tener en cuenta la
velocidad del equipo
78. División de las historias
Al equipo le interesan tareas pequeñas
Una historia se descompone en tareas
No son entregables, el cliente no se preocupa
Pizarra y post-its
80. Cambios durante el Sprint
Durante un Sprint no se puede modificar el
contenidos de la pila
El cliente puede cambiar una historia en las
reuniones mensuales (cambiando el alcance y/o
prioridad de una historia, o dividiéndola)
Sólo el Scrum Master puede abortarlo
Si la tecnología seleccionada no funciona
Si las circunstancias del negocio han cambiado
Si el equipo ha tenido interferencias
82. Al final de un Sprint…
Hacer una demo para:
Obtener reconocimiento para el equipo
Que todos sepan lo que se está haciendo
Obtener un feedback de los interesados
Permite interactuar con otros equipos
Fuerza a que realmente se terminen las cosas
Auque haya poco y el resultado sea malo que
enseñar se motiva al equipo para que la próxima
demo sea mejor
83. Al final de un Sprint…
En la demo, centrarse en:
Presentar claramente el objetivo del Sprint
No hacer florituras (PPT, detalles de implementación,…)
Mantener un ritmo rápido
Mantenerse a nivel de negocio, sin detalles técnicos
Hacer una retrospectiva para ver
Cosas bien hechas
Cosas mejorables
Ideas de mejora para el futuro
85. ¿Cómo funciona el equipo?
Las métricas y medidas proporcionan una indicación de
dónde se puede mejorar
Hay medidas informativas y motivacionales
Las informativas pueden ayudar a mejorar los procesos
y a ser más efectivo y coordinado
En los Métodos Ágiles interesan las informativas
¿Cómo las tomamos? Preguntado al equipo
¿Cuándo las tomamos?
En el Scrum diario Medidas de coordinación
En la retrospectiva Medidas de proceso
86. Diagrama Burndown
Muestra el progreso de tareas completadas en un Sprint
¿Se van a conseguir los objetivos del Sprint?
Por encima de la diagonal Exceso de historias
Por debajo de la diagonal Pocas historias
87. Diagrama Burndown
Inicializarlo en la planificación 110-
del Sprint 100-
90-
Marcando en el eje X el Nº de días 80-
70-
Y en el eje Y el Nº de horas de 60-
trabajo estimadas 50-
40-
Marcar la tendencia ideal 30-
20-
Si el ritmo de trabajo fuera 10-
constante 0-
‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘
1 2 3 4 5 6 7 8 9 10 11
Diariamente se actualiza el valor
¿Qué hiciste ayer? ¿Qué harás hoy?
¿Qué problemas tienes?
88. Diagrama Burndown
Diariamente se monitoriza
Mirando las tareas pendientes 110-
100-
Seleccionando las mejores tareas para 90-
no desviarnos del ideal 80-
70-
Cono de +/- 20%
60-
Si nos salimos del cono por debajo 50-
40-
Añadir nuevas historias de la pila
30-
Porque somos así de buenos! XD 20-
Si ocurre a menudo hay que mejorar 10-
0-
las predicciones ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘
1 2 3 4 5 6 7 8 9 10 11
Si nos salimos del cono por encima
Eliminar impedimentos
Hacer las cosas de otro modo
Reducir el alcance
89. Diagrama Burndown
NO OCULTAR EL DIAGRAMA
Es una medida del progreso del proyecto y es importante que
el equipo y cualquiera que le interese pueda verlo
ACTUALIZARLO A DIARIO
Si no se actualiza a diario surgen tendencias horizontales que
nada tienen que ver con la realidad
NO TENER EXCESO DE ESPECIALIZACIÓN
El equipo podría elegir sólo las tareas que le interesa a cada
individuo y dejar las “aburridas” sin hacer
UTILIZAR EL DIAGRAMA PARA CORREGIR
Si la tendencia no es buena tomar medidas cuanto antes
91. ¿Qué es CMMi?
Capability Maturity Model® Integration
Conjunto de prácticas “maduras” usadas para
evaluar y mejorar la capacidad de los procesos
Ruta evolutiva de implementación de las
mejores prácticas en los procesos
organizacionales
5 niveles de madurez
94. Nivel 1: Inicial
La organización en este
nivel no dispone de un
ambiente estable para el
desarrollo y mantenimiento
de productos y servicios
95. Nivel 2: Administrado
Algunas áreas organizacionales
y/o proyectos han alcanzado
metas genéricas y específicas
Establecidas en áreas de
proceso
Planifican, ejecutan, miden y
controlan sus procesos
96. Nivel 3: Definido
Procesos descritos
mediante estándares,
procedimientos, métodos y
herramientas
Entendidos por los
ejecutores
97. Nivel 4: Cuantificado
Selección y administración de
actividades que contribuyen al
funcionamiento del proceso total
Control estadístico y cuantitativo
de esas actividades
98. Nivel 5: Optimizado
Mejora continua
Mejorar el desempeño de
los procesos
Mejoras tecnológicas
incrementales e
innovadoras
103. ¿Qué es un Work Item?
Elemento de trabajo
Registro en la BD de TFS
Definición
Estado
Prioridad
Asignación
Dependen de la plantilla de proyecto
104. ¿Qué es un Work Item?
Son consultables
Para ver el estado del proyecto
Establecen vínculos
Entre sí y con ficheros adjuntos
105. Work Items de Agile
Historia de usuario (User Story)
Tarea (Task)
Caso de pruebas (Test Case)
Error (Bug)
Problema (Issue)
Paso compartido (Shared Step)
106. Work Items de CMMi
Requisito (Requirement)
Petición de Cambio (Change Request)
Revisión (Review)
Riesgo (Risk)
Tarea (Task)
Caso de pruebas (Test Case)
Error (bug)
Problema (Issue)
Paso compartido (Shared Step)
107. Crear un Work Item
1. Abrir VS2010 y conectar con una colección
2. Menú Team > Add Work Item
108. Consultar Work Items
Existen consultas predefinidas
Mis Tareas
Mis Bugs
Mis Casos de Prueba
Product Backlog
Product Planing
Y se pueden crear
My Queries
Filtrando desde VS2010
109. Asociar Work Items
1. Abrir VS2010 y conectar con una colección
2. Realizar una consulta
3. Seleccionar un Work Item
4. Click derecho
New Linked Work Item
Link to an Existing Item
110. Ejercicio
Crear un Work Item de cada tipo
User Story
Test Case
Bug
Task
Asociar
La tarea a la historia
El caso de prueba a la tarea
El bug a la tarea
111. Ejercicio
Crear consultas de Work Items para
Mostrar todos los bugs pendientes
Mostrar todas las tareas finalizadas
Mostrar todos los Work Items creados por el usuario
actual
112. 5. Control de Versiones con TFS
2010
Team Foundation Server 2010
113. TFVC
Team Foundation Version Control
Permite:
gestionar el código de fuente de los desarrolladores
crear y fusionar ramas (branches)
bloquear (check-out) y desbloquear (check-in)
resolución automática de conflictos básicos
No admite varias referencias a un mismo fichero
Permite hacer repositorio de documentos a través de
SharePoint
114. TFVC
TFVC es distinto de VSS
Agrupa los cambios de varios ficheros como una unidad
(changeset)
No admite ficheros compartidos (pinned)
Los cambios de VSS se agrupan en un changeset si no hay
conflictos, difieren pocos minutos, son del mismo usuario y
tienen el mismo comentario
Las fechas del fichero se actualizan a la fecha de migración
Las fechas originales se mantienen como comentario
http://msdn.microsoft.com/en-us/library/ms253060.aspx#process
115. Workspace
Directorio local de trabajo
Mapeado SOLO a una carpeta del repositorio
Tipos:
Público: Usable por cualquier usuario válido
Privado: Sólo lo puede usar el dueño
Limitado: Sólo el dueño puede hacer check in
Recomendado:
Un Workspace por Team Project
116. Roles de Seguridad
Team Project Settings
Security
Administrador
Desarrollador
Usuario
Group Membership
Usuarios de TFS
Usuarios de Windows
Team Members
117. Artefactos
Código Fuente
Work Items
Changeset
Conjunto de cambios en un momento determinado
Venta de cambios pendientes (View > Other Window)
Ventana de Historia (View History > Track Changeset)
Compilaciones (Builds)
118. Políticas de Check-in
Team Project Settings > Source Control
Por defecto:
Compilación satisfactoria
Análisis de código
Testing
Tener asociado un work item
Power Tools:
Comentarios en el check-in
Formato de ficheros/directorios
Filtro por Work items permitidos
119. Gestión de la Configuración
Rama (Branch)
Versión paralela de un mismo conjunto de ficheros
Estantería (Shelve)
Repositorio de código temporal (Pending changes)
Etiqueta (Label)
Marca asociada al código para identificarlo de manera colectiva
Fusión (Merge)
Sincronización del código de dos ramas
Release
Versión etiquetada lista para producción
120. Estrategias de Branching
Sólo etiquetado
Rama por release
Release 1 v1.0, v1.1, …
Release 2 v2.0, v2.1, …
Rama por fase
Main, Desarrollo, Pruebas, Producción
Rama por ciclo/funcionalidad
Sprint 1, Sprint 2, …
Rama por desarrollador
121. Estrategias de Merging
Changeset
Sólo un conjunto de cambios
Fecha
Todos los cambios hasta una fecha
Etiqueta
Todos los cambios en una etiqueta
Workspace
Lo que haya en el workspace local
Última Versión
Recomendada
122. Integración Gráfica
View History > Track Changeset
De dónde viene un changeset
Vista jerárquica de ramas
Vista lineal de tiempo
Arrastrar y soltar
Checkear el merge
Refrescar el changeset tracking
123. Conflictos
Rol integrador
Persona que realiza merges periódicos
Resuelve conflictos
Sólo se fusiona lo que esté completado
Resolución automática
Sólo si se puede hacer sin pisarse mútuamente
Merge Tool
Navigate conflicts only
Elegir versión
124. Ejercicios
1. Crear un proyecto nuevo
2. Añadir el proyecto a control de código
3. Hacer modificaciones del código
4. Checkear desde dos perfiles distintos
5. Visualizar los conflictos
125. Ejercicio
1. Configurar la politica de check-in
2. Check out y check in desde 2 perfiles
3. Visualizar
1. Políticas no cumplidas
2. Histórico de cambios
3. Track changeset
4. Conflictos
4. Shelvear un changeset
5. Crear ramas de pruebas y de release
6. Fusionar ramas
126. Ejercicio
1. Acceder al Product Backlog
2. Comprobar la query de work items
3. Crear historias
4. Acceder al Iteration Backlog
5. Crear tareas
6. Asignar recursos
7. Asignar vacaciones y resolver sobrecarga
8. Completar tareas y ver la velocidad
128. Informes
2 tipos de informes
Informes de Excel
Team Project > Documents > Excel Reports
Informes de Report Server
Team Project > Reports
35 ya creados en las plantillas de proceso
Basados en 3 orígenes de datos
129. Informes
Todo se puede usar para generar informes
Work items
Resultados de compilación
Estadísticas de TFVC
Resultados de pruebas
Indicadores de calidad
Indicadores de rendimiento
Tests de cobertura
…
130. Informes
Se crean a partir de un almacén de datos
Report
Tfs_Coleccion Tfs_Warehouse Server
Tfs_Analysis
XLS
131. Informes
Tfs_Colección
BD de la colección de proyectos
+ BD de configuración
Optimizadas para consultas rápidas
Poco prácticas para agregados
Poco usadas para reporting
132. Informes
Tfs_Warehouse
Modelo en estrella
Generada a partir de la anterior
Actualizada cada 2 minutos
RunIntervalSeconds
Servicios de control en IIS
Adecuada para análisis
Puede ser lenta
133. Informes
Tfs_Analysis
Cubo OLAP
Dimensiones y Medidas
Generado a partir del Warehouse
Actualizado cada 30 minutos – 2 horas
IncrementalProcessIntervalSeconds
Regenerado cada 24 horas
FullProcessIntervalSeconds
Optimizado para agregaciones
134. Informes
OLAP (On-Line Analytical Processing)
Agilizar la consulta de grandes cantidades de datos
Base de Datos con estructura especial
Estructura de Estrella o de Copo de Nieve
Almacena la información jerarquizada
Tabla de Hechos y Tablas de Dimensiones
Cubo OLAP
Admite operaciones “roll-up” y “drill-down” para
agregar y desagregar los datos
Suma, conteo, media, …
135. Informes
¿Cuál es mejor?
E
Report S
Server F OLAP Warehouse
U
E
XLS R Colección OLAP
Z
O
FLEXIBILIDAD
Report
XLS
Server
136. Informes con Excel
Informes OLAP con Excel 2007/2010
Tabla pivote
Conectada al Cubo OLAP
Y crear gráficos con sus datos
137. Informes con Excel
Informes OLAP con Excel 2007/2010
1. Pestaña Data
2. From Other Sources > From Analysis Services
3. Indicar los datos de conexión
4. Seleccionar la BD Tfs_Analysis
5. Seleccionar el cubo o perspectiva al que conectar
Cubo Team System (complejo)
Otras prespectivas (Cobertura de código, Test, Builds,…)
Sólo en SQL Server Enterprise
6. Guardar la conexión en fichero ODC
138. Informes con Excel
Importar datos
Tras conectar
Tabla pivote y/o Gráfico pivote
Pivote = Dinámicas
Elegir campos a utilizar
139. Informes con Excel
Crear un informe OLAP
¿Cuántas historias de usuario y tareas están activas
en el proyecto?
1. Mostrar campos relativos a Work Items
2. Seleccionar Work Item Count
Como es un agregado aparecerá en Σ Valores
3. Arrastrar Work Item State a Filtros
4. Arrastrar Assigned To a Etiquetas de Filas
140. Informes con Excel
Editar un informe OLAP
No es obligatorio crear uno nuevo
Documentos > Excel Reports
Pulsando cualquier celda se abre el editor
Se pueden añadir gráficos pivote
Menú de herramientas para tabla dinámica
Se puede publicar directamente a Portal
Publish > Excel Services
141. Informes con Excel
Informes de Colección con Excel 2007/2010
Utilizar las consultas de Work Items
Nuevo en 2010
Permite crear informes
Y listas de Work Items
Pestaña Equipo
Similar a Product Backlog.xlsx
142. Informes con Excel
Crear un informes de Work Items
1. Crear o elegir una Query
2. Botón derecho > Create Report in Excel
Se convierten los Work Items a datos Excel
Se ofrecen varios informes predefinidos
3. Elegir el/los informes a crear
Estado actual
Tendencia
Estos informes se guardan en hojas XLS
Con una hoja índice
143. Portal de Proyecto
Sitio SharePoint
MOSS WSS
Dashboards 6 2
Reports Excel (.XLSX) .RDL
Publicar XLS Services Librería de Documentos
MOSS Enterprise incluye 6 Dashboards
Burndown, Quality, Bugs, Test, Build, My Dashboard
Ambos presentan menús para
Crear WorkItems, Ficheros Excel y Copias de Dashboards
144. Portal de Proyecto
Se pueden publicar informes Excel
Desde el portal (librería de documentos)
Desde Visual Studio Team Explorer
Desde Excel
Si tenemos acceso a los Excel Services
MOSS/MSS
Podemos usar el Excel Web Access Web Part
Para mostrarlos en el Dashboard
146. Informes con Report Server
http://localhost/reportserver
Consultable desde Visual Studio
Pero no puedo crear informes nuevos
SQL Server Report Builder 2.0
Abrir la URL del ReportServer
Crear y editar informes
148. Integración Continua
Martin Flower (2000)
http://www.martinflower.com/articles/continuo
usIntegration.html
Los miembros del equipo integran su trabajo
Al menos cada día
Manteniendo un único repositorio de código
Mediante un proceso automatizado
Verificando mediante tests
Permitiendo despliegue automático
NO es integrar en cada check-in
149. Integración Continua en TFS 2010
Se basa en Windows Workflow 4.0
Propiedades de configuración
Se puede exportar otras propiedades nuestras
Utiliza arquitectura de Controlador-Agentes
Peticiones encoladas en un controlador de builds
Que delega en un agente para que compile
Ambos configurados desde el administrador de TFS
Mejor si el agente está en otra máquina (CPU)
150. Servidor de Builds
Se encarga de la integración continua
Se puede instalar junto a TFS
O de manera independiente
152. Arquitectura
Proceso de compilación
1. Un Controlador recibe las peticiones de build y las encola
2. El Controlador delega cada build en un Agente
Para que ejecute la compilación
Dependiendo del WWF de la definición del build
3. El Agente compila y vuelca los binarios a un Drop Server
Carpeta compartida
4. Y publica las variables de compilación en Symbol Server
Archivos pdb
153. WWF 4.0
Windows Workflow Foundation
API para diseñar procesos
Actividades
Paralelizable
Invocamos a MSBuild desde WWF
154. Modos de Integración
Gated check-ins
Asegurar que todos los check-ins compilan
No subir directamente a TFVC
Mi código se “checkea” a estantería (aplazado)
Se fusiona con la última versión de repositorio
Se lanza el build
Si la compilación funciona se sube a repositorio
155. Modos de Integración
Gated check-ins
Se pueden disparar manualmente
Se pueden desaplazar los cambios si hay errores
Si no hay errores, se añade “***NO_CI***” a la
descripción del changeset
156. Modos de Integración
Builds Privados
Similar a los gated check-in
Pero sin subir a repositorio
Sin generar número de compilado
Sin asociar a changeset ni Work Item
Para casos concretos
Compilar cambios en el instalador
Lanzar tests que dependen del servidor de builds
Tienen políticas de retención y numeración propias
Los resultados solo los ve el que lo lanza
158. Configuración
Se configura mediante propiedades
Expuestas en el wizard de definición del build
Integradas con el flujo de compilación
Condiciones de disparo
Qué compilar
Directorio de salida
…
Borrado de builds
Se permiten borrar partes concretas de un build
Detalles, tests, salida, etiquetas, símbolos
160. Build Explorer
Muestras los builds terminados y en cola
Se pueden pausar o cambiar la prioridad
Se pueden parar los que estén en ejecución y
cancelar/postponer los pausados
Se pueden ver/eliminar los detalles de los
completados
Y se puede indicar la cualidad del build
"Released", "Rechazado", "Listo para testear", ...
161. Encolado de Builds
Se debe ejecutar manualmente para builds nuevos
Queue New Build…
Configurable la prioridad y el Drop Folder
El resto de veces se puede disparar
Fecha/hora concreta, al hacer un check-in, …
Latest sources with shelvesets
Es un private build
Si se marcar check-in tras compilar es un gated check-in
Tras la ejecución se muestra el Build Details
163. Encolado de Builds
General
Nombre y descripción (3 líneas)
Trigger
Manual
Integración Continua (cada check-in)
Efectiva pero costosa
Builds acumulativos (rolling)
Similar a CI pero por bloques
Se puede indicar tiempo mínimo entre builds
Gated check-ins
Compilar cada check-in
Se debe reconciliar el Workspace por cambios pendientes
Planificado (Scheduled)
164. Encolado de Builds
Workspace
Mapeo de directorio local con repositorio
Por defecto: $/Team Project <==> $(SourceDir)
Cambiarlo a los ficheros q se necesiten
Build defaults
Controlador y Drop Folder
Deben tener permiso el usuario y el agente
Máximo de 260 caracteres para las rutas
Process
WWF 4.0 que controla el build (creación de nuevos builds)
Retention Policy
Para liberar espacio en disco
Los build privados tienen políticas propias
166. Notificaciones
Modelo de eventos para enviar mails
VS 2010 > TFS Tools > Build Notification
Lanza pop-ups de resultados
Se dispara con los gated check-ins
Botón derecho > options mientras se ejecuta
Alert Explorer de los Power Tools
Team > Project Alerts
Team > Alerts Explorer
Sólo quien las crea puede borrarlas/editarlas
168. Plantillas de Compilación
3 predefinidas
DefaultTemplate: Para proyectos TFS10
UpgradeTemplate: Para proyectos TFS08
LabDefaultTemplate: Para laboratorios de pruebas
Se guardan en $TeambuildProcessTemplates
Se puede crear una nueva
Desde un build definition
Process > Show details > New
169. DefaultTemplate
1. Calcular el build number
2. Crear el drop folder
3. Crear el build agent y pasarle el control
4. Inicializar el Workspace
5. Obtener el SRC y etiquetar
6. Compilar
7. Lanzar los tests
8. Publicar símbolos (pdb)
9. Copiar la salida al drop folder
10. Checkear los gated check-ins
170. DefaultTemplate
Los parámetros se configuran en la definición
Sección Process
1. Required
Items to build > configurations to build
Cuantas menos mejor
171. DefaultTemplate
2. Basic
Build Number Format: editable con macros
Automated tests: no sensible al case
Clean Workspace: All, outputs, none
Logging verbosity: Minimal...Diagnostic
Perform Code Analysis: Más rápido si no se ejecuta
3. Advanced
Agent settings: Detalles en la consola administrativa
Get Version: para compilar una específica
Label Sources: falso para mejorar el rendimiento
MSBuild Arguments
172. MSBuild
Configuraciones de despliegue
/p:DeployOnBuild=True
/p:DeployTarget=MsDeployPublish
/p:CreatePackageOnPublish=True
/p:MSDeployPublishMethod=InProc
/p:MSDeployServiceUrl=localhost
/p:DeployIisAppPath="Default Web Site/pagina"
/p:UserName=dominiousuario
/p:Password=contraseña
173. Despliegue de Aplicaciones Web
1. Asegurarse que el servidor acepta despliegues
Web Deployment Tool
IIS > Management > Enable Remote Connections
Servicio de Gestión WMSVC arrancado
2. Configurar el método de publicación
/p:MSDeployPublishMethod=WMSVC
3. Encolar el build
4. Comprobar que se ha publicado
174. Creación de una plantilla de builds
Desde la creación de un build definition
Opción Process
Mostrar detalles
Crear una plantilla nueva como copia de otra
O activar una subida a repositorio
175. Creación de una plantilla de builds
Se pueden crear parámetros personalizables
1. Crear un argumento de proceso de tipo In
2. Añadir el argumento al workflow
1. En el argumento Metadata pulsar “...”
2. Añadir los argumentos a parametrizar
3. Categoría: secuencia en que se van a solicitar
4. View parameters when = Allways
177. Creación de una plantilla de builds
3. Configurar las actividades
Asociar las propiedades con los argumentos
4. Ya se pueden usar en el flujo con su nombre
178. 9. Power Tools y
Plantillas de Proceso
Team Foundation Server 2010
179. TFS Power Tools
Herramientas de mejora de la productividad
Explorador de alertas
Backup de TFS
Analizador de buenas prácticas
Políticas de Check-in
Editor de Procesos
Mejoras del Team Explorer
Comandos de consola y extensiones de Windows
Team Members
Plantillas de Work Items
180. TFS Power Tools
Explorador de Alertas
Team > Alerts Explorer
Crear alertas personalizadas
En base a eventos predefinidos
Filtrando por query
Y enviar mensajes
Formato Texto, HTML y SOAP
181. TFS Power Tools
Backup de TFS
TFS Admin Console > Team Foundation Backups
Backup Plan Restore Wizard
Inicio > TFS 2010 Power Tools > TFS Backup Plan
183. TFS Power Tools
Analizador de buenas prácticas
Verificar que TFS está bien configurado
Identificar problemas
Guardar copias de la configuración
Obtener datos de utilización
Ver tendencias de uso y crecimiento de las tablas
…
184. TFS Power Tools
Políticas de Check-in
Añadidas al Team Explorer
Team Project Settings > Source Control Settings
Que compile
Que se escriba un comentario
Que se suba un tipo de ficheros
Que pasen ciertos tests
Que se asocie con un Work Item
Filtrado de Work Items válidos
185. TFS Power Tools
Mejoras del Team Explorer
Menús y funciones para encontrar ficheros
Por estado y usando comodines
Abrir en carpeta de Windows Explorer
Etiquetar desde Source Control Explorer
186. TFS Power Tools
Team Members
Organizar usuarios en sub-equipos
IM, email, compartir queries,…
187. TFS Power Tools
Extensiones de Windows
Permite utilizar TFS desde las carpetas de Windows
Sin necesidad de Visual Studio
188. TFS Power Tools
Plantillas de Work Items
Team > Work Item Templates
1. Crear una plantilla (Capture Template)
2. Rellenar los campos a establecer
3. Crear Work Items desde la plantilla
189. TFS Power Tools
Editor de procesos
Tools > Process Editor
Gestión de tipos de Work Item
Plantillas de Proceso
Listas globales
Explorador de campos de Work Items
195. Plantillas de Proceso
3. Editar las distintas secciones
Work Items
Áreas e Iteraciones
Grupos y Permisos
Labs
Builds
Control de Código
Portal
Reports
196. Plantillas de Proceso
4. Subir la plantilla a TFS
Process Template Manager
Carpeta que contiene ProcessTemplate.xml
197. Plantillas de Proceso
¿Qué hay en un plantilla de proceso?
Ficheros XML
Directorios
Plantillas de documento