Cómo convencer a tu jefe de utilizar Team Foundation Server

Team Foundation Service es el servicio de ALM que provee Microsoft. Está basado en las capacidades que posee Team Foundation Server. En la versión Cloud de TFS se han personalizado ciertas características para poder ser un servicio 100% orientado al Cloud. Así es que tenemos un entorno 100% elástico, sin limitaciones de crecimiento, basado en GIT como Source Control Provider y otras características más que lo hacen destacar sobre sus competidores. Los siguientes párrafos te ayudarán a tener argumentos para elegir Team Foundation Server y además para evaluar si puedes utilizar la versión On the Cloud.

Una herramienta de ALM imprescindible

Todos los desarrolladores son conscientes de la importancia de trabajar con buenas herramientas (con las mejores diría yo). Después de probar muchas opciones, afirmo sin temor a equivocarme que Visual Studio 2012 es el mejor entorno de desarrollo del mercado (a partir de ahora IDE: Integrated Development Environment). Durante los últimos meses, con el auge de los Smart Devices y otras tecnologías de consumo, he tenido que cambiar de IDE para trabajar con Java y otros lenguajes de desarrollo, y es en estos puntos donde vuelvo a valorar a Visual Studio 2012 como el mejor IDE del mercado.

Existen productos como Xamarin(1) que nos permiten desarrollar para múltiples dispositivos utilizando Visual Studio 2012 como única herramienta de desarrollo. Este es un ejemplo de cómo hay empresas que deciden apostar por el IDE de Visual Studio 2012 como única herramienta de desarrollo.

Ahora bien, si tu rol es de jefe de equipo, seguramente tu preocupación no solo abarque una buena herramienta de desarrollo, sino una herramienta de gestión del ciclo de vida de desarrollo (ALM Application Lifecycle Management). Aquí Visual Studio ALM se lleva la palma, es de lejos una de las mejores opciones inclusive si no trabajas con tecnologías Microsoft.

Veamos un ejemplo simple, lo mínimo que necesitas para poder tener un equipo de desarrollo funcionando es:

–          Un control de versiones de código fuente

–          Un servidor de integración continua (build server)

–          Un registro de incidencias (Bug Tracker)

Este es un escenario de mínimos con el que podremos crear aplicaciones, controlar la calidad de forma automática (2) y tener un registro de los errores que se reportan para asegurar la estabilización de versiones. Si queremos asociar un Bug a una entrega específica del código fuente, pues es muy probable que debamos crear un pequeño proceso personalizado.

Existen muchas opciones en el mercado para cada opción, sin embargo tienes que tener en cuenta que para poder tener las herramientas enlazadas entre sí, necesitas dedicar un par de horas por semana para mantener este entorno en funcionamiento. Y, ¿qué pasa cuando sale una nueva versión de alguna herramienta? Por ejemplo, del Bug Tracker es necesario migrar el contenido del repositorio de Bugs a la nueva versión, verificar que la integración entre las tres herramientas siga funcionando, etc.

Siendo optimista, y no asignando un tiempo de setup inicial para el entorno, podemos definir que la persona encargada de mantener el entorno de desarrollo dedicará cinco horas semanales a esta tarea. Haciendo números de forma rápida podemos ver lo siguiente:

–          5 horas por semana

–          20 horas al mes

–          240 horas al año

Con este esquema tenemos a una persona más de un mes al año SOLO DEDICADA a mantener el entorno de desarrollo. Sé que intentar convencer a la dirección de este coste es casi imposible, y que esta tarea termina siendo absorbida por el equipo de desarrollo de forma “transparente”.

La solución: Team Foundation Server. TFS es una solución transparente en este aspecto, ya que todos los componentes que la conforman están integrados de forma natural. Como con cualquier herramienta hay que dedicar un tiempo inicial de setup, pero luego el tiempo dedicado al mantenimiento y actualización es mínimo comparado con plataformas heterogéneas.

Como referencia,  solo comentar que un servidor TFS sobre el que trabajan más de 50 personas en mi empresa, ha sido montado hace dos años y no tiene dedicadas más de 20 horas de soporte. En su mayoría han sido actualizaciones o mantenimientos rutinarios.

Otro punto a tener en cuenta es que TFS posee muchos más elementos, por ejemplo:

–          Un control de versiones de código fuente, en formato centralizado o distribuido con GIT

–          Un servidor de integración continua (build server)

–          Un registro de incidencias (Bug Tracker)

–          Gestión de proyectos AGILE

–          Varios tableros Kanban para gestionar User Stories o PBIs, tareas, etc.

–          Integración nativa con Microsoft Office

–          Gestión de pruebas y casos de pruebas automatizados

–          Integración con entornos no Microsoft como Eclipse, Cobol, etc.

–          Etc.

tfs features

Team Foundation Server es una solución de ALM pensada para todo tipo de escenarios. Por ejemplo, entornos con dos personas, donde recomendaría utilizar la versión Express que es gratis hasta cinco personas. En la otra cara de la moneda puede existir un proyecto distribuido con equipos en diferentes ubicaciones, con diferentes zonas horarias, etc. En este caso, es posible montar una única capa de datos de TFS, y luego varios servidores de aplicación para garantizar un entorno de alta disponibilidad.Además, en este segundo escenariola integración con herramientas de comunicación como LYNC o SKYPE, ayuda a que la comunicación entre los equipos distribuidos sea mucho más natural.

¿Cuándo debo optar por Team Foundation Service?

Cuando ya has elegido Team Foundation Server llega el momento de elegir el tipo de instalación que deseas realizar. Es probable que tengas dudas como:

–          ¿Qué versión de TFS debo instalar: Express, Basic, Advanced?

–          ¿Me alcanza con una instalación Single Server, o debo separar servidor de datos y capa de aplicación?

–          ¿Necesito SharePoint? ¿o Reporting Services?

–          ¿Cómo debo dimensionar el hardware en cada capa?

–          ¿Creo uno o varios servidores dedicados de Build?

–          …

Para responder estas cuestiones el equipo de ALM Rangers ha creado Visual Studio Team Foundation Server Planning Guide. Esta guía ayuda a definir la planificación e instalación de un entorno con Team Foundation Server.

Una cuestión que también puedes plantearte es:

¿Puedo utilizar Team Foundation Service? http://tfs.visualstudio.com

Team Foundation Service es un servicio de TFS on the Cloud. El siguiente gráfico nos muestra las principales diferencias que hay entre la versión Express, la versión on Premise y la versión on the Cloud (Service).

TFS Features per version

En la versión Service no hay integración con SharePoint ni tampoco un servicio de Data Warehouse y Reporting disponible. Estos no suelen ser los factores determinantes para elegir la versión On The Cloud, sin embargo la ubicación de los datos es algo que hay que tener en cuenta. Si tu organización requiere que los datos no “salgan de tu organización”, pues debes descartar esta opción.

Ahora bien, la versión Service posee las siguientes ventajas:

–          Cero horas de mantenimiento. Esto supone más horas dedicadas a la construcción de aplicaciones.

–          Actualizaciones automáticas. Durante los últimos dos años, el equipo de producto de TFS se ha encargado de aplicar las actualizaciones de forma mensual en el entorno Cloud.

–          Fácil creación y acceso. En solo tres minutos puedes tener un entorno de ALM plenamente funcional. Además es accesible desde cualquier parte del mundo, solo es necesario tener una Microsoft Account (Live ID) para conectarse a TFS.

–          Automatización de despliegues en AZURE. Si tu equipo se dedica a desarrollar aplicaciones sobre AZURE, TFS posee mecanismos de despliegue automático desde TFS hacia AZURE.

–          Utilización de GIT como Source Control. El equipo de producto de TFS ha reconocido el valor de trabajar con un DVCS y es posible utilizar GIT como gestor de código fuente en proyectos de TFS.

–          Gratis hasta cinco usuarios e ilimitado con una suscripción MSDN. Actualmente Team Foundation Service no posee límites de cantidad de usuarios, ya que está en modo trial. En el modelo final de licenciamiento se podrá utilizar de forma gratuita hasta cinco usuarios, y si posees una licencia de MSDN se eliminará este límite.

Conclusión

Para no explayarme más, simplemente comentar que Team Foundation Service es una opción a tener en cuenta en muchos escenarios actuales. Además de tener todas las ventajas de un servicio Cloud, es tal vez la única opción de ALM en el Cloud gratuita que brinda tantas características integradas entre sí.

Si además quieres tener una referencia “casi real” sobre cómo utilizar Team Foundation Service en un proyecto, puedes comprar mi libro ALM con Visual Studio 2012 y Team Foundation Service por menos de lo que vale un café: http://amzn.to/18JjsCw

Referencias:

  1. Xamarin
    http://xamarin.com/
  2. Integración continua
    http://es.wikipedia.org/wiki/Integraci%C3%B3n_continua
  3. Visual Studio Team Foundation Server Planning Guide
    http://vsarplanningguide.codeplex.com/

3 comments

  1. Hola Bruno:

    Es raro para mi decir hola Bruno porque llevo el mismo nombre y es como si me saludara a mi mismo ;D.
    Te cuento que trabajo con un equipo de cinco programadores y desarrollamos aplicaciones en la nube usando Visual Studio 2012.
    Estamos usando GIT y como repositorio remoto github o codeplex.
    Las cosas van bien así como están, pero admito que me gustaría trabajar con una herramienta mas integrada al VS.
    La pregunta es: ¿ Me conviene pasarme a TFS ?. ¿ Que ventajas prácticas tendría ?.
    ¿ Vale la pena el costo de capacitar a todo el equipo a la nueva herramienta ?.

    Desde ya muchas gracias por tu atención y adelante con el blog que está muy bueno.

    Like

  2. Hola, una consulta, se puede usar Team Foundation Server, desde una cuenta de correo corporativa o requiere necesariamente una cuenta de microsoft?,

    Gracias por el dato.
    Germàn

    Like

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.