You are on page 1of 58

Visual Studio Team System

Metodologías en procesos de desarrollo

Aurelio Porras
aureliop@microsoft.com
Development Tools Advisor
Microsoft Ibérica
Agenda

Introducción: Metodologías y Procesos


Metodologías Ágiles y SCRUM
Café
Metodologías Formales y CMMI
Team Foundation Server
Plantillas de Procesos
METODOLOGÍAS Y PROCESOS
El éxito es raro
Fallidos Problemáticos Existosos

2004 15% 51% 34%

2000 23% 49% 28%

Fuente: The Standish Group International, “Extreme Chaos”, 2004

Se pasan en coste:
45%
Se pasan en tiempo:
63%
No llegan a la funcionalidad:
67%
El Problema con el Proceso
Predecible
Productivo Repetible

• Complejo
• Desconectado
• Difícil
Gestión de Proyectos del Siglo XX

Tiempo

Funcionalidad

Recursos

Calidad

“El triángulo de
Hierro”
(Tetraedro más bien?)

Imagen copyright de Tetra Pak


“Mantra” del Siglo XXI

Hacer más con menos!


Pero si tus únicas variables son:
Funcionalidad
Recursos
Tiempo
Calidad
… entonces cómo vamos a hacerlo?
Dos Paradigmas de Proceso

El tradicional: descomponemos tareas y El alternativo: contabilizamos el valor


medimos su grado de completitud para el cliente y lo vamos entregando
incrementalmente
Filosofía: “Contabilidad de Costes”
Filosofía: “Lean Manufactoring” y
“Teoría de las Restricciones”
Dos Paradigmas de Proceso
Work-down Value-up
Sacar trabajo adelante Incrementar valor
Planificación y gestión Get planning and design right El cambio ocurre,
del cambio up front acostúmbrate
Medida principal Finalización de tarea Sólo entregables que cuentan
para el cliente
Definición de calidad Conformidad con la Valor para el cliente
especificación
Tolerancia a la Las tareas se pueden identificar La variabilidad es parte de
variabilidad y estimar determinísticamente todos los flujos del proceso
Productos intermedios Documentos, modelos y otros Solo lo suficiente para
artefactos minimizar la incertidumbre
Aproximación a la Ajustar tiempo, recurso, Detectar y eliminar cuellos de
resolución de funcionalidad, y/o calidad botella
desviaciones
Aproximación a la Monitorizar y medir; Orgullo del equipo humano y
confianza rendimiento relativo al plan del trabajo colaborativo
Work-Down vs. Value-Up

Work-Down es un caso especial


Similar a la Física: Newton vs. Einstein
En general
El proceso no fluye suavemente, hay bloqueos y
marchas atrás
La productividad de los recursos no se distribuye
uniformemente a lo largo del tiempo
Hay varianza en la efectividad a la hora de
completar tareas
Sólo en proyectos de bajo riesgo, funciona el
paradigma work-down ya que se puede repetir
el proceso
Transparencia en Proyectos
Informes en tiempo real de data warehouse
Seguimiento para conformidad
Mejora la predictibilidad y reduce el riesgo

Requisitos de
Negocio Planificación
Diseño Resultados
Desarrollo Predecibles
Requisitos de
Calidad de Pruebas
Servicio Despliegue

Informes en tiempo real


Cómo se registran las métricas
Transparencia:
se registra
todo el
trabajo del
equipo según
se sigue el
proceso
metodológico
escogido para
el proyecto
Cómo se registran las métricas
Componentes de la Arquitectura 3
4
5 Reports
2
1

SQL Server 2005 Analysis


Services OLAP Cube
(TFSWarehouse)

SQL Server 2005


Relational Database
(TFSWarehouse)

Operational Stores Adapters

Common Structures

Team Foundation Build

Team Foundation Version Control

Work Item Tracking

Test Results

3rd Party Adapters and Stores


Cómo se registran las métricas
Los datos que se incluyen en el cubo OLAP están
especificados en la Plantilla de Proceso
Atributo “Reportable” en la definición del campo
del elemento de trabajo que queremos incluir
Como “Measure”: Cantidad que se puede sumarizar
Como “Dimension”: Campo para sumarizar medidas
Como “Detail”: Dato inque se incluye en la base de
datos pero no en el cubo
Cómo extraigo estado del proyecto

A través de informes
Informes por defecto según el proceso escogido
CMMI Process Improvement
Agile Development
Informes a medida que desarrollo e incorporo a los
informes y a los documentos del proyecto
Visualización de informes desde
Team Explorer, en visor HTML
Portal de Proyecto, en visor HTML o en WebPart de
SQL Reporting Services
Portal de Reporting Services, desde Team Explorer
Análisis de datos desde
Excel, accediendo directamente al cubo OLAP
Visual Studio Team System
¿Cómo de efectivo es nuestro equipo?
Ratios de pruebas Frente a cobertura
(pass, inconclusive, fail) de código, …
mostrado en barras

code churn, …

y bugs activos
Visual Studio Team System
¿Qué requisitos no han sido probados?

Progresión del estado de los


requisitos desde sin probar hasta
pasado por pruebas, a través de
sucesivas integraciones (builds)
Visual Studio Team System
¿Hasta donde llegamos en el tiempo disponible?

Trabajo Planificado

Trabajo
Finalizado
Visual Studio Team System
Solución atascada en pruebas
Errores resueltos pero no cerrados: hay
recursos insuficientes o la calidad del
desarrollo no es la adecuada
Visual Studio Team System
Fallo en estimación de tiempos

Progreso muy lento del


trabajo planeado

Aunque hay progreso, la


pendiente es poco
pronunciada
Visual Studio Team System
El ámbito cambia radicalmente

“Material Oscuro” emerge


durante la iteración

El trabajo planeado
se va realizando
Visual Studio Team System
Pruebas unitarias inadecuadas

Caída de la cobertura de código Incremento de las


pruebas sin
concluir

Aumento del Code Churn


Para más información …
METODOLOGÍAS ÁGILES
El manifiesto ágil
http://www.agilemanifesto.org
“Preferimos…”
Individuos e interacción a procesos y
herramientas
Software funcional a documentación
exahustiva
Colaboración con el cliente a negociación de
contratos
Respuesta ante los cambios al seguimiento
de un plan
Aunque hay valor en lo segundo, preferimos lo
primero
Principios del manifiesto

Adaptabilidad
Colaboración
Integración continua
Simplicidad
Adaptabilidad

El análisis inicial es una guía, no una biblia


intocable
El cliente propondrá cambios que han de
introducirse en el desarrollo
Los presupuestos han de contar con esos
cambios
La métrica ha de reflejar el impacto de los
cambios
Se consigue un software más satisfactorio
Colaboración
El equipo es importante, no los procesos
Todo el mundo tiene algo que decir
El equipo ha de estar motivado
Implicación de los desarrolladores
Libertad de exploración
La visión general del proyecto es conocida por
todos
Las reuniones son imprescindibles
Cortas, concretas, pero frecuentes
Se discute el estado del proyecto
La organización es dinámica
Liderar un equipo, no gestionarlo
Integración continua

El software se entrega por partes


Las diversas entregas han de ser
ejecutables
Cada integración supone una evualuación
de la misma
Eso permite corregir errores y cambiar
funcionalidad
El cliente tiene un papel en la integración
continua
Simplicidad

Lo simple es bello
Mantener una estructura organizativa
sencilla
No complicar innecesariamente los
procesos
No saturar el proyecto con documentación
superflua
Crear un sistema de comunicaciones
rápido y ágil
Conceptos

Roles
Actividades
Iteraciones
Roles

Un rol es una función dentro del equipo de


desarrollo
Los roles pueden desempeñarse por más
de una persona
Una persona puede desempeñar más de
un rol
Las actividades están asociadas a roles
Los roles pueden tener ciertos permisos
dentro de la organización
Actividades

Las tareas se definen como actividades


Incluyen cualquier cosa que haya de
hacerse durante el proyecto
Captura de requerimientos, testeo,
codificación...
Una iteración será un conjunto de
actividades
Las actividades se asignan a personas que
pertenecen a roles
Es deseable monitorizar las actividades
Iteraciones
Ciclos de desarrollo cortos
Suelen ser de un mes
Al principio se decide que actividadaes
incluirá cada iteración
Al final se obtiene software instalable y
ejecutable
Integración continua
Durante la iteración las reuniones han de
permitir controlar el estado de la iteración
Las iteraciones son revisables
MSF For Agile

MSF For Agile implementa una versión de


metodología ágil
TFS incluye MSF For Agile como plantilla
de procesos
Define roles, WorkItems, documentación
básica...
Incluye métricas del proyecto
Incluye un portal de colaboración con la
guía de procesos
DEMO: Portal de Agile
SCRUM

Es una
implementación de
metodología ágil
Creada por Hirotaka
Takeuchi e Ikujiro
Nonaka en 1986
Principios de SCRUM

Equipo muy simple


Pila de funcionalidades (Backlog)
Reuniones diarias (Scrums)
Iteraciones (Sprints)
Equipo

Propietario del producto


Da los requerimientos
¡Paga!
Equipo
Autogestionado
Multidisciplinar
Scrum Manager
Supervisa y coordina los roles
Comprueba las tareas
Backlogs

Listado de requisitos
Recopilado por el propietario del producto
Es una lista dinámica
Se subdivide en los diferentes sprints
Sprints

Representan iteraciones
Por lo general de un mes
Cada sprint posee una pila extraida del
backlog de producto
Los sprints se revisan al final para
evaluarlos (retrospectivas)
Cada día se realiza una reunión para
realizar el seguimiento del sprint (SCRUM)
Reuniones cortas (15 minutos)
Sólo hablan los implicados
DEMO: Portal de SCRUM
METODOLOGÍAS FORMALES:
CMMI
CMMI

Capability Model Maturity Integration


Carnegie Mellon Software Engineering
Institute (www.sei.cmu.edu/cmmi)
Diseñado originalmente para contratos del
gobierno de USA
Fuertemente basado en el diseño de
procesos de producción
Muy auditable, con multitud de métricas
Mucha documentacion
Niveles de madurez
Nivel 0: Proceso incompleto
Nivel 1: Proceso realizado
No hay control de proceso. El resultado no es predecible. Muchas
variaciones especiales. No hay planificación.
Nivel 2: Proceso gestionado
Se satisfacen los requisitos del proyecto. Hay una planificación y
cada trabajo es realizado por la gente correspondiente.
Nivel 3: Proceso definido
Se desarrollan un cierto número de procesos que cubren las
priincipales áreas de desarrollo
Nivel 4: Proceso gestionado cuantitativamente
Todos los aspectos de un proceso poseen métricas que permiten
controlarlo
Nivel 5: Proceso optimizado
Mejora continua de los procesos
Cobertura de CMMI en TFS
Nivel 0: Proceso incompleto
Nivel 1: Proceso realizado
No hay control de proceso. El resultado no es predecible. Muchas
variaciones especiales. No hay planificación.
Nivel 2: Proceso gestionado
Se satisfacen los requisitos del proyecto. Hay una planificación y
cada trabajo es realizado por la gente correspondiente.
Nivel 3: Proceso definido
Se desarrollan un cierto número de procesos que cubren las
priincipales áreas de desarrollo
Nivel 4: Proceso gestionado cuantitativamente
Todos los aspectos de un proceso poseen métricas que permiten
controlarlo
Nivel 5: Proceso optimizado
Mejora continua de los procesos
50% cobertura
Nivel 2 Nivel 3 Nivel 4
Gestión integrada Rendimiento de los
Planificación de Gestión de riesgos procesos
Proyecto Integración del equipo organizativos
Monitorización y Desarrollo de Gestión
control requisitos cuantitativa del
Medidas y análisis Solución técnica
proyecto
Gestión de Integración del
requisitos producto
Verificación
Gestión de
configuración
Validación Nivel 5
Resolución de análisis
Control de Calidad Definición Organización de la
del producto organizativa innovación y el
Gestión de Entorno de desarrollo
conformancia con integración Análisis y
el proveedor Organización del resolución de
proceso
causas
Formación organizada
Gestión del proveedor
Omitido integrada
20% cobertura
Valoración

Cada práctica tiene un cierto número de


subprácticas
La valoración del conjunto proporciona
una métrica sobre la calidad del proceso
SCAMPI (Standard CMMI Appraisal Method
for Process Improvement)
Proporciona un modelo de valoración
Cada subpráctica requiere evidencias directas
e indirectas
Basado en la documentación
MSF For CMMI

Es una interpretación “ágil” de CMMI


Incluye ciertas características de Agile
Menos documentación
Utiliza el mismo paradigma
WorkItems, Iteraciones, roles...
Los informes proporcionan las métricas
necesarias para valorar el estado del
proyecto.
DEMO: Portal de CMMI
INTRODUCCIÓN A
TEAM FOUNDATION SERVER
Visual Studio Team System
Solución ALM (Application Lifecycle Management)

Diseñador Desarrollador Profesional de


Base de Datos
Arquitecto
Probador
Analista de Jefe de
Negocio Proyectos

Incrementar la Facilitar la Mejorar la


Transparecia en Colaboración en Calidad del
Proyectos Equipo Software
Visual Studio Team System
Visual Studio Team Suite
Guía y Proceso Microsoft Solution Framework (MSF)

Software Software Software Database


Visual Architects Developers Testers Professionals Visual
Studio Studio
Team Modelado de Análisis de Código Pruebas Manuales Despliegue de BD Industry
Explorer Aplicación Partners
Ajuste de Pruebas de Carga Gestión de
Modelado de Cambios de BD
Infraestructura Rendimiento
Gestión de Casos
de Prueba Pruebas de BD
Modelado de
Despliegue
Pruebas Unitarias
Cobertura de Código

Modelado Clases

Visio y Modelado UML


Visual Studio Professional Edition

Code Control Proxy Load Test Agent

Visual Studio Team Foundation Server


Control de Código Informes Gestión de Proyecto
Gestión del Cambio Portal de Proyecto Servicio de Integración
(Workitem Tracking) (Team Build)
Visual Studio Team System
Team Foundation Server &
Load Test Agent
Team Foundation Server
Control de Código – repositorio robusto para todos los artefactos
del proyecto; Change Sets, Políticas de Check-In, Branching &
Merging, Shelving; Version Control Proxy Server
Gestión del Cambio – sistema flexible de seguimiento de
elementos de trabajo (Work Item Tracking) para requisitos,
escenarios, tareas, peticiones de cambio, bugs, etc.
Portal de Proyecto – Sitio SharePoint para colaboración en equipo,
gestión documental
Gestión de Proyecto – gestión de recursos, tiempos y calidad
Servicio de Integración – servicio extensible de construcción de
builds (Team Build), integrado con análisis de código y pruebas
Informes – data warehouse centralizado para analíticas y métricas
de proyecto en tiempo real
Load Test Agent
Arquitectura Técnica de TFS
Team Foundation Client Tier Version Control Build Machine
Proxy Server
MS Project
Visual Studio Packages
Plug-In Version
Control Build
MS Excel Proxy Process
Internet Explorer Service
Plug-In

SQL RS WSS
Team Foundation Object Model
Proxies Proxies
VSTF
Clients of VSTF
Report Client
VSTF Adjuncts

Custom reporting
tools
Team Foundation App Tier

SQL Windows Work Item Version Team


Core
Reporting SharePoint Tracking Control Build Adapters
Services MS Excel
Services Services Service Service Service

SQL Windows Version Team Build Core


Reporting SharePoint Work Items Warehouse
Services Services Control Data Data

Team Foundation Data Tier


Configuraciones básicas de TFS
1 usuario 2 - 50 usuarios 50 - 500 usuarios

1 máquina 1 Servidor 2 Servidores


Demo/Evaluación Equipo Pequeño Equipo Grande

Client
• Client • Client
• Build • Build (op.)
• App Tier
• Data Tier
Build
(op.)
• App Tier
• Data Tier
• Build (op.) App Tier

Soporta:
• Workgroup Version
• Active Directory Control
(2003 or 2000) Proxy (op.)

Data Tier

Requiere Active Directory


(2003 or 2000)
POWER TOOLS PARA TFS
© 2006 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or
trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of
the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft,
and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS,
IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION..

You might also like