Archivos de la categoría agile

¿Funciona la mentalidad ágil en las grandes empresas?

Es probable que te hayas hecho esa pregunta si estás siendo parte de un proceso de cambio hacia las metodologías ágiles (o si estás decidiendo si lo intentas).

En nuestro trabajo como coaches ágiles, encontramos empresas que – luego de varios meses de trabajar arduamente en la adopción de metodologías ágiles – logran resultados en el ámbito de los equipos, aunque no muy contundentes. Incluso hemos observado mejoras importantes las cuales, luego de un tiempo, se estancan o pierden impulso.

¿A qué se debe esto? ¿A todos les pasa lo mismo? ¿Cuáles son las causas raíz?

En este artículo exploramos algunas de las posibles causas y compartimos ideas para que explores junto con tu equipo. Les adelanto los títulos:

  • No estamos implementando una metodología
  • ¿Alguien dijo “cambio”?
  • ¿Funcionará cuando se vayan los coaches ágiles?
  • La falta de calidad puede derrumbar al mejor proyecto

No estamos implementando una metodología

Hemos visto muchos proyectos de cambio hacia formas más ágiles de trabajo enfocados como una implementación en fases de una metodología. Usualmente el criterio de éxito en esos casos se relaciona con implementar Scrum en una cierta cantidad de equipos, en conseguir certificaciones, etc.

Incorporar una metodología ágil no debería ser el objetivo (mucho menos la métrica de resultado). El objetivo debería ser mejorar los resultados de la empresa, ser más eficientes y mejorar la calidad (en otras palabras, objetivos relacionados con el negocio).

Un síntoma que podemos observar cuando se da esta confusión entre medios y fines es la generación de una tensión entre el mundo ágil y el mundo no ágil dentro de la empresa. Esto expresa que no se están realizando ofrecimientos de apoyo para lograr mejores resultados sino que se está presentando una nueva forma de hacer las cosas que pretende reemplazar a la anterior.

Este enfoque:

  • provoca resistencias, ya que las personas lo sienten como un cambio que se les impone. Si en su lugar se les ofreciera una solución a sus problemas concretos, ellos mismos estarían dispuestos a incorporar las nuevas prácticas y…
  • es ineficiente, dado que pretende reemplazar todo, sin distinguir lo que funciona satisfactoriamente (y se podría conservar) de aquello que no.

En cambio, si nos enfocamos y definimos métricas de resultado, serán estos los que promuevan el interés del negocio y habiliten la expansión de la iniciativa.

Puedes probar con pequeños cambios en los procesos diseñados y puestos en práctica por la persona que los vive. Decidir acciones basándonos en intereses en lugar de posiciones también es un habilitador muy efectivo. También podemos enfocar el proceso desde la visión Improvement Kata (en Inglés) o puedes ver un video de 15 minutos aquí, en español, siempre partiendo de la condición actual hacia una nueva situación objetivo.

¿Alguien dijo “cambio”?

La gestión del cambio tiene cada vez más lugar en las iniciativas de transformación, y nos seguirá acompañando mientras nuestras culturas estén más preparadas para repetir que para crear aprendiendo. Esto último sucederá a medida que el mindset ágil se vuelva el predominante, pero mientras tanto deberemos acompañar y facilitar estos procesos.

Si una transformación no está incorporando la gestión del cambio, o no lo está haciendo de la manera adecuada, es probable que se manifiesten resistencias o bien que los esfuerzos que se realizan tengan baja efectividad. Estos hechos suelen pasar inadvertidos hasta que por su propio peso deriven en el fin de la iniciativa.

Un diferencial importante de la mentalidad ágil es que sus marcos de trabajo, valores y principios han sido pensados para abrazar el cambio.

Algunos marcos específicos son Open Agile Adoption y Lean Change Management, donde se combinan el modelo iterativo-incremental, la experimentación y el aprendizaje emergente para acompañar y potenciar los procesos de transformación.

¿Funcionará cuando se vayan los coaches ágiles?

Si se han producido cambios, obtenido resultados tangibles y ha cambiado en cierto modo el clima en la empresa ¿Quién garantiza que esos logros persistan y mejoren cuando el apoyo de los coaches disminuye?

Algo similar ocurre cuando los primeros proyectos piloto han arrojado resultados prometedores. ¿Cómo extendemos esta iniciativa el resto de los equipos? ¿Y al resto de la empresa?

Como otros cambios estratégicos, los proyectos de transformación organizacional deben ser liderados por equipos internos en la empresa. En el caso de que hubiera coaches contratados para acompañar la transformación, parte del trabajo de estos coaches debe ser el desarrollo del equipo interno, de manera que puedan continuar en el tiempo y en el resto de la empresa.

La falta de calidad puede derrumbar al mejor proyecto

Muchos equipos sacrifican calidad, casi sin darse cuenta, en pos de resultados más rápidos. Este escenario se conoce  como deuda técnica, que más temprano que tarde, cobra sus intereses.

Pensemos, por caso, en una empresa que brinda servicios de transporte. En ese caso hipotético, la calidad podría verse en el mantenimiento de sus vehículos, en unidades de pocos años de uso, en capacitación de los conductores o en el mantenimiento preventivo.

Es relativamente simple asociar pérdidas cada vez mayores por costos inesperados en el negocio, debido a la falta de atención de estos aspectos. Incluso pueden llevar a la empresa a la pérdida de posición en el mercado.

Otro ejemplo relacionado con el desarrollo de productos de software en donde la deuda técnica se manifiesta en productos difíciles de modificar confiablemente, tiempos de desarrollo cada vez más largos, numerosos defectos en las entregas, etc.

Dependiendo de la naturaleza del producto o servicio que desarrolle la empresa en la que trabajas, las técnicas de mejora y aseguramiento de calidad serán distintas y específicas. Sugerimos revisarlo con los expertos en tu organización.

En el caso del desarrollo de software, Extreme Programming (XP) integra una serie de técnicas (que evolucionan en el tiempo y varían según el contexto), siempre apoyando principios clave como flexibilidad, simpleza, feedback frecuente y otros.

¿Qué puedo hacer yo? Aportando a la transformación

La anterior fue una lista resumida de algunas causas que observamos frecuentemente como frenos a las transformaciones hacia la agilidad. Si en tu contexto notas que se manifiestan éstas u otras causas para que la iniciativa no avance, te invitamos a que busques a las personas interesadas en mejorar esa situación y lo compartas con ellas.

Finalmente, la respuesta la pregunta planteada en el título del artículo es: Si, funciona, siempre y cuando enfoquemos el cambio como equipo, basándonos en las personas y sus interacciones.

 

Agradecimientos

Quiero agradecer a Natalia Davidovich, Rodrigo Monelos y al resto de los revisores en equipo de Kleer con los que trabajo en transformación organizacional.

Las dos estimaciones

En las últimas semanas tuve la oportunidad de colaborar con un cliente en la adopción de metodologías ágiles en un proyecto corporativo de reemplazo de las aplicaciones centrales del negocio (core).

El equipo del proyecto (unas 60 personas entre desarrolladores, responsables de producto y representantes del negocio) estará trabajando los próximos tres años en la construcción y puesta en producción escalonada (afortunadamente no optaron por un big bang).

Quiero compartirles en esta entrada un aprendizaje respecto de la estimaciones necesarias en este tipo de proyectos.

¿Que pasó desde que escribí esta entrada?  (en el orden en que me llegaron estas noticias)

  • Jason Gorman escribió una entrada  el 1 de Agosto que creo explora ideas similares.
  • El genio de Martín Salías me cuestionó en privado algunas cosillas, luego debatimos un poco y llegamos a la conclusión de que estábamos más o menos de acuerdo y clarificaría algunos puntos.
  • El otro genio de Steve McConnell, que de estimaciones escribió bastante, publica un video el 30 de Julio.
  • Ron Jeffries lo responde al día siguiente, el 31 de Julio con una entrada.
  • Steve McConnell escribe una entrada en su blog, el mismo día.
  • Ron Jeffries responde, a su vez, con otra entrada.

Primera estimación: la factibilidad

Todo proyecto corporativo del rango de varios millones de dólares está sujeto a muchas decisiones estratégicas de mediano y largo plazo. El dinero no crece en los árboles y el comité ejecutivo debe tomar riesgos, debe decidir donde invierte entre muchas otras opciones igualmente importantes.

Los equipos de tecnología deben comprender y empatizar con estos riesgos si queremos una industria sana, no se trata de dos bandos, de un campo de batalla donde abunda la desconfianza mutua y, por ende, triunfa la baja productividad y el desperdicio de dinero, tiempo y motivación.

En esta etapa, la estimación de esfuerzo tiene técnicas y fines específicos, que son los de determinar la factibilidad del proyecto con base en la estimación de plazos y costos. No es extraño en estos casos encontrar fechas de finalización que, a primera vista, parecen arbitrarias.

En uno de los debates en este cliente, intentando acercar la visión del comité ejecutivo a la de los equipos de desarrollo, utilicé dos metáforas.

La primera fue la de la entrega para la temporada de ventas, por ejemplo, Navidad. Hay factores más importante que la estimación de esfuerzo en este caso, el proyecto debe estar terminado para el 15 de Diciembre, dos o tres días mas lo harían inviable.

Otra de las metáforas fue la de construcción de un edificio (¡cuando no este paralelismo!), imaginemos que estamos construyendo un edificio de 20 pisos que tiene fecha límite de inspección, luego de la cual ¡nunca podrá ser aprobado! En este caso, no hay nada más importante que esa fecha, si no termina a tiempo, de nada sirve todo el esfuerzo.

Resumen: El objetivo de la estimación en esta etapa es determinar la factibilidad del proyecto. Debemos tomar en cuenta aspectos técnicos, de arquitectura, tiempos de interacción, etc. Dentro de los parámetros de factibilidad es normal llegar a fechas de entrega y a presupuestos exactos e inamovibles, al menos en el comienzo del proyecto (* ver nota al final).

Resto de las estimaciones: el mejor producto posible

Finalmente el proyecto comienza y el equipo tiene tres años por delante para reemplazar un core de negocio, frente a un mar de incertezas y con fecha fija de entrega. Pocas situaciones me parecen más aterrorizantes en el mundo del trabajo, incluso como consultor o coach, donde podría decirse que “lo vemos desde afuera”.

En esta etapa las estimaciones tienen otro fin completamente distinto. En esta etapa el foco debe estar en llegar al plazo indicado con el mejor producto posible. Para llegar a ese objetivo el responsable de producto debe priorizar, debe decidir que funcionalidades incluye y cuales no incluye. También debe decidir como se implementan las funcionalidades incluidas.

Para todo esto, el responsable del producto necesita visibilidad del avance del proyecto (para entender que es lo que ya está terminado) y visibilidad de las posibilidades desarrollo futuro. El equipo es responsable de brindar esta información con claridad y transparencia.

Con respecto a las funcionalidades terminadas, no deben requerir ningún tipo de trabajo adicional (ya fue desarrollado, el representante del usuario final lo aprobó, ya tiene el proceso de despliegue automatizado y probado en entornos similares a producción e, idealmente, ya esta en uso en producción). Lo que se dice, terminado-terminado.

Con respecto a las posibilidades de desarrollo futuro, el equipo debe garantizar las prácticas técnicas y de equipo para que la productividad sea sostenible (prueba automatizada, código simple, etc).

Por último, el equipo debe mantener actualizadas las estimaciones de todo lo que resta desarrollar (con nivel de detalle acorde a la posición en el backlog, lo de la cima con detalle, lo de abajo, con poco detalle) de manera que el responsable de producto tenga visibilidad sobre el avance del proyecto según el plan.

En el ejemplo de la construcción del edificio de 20 pisos que mencioné en el apartado anterior, puede implicar que el responsable de proyecto decida que prefiere no terminar uno de los pisos para llegar al plazo, es mejor un edificio con 19 pisos aprobados que uno con 20 pisos que nunca podrán ser habitados (creo que es por este motivo que muchos edificios no tiene piso 13).

Resumen: El objetivo de la estimación en esta etapa es brindar información confiable al responsable de producto para priorizar las funcionalidades a incluir (y cuales excluir, sobre todo) en el proyecto, para finalizar con el mejor producto posible.

(*) Nota: ¿Son fijos los plazos y presupuestos?

No debemos olvidar que los proyectos de desarrollo de tecnología en organizaciones que se basan fuertemente en ella son inversión. Lo que puede ser fijo e inamovible ahora, cuando el proyecto comienza (con todos los riesgos) puede ser mas flexible si el proyecto demuestra que los riesgos fueron controlados y el proyecto marcha bien, está en manos del equipo de desarrollo.

Agile-Spain Open Space 2015

Foto de cierre del AOS2015

Esta semana, que termina cuanto toco tierra en Buenos Aires, he viajado más que en cualquier otra, visitado muchas culturas: canarios, madrileños, sevillanos, y asturianos.

Todo esto valió la pena pues he tenido, en el AOS2015, una inmersión de primera mano en la comunidad ágil española, vibrante y reflexiva, amable y combativa, liberal y conservadora. Única.

Las sesiones fueron muy variadas en cuanto a profundidad como en temas. Afortunadamente hubo muchas sesiones introductorias que de seguro fueron de utilidad para las personas que se acercan por primera vez a la comunidad.

Hubo tanto temas técnicos (prácticas y herramientas relacionadas con Extreme Programming) como temas relacionadas con las metodologías y marcos de trabajo. Tampoco quedaron fuera temas relacionados con las personas y las culturas organizacionales y hasta sobre la ética.

En un párrafo especial quiero mencionar una sesión sobre la importancia del aprendizaje (tema sobre el cual he visto muchas sesiones). En esta sesión se presentaron dos proyectos en funcionamiento:  y . Pueden ver aquí la documentación visual que hice durante la sesión. Les dejo una documentación visual que hice sobre la sesión:

Mi documentación de la sesión

Como siempre en este tipo de eventos tan humanos y motivantes, salí con muchas ideas nuevas y mas amigos y colegas.

Una especial mención al equipo de organizadores, estoy seguro de que todavía están durmiendo, desde el sábado por la noche.

¡El equipo!

Por último, la próxima edición sera en Santiago de Compostela, Galicia ¡por si acaso pensaban que la comida no podía mejorar!

Espero nos veamos pronto. Gracias a todos.

Continuous Integration Fest en Medellín.

IMG_20141115_120236209El sábado 15 de Noviembre, con el apoyo de Ágiles Colombia, facilité una reunión en Eafit, en Medellín, cuya intención fue acercar las herramientas de integración continua a los desarrolladores que aún no las habían utilizado, al menos configurándolas con sus propias manos.

Los resultados, para mí, fueron asombrosos. Todos los equipos (en general de dos personas cada uno) lograron poner en marcha Jenkins, conectarlo con los repositorios, algunos públicos otros privados, algunos TFS, otros Subversion, otros Git y configurar su primer “build” automatizado.

No fue obstáculo que algunos trabajaran en .NET, otros en Java, en PHP y otros en Scala. Aquellos que trabajaban en PHP se ocuparon de entender como realizar Smoke Tests (con el HTTPRequest plugin) sobre el sitio y compartieron ese conocimiento con otros.

Todo esto con muy poca colaboración de mi parte, la mayor parte del tiempo la dediqué a musicalizar con vallenatos y Beatles.

Pueden escuchar los comentarios directamente desde los protagonistas en el video que encontrarán en este álbum.

¡Un saludo!

Mis motivaciones con TDD y ATDD

Cuando pienso en (A)TDD me vienen a la cabeza dos cosas: simplicidad y reducción del desperdicio, dos cosas que son, en mi opinión, dos caras de la misma moneda.

El diseño de software, no importa como se lo mire, es un proceso complejo. El diseño, no importa de que cosa, es un proceso complejo. Nuestro cerebro no es capaz de evaluar todas las variables o grados de libertad en abstracto, como hacen los buenos jugadores de ajedrez tomando en cuenta muchas jugadas hacia adelante.

Es por esto que necesitamos concretar, eliminar grados de libertad, probar ideas.

¿Como reduce el desperdicio (A)TDD?

Evitando dedicar tiempo a construir (y probar, depurar, mantener, etc.) cosas que no necesitamos, utilizando el proceso:

    1. analizo las necesidades
    2. pienso como resolverlas
    3. decido como probar lo que construiré, con ejemplos concretos
    4. escribo una prueba que falle para el ejemplo mas simple
    5. escribo el código mas simple posible que hace pasar la prueba
    6. aprovecho oportunidades para mejorar mi código y pruebas

Veo este proceso como una suerte de embudo que me obliga a trabajar solo en lo que necesito, por ejemplo:

    • en el paso 5 escribo solo el código necesario para pasar el test
    • en el paso 4 escribo la prueba basada en el el ejemplo concreto mas simple sin resolver
    • en el paso 3 pienso en ejemplos concretos de lo que quiero lograr (no en “posibles” necesidades abstractas)
    • en el paso 2 dedico unos minutos a pensar como resolveré las funcionalidades (no comienzo a programar ciegamente)
    • en el paso 1 dedico un tiempo a entender el contexto de lo que debo hacer

Este proceso respeta dos cuestiones transversales muy importantes: se repite en ciclos cortos y la calidad no es opcional (calidad es arquitectura, rendimiento, cumplir con estándares, documentación, etc.)

 ¿La simplicidad?

Encuentro la simplicidad en los mismos puntos anteriores pues no construyo nada que no sea necesario por un paso en el proceso que mencioné antes, sumando al combo al refactoring, esa simplificación de mis artefactos que me permita no solo sostener y mejorar el ritmo de trabajo a lo largo del proyecto.

¡Nos vemos!

Coderetreat en Buenos Aires

gdcr-1

UPDATE: Sumamos a Cinchcast como sponsor (una startup estadounidense con un equipo de 10 desarrolladores en Buenos Aires). Ya esta solucionado el almuerzo, creo que habrá sorpresas. También agradecemos a Kleer, por sus oficinas.

Este año, junto con Benjamin Eidelman (aceptamos ayuda) y Ágiles Argentina, estamos organizando, el Global Day of Coderetreat en Buenos Aires.

La experiencia anterior, en el año 2011, fué muy interesante, compartimos el día con desarrolladores de todo el mundo, desde Honolulu hasta España y Japón (150 ciudades en todo el mundo). Incluso, establecimos comunicación vía Skype con algunos de los grupos.

¿Qué ocurre en un coderetreat?

Nos reunimos desarrolladores interesados en mejorar nuestras habilidades. Practicamos la resolución de varios problemas de programación, con distintos lenguajes, distintos colegas, distintos objetivos.

¿Cómo puedo participar?

Si deseas inscribirte (¡solo 18 lugares!), por favor hazlo en el Meetup del evento. También puedes visitar la página del evento en el sitio de la comunidad mundial de Coderetreat.

Si tienes ideas o propuestas, por favor usa los comentarios de Meetup, queremos mantener centralizada y visible para todos esa información.

¡Nos vemos!

Los tres caminos

51rMT69p7rL._SY344_PJlook-inside-v2,TopRight,1,0_SH20_BO1,204,203,200_Hace un tiempo terminé de leer el libro The Phoenix Project.

El libro tiene un fantástico olor (si, huelo los libros) pero, además, me gusta mucho el estilo de novela en el cual esta escrito. Describe la situación de Parts Unlimited, una empresa en la cual las tecnologías de la información están en completo descontrol. El relato es impecable y bastante creíble, de hecho, me imagino a muchas compañías en esa misma situación.

Nuestro héroe, Bill Palmer, ayudado un misterioso amigo, va descubriendo, paso a paso la forma de mejorar la situación aplicando paralelismos creíbles. En otras palabras, llega desde una situación caótica creíble a una situación muy familiar para un agilista y lo hace mediante la descripción de los tres caminos, de eso quiero hablarles hoy.

El primer camino: flujo

Este camino se propone la visión sistémica de una gerencia, una organización completa o un individuo, enfatizando el flujo de valor en sistema completo, cuidando de que optimizaciones locales no degraden el rendimiento general.

El segundo camino: realimentación

Una vez establecida la visión sistémica es necesario habilitar la mejora continua estableciendo el mecanismo de realimentación, lo mas inmediata posible para garantizar que el flujo de valor buscado en el primer camino mejora continuamente.

El tercer camino: experimentación continua y aprendizaje

El tercer camino propone un cambio cultural basado en dos conceptos: el aprendizaje continuo habilitado por la experimentación, tomando riesgos y aprendiendo de los errores y el entendimiento de que la repetición y la práctica sostenida son imprescindibles para lograr la perfección.

¿Como aplican estos principios al desarrollo de software?

Para que este artículo no sea una mera traducción de los textos cuyos originales incluyo al pie, me gustaría hacer una breve interpretación ajustada a la construcción de software, según mi experiencia.

Logramos el flujo (el primer camino) cuando priorizamos la puesta en producción continua de funcionalidades con valor para los usuarios. También garantizamos un flujo continuo y sostenible con prácticas como TDD (Tesd Driven Development), logrando maximizar la velocidad y la calidad.

Logramos la realimentación (el segundo camino) poniendo tempranamente, en el proyecto, software en manos del usuario, con calidad de producción y en lapsos breves (una semana o, mejor aún, diariamente). ńo menos importante es la participación del cliente o usuario final en el proceso de desarrollo, en la priorización de las funcionalidades y, sobre todo, en la construcción y su validación continua.

Logramos establecer la cultura del aprendizaje continuo y la práctica sostenida (el tercer camino) mediante los conceptos de Software Crafsmanship, Coding dojos, para el caso de los equipos de desarrollo multidisciplinarios. También es destacar el rol del responsable de producto para lo cual  recomiendo enfáticamente éste video de Henrik Kniberg.

Para mas detalle, pueden revisar éste y éste texto (en inglés) y, por supuesto, el Toyota production system (inglés).

Abrir los ojos

Mi esposa es médica.

Hace unos días nos enteramos de que la madre de una amiga se puso delicada de salud (más de 80 años), fué internada casi en estado de inconsciencia. Empeoró rápidamente hasta que sus ojos quedaron permanentemente cerrados y no respondía a ningún estímulo. Parecía estar en coma.

Varios médicos la revisaron pero no lograron que reaccionara y era practicamente imposible que abriera la boca para tomar la medicación.

Uno de esos días, mi esposa, fue a visitarla por primera vez. Comenzó a revisarla (como suelen hacer los médicos) hasta que llegó a sus ojos y le levantó los parpados (también en una revisión de rutina) y le habló.

Esta señora, en ese momento movió sus ojos y reaccionó, comenzó a hablar  y a comunicarse, reconoció a los presentes. Hoy nos enteramos de que camina y que pronto le darán el alta.

No pude evitar hacer un paralelo con lo que suele pasarle a muchos de los equipos con los que me encuentro en mi trabajo como coach.

La mejor manera de disparar un cambio es, simplemente, ayudarlos a abrir los ojos, a comunicarse. Es mucho mas efectivo que aplicar la fuerza (en sus diversas maneras). Las retrospectivas son muy efectivas para este fin, en mi opinión.

En caso de esta señora, fue mucho mas efectivo el simple gesto de levantar sus parpados que todos los esfuerzos anteriores de varios médicos.

A mi me dejó pensando, espero que a ustedes también.

Conectando Visual Studio 2010 a Team Foundation Service Preview

Finalmente decidí dedicar tiempo a investigar Team Foundation Server aplicando prácticas ágiles. Este momento ha llegado, principalmente, por dos motivos.

Por un lado, necesito conocer la herramienta como trainer y coach en metodologías y prácticas ágiles, en mi trabajo en Kleer hemos encontrado muchos equipos que lo utilizan (y algunos que lo utilizan parcialmente).

Por el otro, la disponibilidad del producto en modalidad servicio (Team Foundation Service Preview). Agradezco a Débora Di Piano (@debdipiano) y a Juan Pablo Diaz (@jpsdiaz), de Microsoft Argentina, por el soporte.

En este post relataré el procedimiento que seguí para conectar Visual Studio 2010 con Team Foundation Service Preview (tfspreview.com), asumiendo que ya tienen instalada una versión apta de  Visual Studio 2010, incluyendo el service pack 1.

Preparando Visual Studio

Lo primero que deben instalar (si no lo han hecho aún) es el paquete de compatibilidad entre Visual Studio 2010 y Team Foundation Server 11, pueden descargarlo desde el sitio de soporte de Microsoft, con este link.Versión luego de aplicar el patch

Una vez que ha terminado la instalación, esto es lo que deberían ver en la versión de Visual Studio 2010. Si es así, ya están en condiciones de conectarlo con Team Foundation Service Preview.

 

Conectando con Team Foundation Service

Utilizando la opción File -> New -> Team Project

En el siguiente diálogo presionamos el botón “Servers…”:

Luego el botón “Add…” en el siguiente diálogo:

Luego cargamos el URL del servicio de esta manera (probablemente el URL que deban usar varíe para otros casos)…

Cuando presionen OK, verán una pantalla de authenticación de Windows Live donde deben ingresar las credenciales asociadas a Team Foundation Service (en mi caso, mi cuenta de Windows Live).

Si todo marcha bien, verán este diálogo…

Presionen “Close” y volverán al diálogo de conexión al Team Project…

Seleccionen el servidor en el desplegable, luego el proyecto en la lista de Team Projects (Kleer Project en mi caso) y por último, presionen el botón “Connect”.

Volverán a Visual Studio, a la ventana Team Explorer y, luego de unos segundos, deberían ver el proyecto conectado.

En mi caso el proyecto esta vacío puesto que aun no he agregado archivos.

En próximos posts compartiré más ideas (que yo mismo estoy experimentando) sobre el uso de Team Foundation Server y Team Foundation Service en metodologías ágiles.

Avance sobre la VAN sobre integracion continua

UPDATE: les dejo el video de la VAN mas abajo y la presetnación.

Mañana viernes tendremos otra VAN interesante en AltNetHispano.

Esta vez el tema es Integración Contínua desde el punto de vista de las herramientas y las prácticas. Ya nos presentó el concepto hace unos meses el Sensei Martin Salias en otra VAN sobre automatización en general.

Esta vez me gustaría hablar sobre la orquestación de un entorno de integración contínua con herramientas como: un repositorio (ya sea Subversion, Git, Hg o TFS), una herramienta para escribir scripts (ya sea NAnt, MSBuild, Rake?) y una herramienta de integración contínua (ya sea CruiseControl.NET, TeamCity, TFS o Hudson).

También hablaré sobre distintas políticas de branching de acuerdo a las necesidades de cada proyecto y como utilizar estas políticas junto con integración contínua.

Luego vendrá la parte en que varios amigos me ayudarán mostrando casos reales describiendo situaciones reales en las cuales la integración contínua los ayuda día a día.

Andres Vettori (@andresvettori) va a contar como se utiliza integración contínua con Team Foundation Server 2010 en la empresa VMBC para desarrollar aplicaciones multi-cliente basados en plataforma Microsoft (Hyper-V 2.0, Windows 2008 R2, SQL Server 2008, IIS 7.5, .NET 4.0, ASP.NET, ASP.NET MVC, Silverlight, Retina.NET como ORM). Hablará de los retos que tuvieron y las etapas de madurez por las que pasaron como equipo, mostrando brevemente la solución implementada actualmente y algunas ideas que tienen para el futuro.

Jose Romaniello (@jfroma) va a mostrar las distintas facilidades de configuración de TeamCity configurando un miniproyecto (que ya tendrá listo para lAN) desde cero con Mercurial/NUnit/etc.

Vicenç Garcia (@vgaltes) nos contará sobre la situación en una empresa anterior a la utilización de la integración contínua, el estado de caos y descontrol en el que se encontraba el equipo. Un análisis de la situación los llevó al camino obvio de empezar con un repositorio de código y un servidor de integración continua. Se decidieron por Hudson por su facilidad de configuración. También detallará su situación actual y dónde les gustaria llegar. Trabaja sobre una aplicacion cliente/servidor WinForms sobre SqlServer, Oracle, Progress
y Firebird.

Por último y si nos queda tiempo, yo hablare de algunas experiencias reales sobre complilación, prueba y despliegue automatizado de aplicaciones ASP.NET utilizando CruiseControl, NAnt, MSBuild, etc.