Nuestro primer proyecto con Microsoft Team Foundation Service

Imagen

En Notarnet llevamos utilizando aplicaciones para la gestión de código fuente desde hace muchos años. Inicialmente comenzamos con Microsoft SourceSafe. Posteriormente, y debido a las limitaciones de SourceSafe, pasamos a una solución tipo SVN (Subversion/Tortoise).

Notarnet tiene en su portfolio varias aplicaciones con ciclos de vida bastante largos, donde además gestionamos varias versiones mayores en el mercado. Y dando una vuelta de tuerca, ciertos clientes se ven obligados a mantener alguna versión anterior, y que bajo soporte extendido, nos comprometemos a seguir manteniendo. En definitiva llegamos a tener varias versiones «mayores» instaladas a las que hay que seguir manteniendo, corrigiendo bugs y añadiendo funcionalidades obligatorias.

Reconociendo que el escenario anterior es un poco extremo, no es difícil encontrar otras situaciones similares que obligan a cualquier empresa que desarrolla software a plantearse la gestión ALM como algo crítico y, por tanto, a buscar una herramienta que aporte no sólo control de código fuente.

Team Foundation Server 2010. Nuestro primer TFS.

Después de búsquedas y pruebas, decidimos implantar TFS como solución óptima que cumplía con nuestros requisitos. Como Partners de Microsoft, y gracias a la suscripción MSDN, parecía lo correcto. Y tengo que decir que el producto nos sorprendió gratamente:

  • TFS no es sólo un sistema de control de código fuente para controlar versiones de código, branching, etc. Es muchísimo más y aportaba lo que realmente necesitábamos.
  • Permite llevar ALM a la práctica y además usar prácticas «ágiles».
  • Gestionar bugs, impedimentos, spikes, etc.
  • Incrustar los Test en las Build y recibir reportes… ¡qué maravilla!
  • Realizar análisis de cobertura de código. Se ha convertido en imprescindible en nuestro equipo.
  • La integración con SharePoint para colaborar de forma ágil y potente fue otro de los motivos.

Pero, claro, también había inconvenientes y algunos no menores:

  • El modo desconectado nunca ha terminado de funcionar bien. Es bastante «arriesgado».
  • Las plantillas de procesos estaban bastante desalineadas con nuestra estrategia Scrum cuasi-pura.
  • Pero probablemente, la infraestructura es el principal problema:
    • El despliegue es todo un reto para los administradores.
    • El dimensionamiento de los servidores implicados es otra de las pesadillas.
    • Incluir toda la arquitectura implicada en la política de backups corporativas.
    • Y un largo etcétera. Quien lo haya implantado sabe de lo que hablo con toda seguridad.

Aparece Team Foundation Server 2012

Llegados a este punto se lanzan las primeras versiones preview de TFS 11 (Server, no confundir con Service). Es evidente que nos disponíamos a ver si nos solucionaba los problemas descritos arriba. Efectivamente: las nuevas plantillas de Scrum nos venían como anillo al dedo,  los TaskBoard son simplemente alucinantes, la integración con Visual Studio 11 (el futuro VS 2012) era increíble, el Team Explorer nos encantaba, perooooo… ¿qué íbamos a hacer con toda la infraestructura creada para TFS 2010? Sólo pensarlo daba dolor de cabeza; y no os cuento al dpto IT.

Teníamos la alternativa de: (1) montar un laboratorio con TFS 2012, (2) planear la migración de forma que no pudiera fallar, (2) solventar los problemas que siempre aparecen en estas migraciones, y (3) finalmente realizar la migración cuando decidiéramos que todo lo teníamos controlado y (4) rezar porque en producción no tuviéramos problemas que nos retrasaran las agendas comprometidas. Todo esto por no hablar de los detalles «sin importancia» de decirle a los de IT que hay que actualizar el Active Directory, que necesitamos Windows 2k8 R2, que hay que actualizar SQL Sever, que el almacenamiento se nos queda pequeño, bla, bla, bla…

Pero es que además, dentro de ¿3-4 años? íbamos a tener que repetir el proceso con TFS ¿2015-2016?. Realmente la pereza aumentaba exponencialmente.

Esa pereza nos llevó a buscar una alternativa… ¡y la teníamos delante de las narices! Se llama Team Foundation Service. He de confesar que hasta esos momentos no le había prestado demasiada atención al servicio hospedado online de Team Foundation Service. ¡Craso error!

Empezamos con Team Foundation Service

En la compañía ya teníamos una cierta experiencia de otros productos/servicios hospedados y, por tanto, conocíamos las ventajas y los inconvenientes inherentes que esto tiene: un ejemplo es Office365 (un gran producto, por cierto). En realidad, lo que tienes disponible es un Team Foundation Server con prácticamente toda la funcionalidad a tu disposición, aunque «algo mermado».

Así que se empezaron a hacer pruebas de concepto, crear algunos proyectos de equipo y, de esta forma, analizar si realmente se ajustaba a nuestras necesidades. Y poco a poco nos fue convenciendo:

PRIMERA GRAN VENTAJA: ¡olvídate de la infraestructura! ¡olvídate de las actualizaciones! ¡olvídate de las caídas de servicio! ¡olvídate de los IT!

Es cierto que esto se debe únicamente a utilizar servicios en la nube, como cualquier otro, y no al producto persé. Pero el hecho de que TFS esté en la nube es una bendición ya que es nuestra herramienta de trabajo.

SEGUNDA GRAN VENTAJA: el portal de trabajo en la web es realmente espectacular. En la versión 2010, utilizar el portal web era un recurso de última hora más que una herramienta de verdad. Ahora es todo lo contrario: manejar el backlog, la planificación de los Sprints, el seguimiento del trabajo en tareas, la gestión de Bugs o Impedimentos, etc, es muchísimo más cómodo y rápido en la web que en el propio Visual Studio.

Imagen

Esto para personas como yo con perfil de ex-PM, y ahora Product Owner y ScrumMaster, y siempre en movilidad es una necesidad imperiosa. Sólo queda dar la enhorabuena por esto.

TERCERA GRAN VENTAJA: el TaskBoard y el BacklogBoard.

  • Planificar un PBI en un Sprint es seleccionarlo y arrastrarlo al CurrentSprint… y ¡listo!
  • Priorizar un PBI es arrastrarlo verticalmente en la lista del CurrentSprint
  • Aprobar un PBI es arrastrarlo a «Approved»
  • Dar por finalizada una Task es arrastrarla a «Done»
  • Estimar el esfuerzo de una Task es facilísimo
  • Asignar una Task a algún miembro del equipo es inmediato

Imagen

En fin… ¡francamente sorprendente! Interactividad y Visibilidad máximas. Cuando se lo muestras a la gente ¡alucina!

CUARTA GRAN VENTAJA: tienes gratis un TFS prácticamente completo a tu disposición, para equipos de hasta 5 usuarios. Y a eso le añades que es un beneficio de la suscripción Visual Studio Premiun/Ultimate/Test MSDN.

MY WORK: gran herramienta tanto a nivel de portal web como en el Team Explorer de Visual Studio. Este es un paso hacia adelante facilitando la información de las cuestiones pendientes a los miembros del equipo.

ROOMS: una de las últimas novedades en aparecer. La posibilidad de interactividad y seguimiento es muy potente. Todavía no la hemos explorado 100% pero creo que va a ser muy útil; estoy seguro que dará juego.

SOPORTE GIT: esto permitirá gestionar proyectos por ejemplo desde XCode. No está nada mal.

Hay otras muchísimas novedades que en el ecosistema Visual Studio/TFS: el nuevo Team Explorer con el control sobre los cambios pendientes, la solicitud revisión de código muy mejorada, la búsqueda de Work Items, y un larguísimo etcétera.

¿Qué le falta a TF Service?

No todo iban a ser parabienes. Es cierto que se ha hecho un producto amigable, versátil y con una potencia descomunal. También es necesario señalar que todavía no hemos explotado el 100% de la funcionalidad y que nos quedan por explorar muchas cuestiones que seguro nos serán útiles y de las cuales no quiero opinar por el momento. En cualquier caso sí que creo que le faltan algunos detalles importantes.

  1. La autenticación. Tener que utilizar una cuenta Live (o similar) no es de recibo. Por ejemplo: no supe cómo explicar en la compañía porqué teníamos que crear una cuenta Live para nuestras cuentas de Office365 que son con las que accedemos a TFService.
  2. No es posible renombrar un Team Project. Así que elígelo bien.
  3. Llevamos ya demasiado tiempo viendo el asterisco en las secciones de Build y Test. Queda feo… 😉
  4. Los gráficos de Burndown deberían evitar los días no laborables y los días definidos como no hábiles en la planificación.
  5. Las plantillas de procesos (en nuestro caso Scrum 3.0) debería integrarse con Exchange Online. Sería una gran mejora: por ejemplo, si planificamos una Release de 3 meses, con 6 Sprints (duración 2 semanas), especificando las fechas evidentemente. Debería poder realizar las convocatorias de reunión de los miembros del equipo, o al menos facilitarlas, como las Sprint Meeting, las Review Meeting, etc. y llevar control sobre ellas.

En este punto podríamos pedir muchas mejoras, pero quizás estas sean las más interesantes; o al menos, las que se me han ido presentando.

Conclusiones

Esta sección del post es muy corta: Team Foundation Service es un gran producto. SIN PALIATIVOS.

Surface 2. Precios y Especificaciones completas

Actualización de última hora: sigue sin tener conectividad 3G/LTE. Como ya comentaba en un post anterior un dispositivo de este tipo, pensado por y para la movilidad, debe tener este tipo de conectividad. Se ha anunciado que «antes de final de año» habrá dispositivos que lo tengan como opción; evidentemente aumentará, aún más, el precio…

Ya está aquí la nueva Surface 2 de Microsoft. Se ha anunciado que llegará a España el 22 de octubre de este año (bastante rápido). Os hago un resumen rápido de precios y especificaciones (precios en dólares):

Externamente es prácticamente igual… un poco más ligera y un poco más fina. Pero por dentro hay muchas novedades: procesador Haswell, más configuraciones de RAM (hasta 8 GB en la Surface 2 Pro,) mayor almacenamiento en la Pro, kickstand de dos posiciones, resolución FullHD, nuevos teclados y un Dock Station fundamental para utilizarlo como híbrido.

Imagen

Surface 2 Pro

Surface 2 Pro (incluye Pen)

Precio Estimado

RAM 4 GB + 64 GB $899
RAM 4 GB + 128 GB $999
RAM 8 GB + 256 GB $1.299
RAM 8 GB + 512 GB $1.799

Surface 2

Surface 2 Precio Estimado
32 GB $449
64 GB $549

Accesorios (válidos para los dos modelos, incluso la serie anterior)

Accesorios Precio Estimado
Touch Cover $119,99
Type Cover $129,99
Power Cover $199,99
Dock Station $199,99

En cuanto a las especificaciones hay bastantes novedades.

Surface 2 Pro

  • Windows 8.1 Pro
  • Medidas en pulgadas: 10.81 x 6.81 x 0.53, con 2 lbs de peso.
  • Pantalla de 10.6» ClearType Full HD, 1920x180p
  • Intel Core i5-4200U (Haswell) a 1.6 GHz. Gráfico Intel HD 4400
  • 4/8 GB de RAM
  • 64, 128, 256, 512 GB para almacenamiento. No hay muchos detalles acerca del disco duro concreto.
  • Wi-Fi (802.11 a/b/g/n) y BlueTooth 4.0
  • Puertos
    • 1 x USB 3.0
    • Micro SDXC card
    • Mini DisplayPort
    • Cover port

Surface 2

  • Windows 8.1 RT con Office 2013 RT (Word, Excel, PowerPoint, OneNote y Outlook)
  • Medidas en pulgadas: 10.81 x 6.79 x 0.35, con 1,49 lbs de peso.
  • Pantalla de 10.6» ClearType Full HD, 1920x180p
  • NVIDIA Tegra 4 (T40) a 1.7 GHz quad core
  • 32 GB o 64 GB de almacenamiento
  • Wi-Fi (802.11 a/b/g/n) y BlueTooth 4.0
  • Puertos
    • 1 x USB 3.0
    • Micro SDXC card
    • Mini DisplayPort
    • Cover port

Notas: parece que la Dock Station y la Power Cover no estarán disponibles hasta principios de año.

Este es el rápido resumen después de la presentación de la Surface 2. Ya haremos cuentas.

Llega la Microsoft Surface 2… la evolución esperada

Hoy se presenta la nueva Microsoft Surface (Surface 2) en un evento en Nueva York. No sé si ha generado la suficiente expectación que merece, pero probablemente será algo de lo que se hable bastante en los próximos días. En un post anterior ya adelantaba las características que ahora parece se confirman.

Surface Cover

En el post de Paul Thurrot se dan todos los detalles, aunque sólo me centraré en las cuestiones que me merecen mayor importancia. En primer lugar hay que decir que, aunque la presentación se realizará hoy mismo, todavía no hay fecha para el lanzamiento comercial (seguro que harán ruido para la campaña navideña).

Habrá 3 dispositivos en la gama: Surface 2, Surface Pro 2 y Surface Mini.

  • Surface 2. Sustituye a la Surface RT. Arquitectura ARM basada en TEGRA 4, 10.6 pulgadas ClearType Full HD (1920 x 1080, o 1080p), Bluetooth 4.0, Wi-Fi 802.11, USB 3.0, micro-SD de 64 GB, kickstand de 2 posiciones. Viene con Windows RT 8.1 y con Office Hogar & Estudiante 2013 RT (con Outlook RT).
  • Surface Pro 2. Sustituye al a Surface Pro, y tiene exactamente el mismo cuerpo que su antecesora. Instala un procesador de 4ª generación (Haswell) Intel Core i5, RAM 4 ó 8 GB y distintas confirugaciones de SDD, kickstand de 2 posiciones, pantala ClearType Full HD, Bluetooth 4.0, Wi-Fi 802.11, USB 3.0, microSD de 64 GB, salida mini DisplayPort, y un Pen digital. Corre sobre Windows 8.1 Pro «con características extendidas,» lo que quiera eso que signifique, pero no trae Office de ningún tipo.
  • Surface Mini. Todavía no hay detalles y probablemente no se podrá ver hasta unos días después, aunque todo parace indicar que será un dispositivo con Windows 8.1 RT de 8 pulgadas de pantalla.

Por una parte vemos que Microsoft ha cambiado la política con los nombres: desaparece la palabra «RT» de la versión ARM y se queda con el nombre «Surface» a secas. También está claro que se ha esforzado en que su versión Pro tenga mayores opciones de configuración, y por supuesto, tecnología Haswell. Sin embargo, si realmente el «cuerpo» es exactamente el mismo, espero a que sólo se refieran en dimensiones, pero no en peso. Sería una decepción que que no se hubieran mejorado, o bien, las dimensiones, o bien el peso del dispositivo.

Bueno, veremos en NYC qué presentan.

Microsoft compra Nokia… crónica de una compra anunciada

Hoy nos despertamos con la tormenta en las redes sociales anunciando que Microsoft finalmente adquiere Nokia (realmente sólo la división de dispositivos y servicios móviles… vamos… que a Nokia se la traga literalmente Microsoft).

ballmer-elop

Particularmente no me ha sorprendido en absoluto; ya era una operación que se veía venir desde que Microsoft colocó su topo Stephen Elop al frente de la compañía en 2010 y era sólo el siguiente paso. Hay que recordar que Nokia estaba al borde del desastre total y Microsoft aprovechó la coyuntura para hacerse con la compañía sin desembolsar ni un solo euro, al menos nominalmente; con un acuerdo para que Nokia olvidara a su Symbian, Meego y sobre todo a Android. Todavía recuerdo las famosas declaraciones de Elop: «LA PLATAFORMA ESTÁ EN LLAMAS» en febrero de 2012 en un comunicado interno a los empleados de Nokia.

nokia en llamas

De esta forma, Microsoft podía colocar su sistema operativo móvil Windows Phone sin necesidad de meterse a fabricante de dispositivos. En febrero de 2011 Elop anunciaba que Nokia se aliaba con Microsoft y dejaba de lado la otra gran posibilidad: montar Android en los nuevos dispositivos. La cosa ya estaba muy clara.

Ahora, se cierra el círculo: Microsoft adquiere la parte significativa de Nokia por 7.200 millones de dólares… ¡una auténtica ganga! Y de paso, Stephen Elop se posiciona como futuro CEO después de la salida de Ballmer. Como analiza con mucho acierto Enrique Dans en su blog, Microsoft ha hecho el negocio perfecto: coloca a su directivo-topo en la compañía, la deja a muy buen precio y ahora, finalmente, se hace con ella (procesos de fabricación y patentes incluidas).

Otro aspecto a considerar es el hecho de que otra empresa bandera de Europa, queda en manos de un gigante americano. Ya veremos qué pasa con los empleos, la tecnología propia, etc. Pero es de justicia decir que Nokia en 1999 era la empresa europea con mayor capitalización bursátil, pero la pésima gestión la llevó a pasar de tener el 50% del mercado de Smartphons a tener apenas el 4%…¡con lo que muy bien muy bien.. no les iba! De hecho, algunos especialistas independientes apostaban a que era la única opción posible o, al menos, la más ventajosa para Nokia.

También recomiendo la lectura del post «urgente» de José M. Alarcón donde da su visión sobre este tema. Como siempre, muy analítico y tocando todos los puntos calientes del asunto.

La conclusión: Microsoft se parece un poquito más a Apple y ya tiene su teléfono y su sistema operativo. Ya veremos si dentro de un par de años, ¡como mínimo!, el Microsoft Lumia o como se llame, consigue arañar cuota de mercado realmente. Si no es así, Microsoft lo va a pasar muy muy mal.

El ciclo de vida de Visual Studio ¿un poco acelerado, no?

Imagen

No hemos acabado de migrar una solución desde Visual Studio 2008 o 2010 a la  ¿última? versión 2012 y ya tenemos aquí Visual Studio 2013 (en preview… sí…, pero ya está aquí). Pero es que además se acaba de publicar también el Update 3 de la 2012.

Es cierto que los «updates» no suponen una ruptura que generen mayores problemas, incluyendo revisiones de algunos de los framework que van con el paquete, o incluso añadir funcionalidades completas (véase SignalR, creo que con el update 2 …pierdo la cuenta). Esto es así, y todo lo que sea agregar está muy bien y se agradece. Sin embargo el cortísimo ciclo de vida con las versiones mayores realmente crea problemas; cuando además de agregar, se eliminan elementos o se rompe la compatibilidad, las dificultades aparecen rápidamente.

Hay equipos de programación que se dedican a mantener aplicaciones de muy largo ciclo de vida, incluso de más de 10 años; proyectos complejos, con varios productos interrelacionados, dependientes unos de otros, con tecnologías diversas, y con soluciones (SLN) algunas de más de 25/30 proyectos, llegando a sumar fácilmente más de 100 proyectos (PROJ) en total. Por definición, la administración de este tipo de aplicaciones es en sí mismo un trabajo muy importante y de cierta complejidad; plantearse la migración es un auténtico reto y merece un análisis detallado, requiriendo de cierta experiencia.

Por otra parte, pero no menos importante, desde el punto de vista personal te sientes inferior cuando no paras de ver a los gurús del desarrollo twittear que ya han instalado la última versión, aunque esté en «Preview», hablando maravillas de las nuevas características y dando ejemplos a cada cual más interesante. Estos valientes, lo instalan en producción, con proyectos reales… y el mismo día en que Microsoft publica la release ¡sí, no creas que tienen miedo!… ¿para qué esperar a la RTM?

Para que este post sirva de algo más que un desahogo, un poco de historia con las versiones más recientes de Visual Studio y las fechas de publicación (sólo versiones RTM):

  1. Visual Studio 2005. Octubre 2005 en inglés, febrero 2006 en español.
    • Service Pack 1. Junio 2007
  2. Visual Studio 2008. Noviembre 2007 en inglés, febrero 2008 en español.
    • Service Pack 1. Agosto 2008
    • Service Pack 2… el inacabado… se estuvo hablando durante meses y meses pero finalmente no apareció
  3. Visual Studio 2010. Abril 2010
    • Service Pack 1. Abril 2013
  4. Visual Studio 2012. Agosto 2012.
    • Update 1 en noviembre 2012
    • Update 2 en abril 2013
    • Update 3 en julio 2013
  5. Visual Studio 2013 Preview junio 2013

Con el penúltimo paso de 2010 a 2012, Microsoft ha hecho un esfuerzo para hacer compatibles los proyectos, pero el cambio no sale gratis: por ejemplo desaparecen los proyectos clásicos de instalación; simplemente no los carga el explorador de proyectos. Ahora parece que con la versión 2013 nos espera algo similar con los proyectos de Unit Testing… ya veremos.

Todo esto viene a concluir que Microsoft, en mi opinión, se pasa un poquito con tanta versión, dejándote anticuado en tres o cuatro años como mucho. Un entorno cómo Visual Studio es lo suficientemente complejo y sofisticado como para que sus usuarios, entre los que me incluyo, puedan amortizar la gran cantidad de tiempo dedicado a conocer todas sus características y, en definitiva poder explotar toda su funcionalidad. Esto no quiere decir que el entorno no deba actualizarse y enriquecerse convenientemente; esto es absolutamente necesario, pero siempre cuidando mucho muchísimo al ecosistema de desarrolladores que trabajan con él.

Es cierto que parece que Microsoft ha entendido esto, pero ¡sólo a medias! Por ejemplo, desde la versión 4.0 de .NET se decidió que las siguientes versiones de Entity Framework no irían en correlación; de hecho al poco tiempo aparecía EF 4.1 para no tener que esperar a .NET 4.5. Con otras tecnologías como ASP.NET MVC pasará lo mismo. Esa es la dirección correcta, pero habría que ir más lejos… ¡¡¡hay que incluir en esta separación a .NET completito!!!

Dicho todo esto, también es de justicia decir que probablemente Visual Studio es el mejor entorno de desarrollo que existe en el mercado,y con diferencia, aunque también podríamos hablar largo y tendido de los paquetes que se han ido quedando en el tintero, y a los que Microsoft simplemente les ha dado «pasaporte» dejando a muchos de  sus desarrolladores con tres palmos de narices: véase VSTO o el soporte para Molex.

Esperemos que Microsoft escuche un poco más a la comunidad de sus desarrolladores.