Ahora soy MVP de Microsoft, es una buena oportunidad para decir gracias

image

Quiero expresar mi satisfacción al haber recibido el pasado 1 de Octubre de 2010 el reconocimiento como Profesional Más Valioso (MVP) de Microsoft en el mundo, en el área de C#. En el correo de notificación que recibí de Microsoft se mencionaba lo siguiente:

En Microsoft creemos que las comunidades técnicas mejoran la vida de las personas y el éxito del sector gracias a que expertos independientes, como usted, ayudan a otros a obtener un mayor valor de los productos y las tecnologías mediante el intercambio gratuito y objetivo de conocimientos. Como MVP de Microsoft forma parte de un grupo muy selecto de expertos que representan lo mejor y lo más brillante de la tecnología y que comparten un compromiso profundo con la comunidad y la voluntad de ayudar a los demás.

En nombre de Microsoft, le agradecemos su contribución a las comunidades técnicas.

Yo contesto a eso “muchas gracias Microsoft, yo también creo firmemente en las comunidades técnicas y también valoro el apoyo que nos dan ustedes a quienes trabajamos por ellas”. Si bien esto exige que hagamos algunos sacrificios en tiempo, energías y hasta en dinero, no es una labor meramente altruista, más bien es el medio que algunos hemos escogido para crecer tanto profesional como personalmente, a través de la colaboración con nuestros pares, otros desarrolladores de software, sean estos principiantes o gurús.

Ha sido muy buena la experiencia con la participación en la comunidad ALT.NET Hispano, para mi y se que para un montón de gente también, que hemos coincidido en el ánimo de hacer algo juntos por nosotros mismos, para mejorar nuestras habilidades técnicas en el desarrollo de software. Es bonito ver cómo si alguien dice “quien nos puede ayudar en [tal cosa]” luego alguien contesta “yo puedo colaborar”. Ha sido grato compartir con personas que cuentan no solo con un altísimo nivel técnico sino también con excelentes valores humanos.

Sería imperdonable no dar las gracias a mi esposa, Johana Cárdenas, no es que yo sacrifique mi familia por estar trabajando por las comunidades técnicas, la familia está primero, pero digamos que en algunas ocasiones ella ha tenido que ejercer cierta paciencia por los compromisos que exige mi ocupación. También debo expresar mi agradecimiento a quien yo y otros tantos consideramos nuestro mentor, Fabio Maulo, siempre listo a ayudar a quienes necesitamos una guía; a quien ha sido un gran influyente en mi pensamiento, Ángel “Java” López, con su filosofía Don’t be a canuto; y no podría dejar por fuera de esa lista a mis dos amigos José Romaniello y Cristian Prieto, quienes a parte de tener unas excelentes habilidades técnicas disfrutan dando la mano a otros para que también puedan obtenerlas.

Quienes me conocen saben que soy un firme creyente de lo que se promueve en el movimiento ALT.NET y que entonces valoro más las prácticas que las herramientas, que me esfuerzo por no caer ni en el fundamentalismo ni en tener una fe ciega en una tecnología específica o empresa, simplemente trato de usar y recomendar el mejor recurso disponible en el momento para mis necesidades y de acuerdo a las circunstancias; en otras palabras, trato de ser equilibrado y cuando se puede, neutral. Siendo coherente esta posición, en cuanto a Microsoft les puedo garantizar de que mantendré mi criterio independiente, para señalar sus aciertos y desaciertos cuando corresponda, siempre de una manera respetuosa.

Trataré de corresponder con el reconocimiento que me otorga Microsoft y la comunidad manteniendo y de ser posible mejorando mi contribución a la gente a quienes puedan interesar mis aportes, especialmente quiero relacionarme más con las comunidades presenciales (cara a cara) en donde no he tenido mucha participación hasta ahora, generar más contenido técnico y aportar más a proyectos Open Source.

Workshop: Desarrollo ágil de software en .NET, Segunda parte – Desacoplamiento

Hoy, martes 12 de octubre de 2010 presentaré la segunda sesión de una serie de 3 en un workshop sobre “Desarrollo ágil de software en .NET”. Esta sesión se podrá atender tanto presencial como virtualmente. Este evento se realizará en las instalaciones de Microsoft Colombia en la ciudad de Bogotá en la Carrera 7 # 71-21 torre B piso 15, a las 6:30 p.m. hora local, lo que corresponde con la hora internacional 23:30 UTC/GMT (meridiano 0), con una duración aproximada de 2 horas.

Esta sesión se titula “Desarrollo ágil de software en .NET: Diseñando componentes desacoplados” y al igual que la anterior, se presentará en un modo introductorio, puesto que el objetivo es presentar las opciones que tenemos a la hora de definir la arquitectura lógica y diseñar las clases siguiendo prácticas recomendadas para desarrollar aplicaciones mantenibles. No es requisito haber atendido la sesión pasada, pues al inicio haremos un repaso muy rápido, pero suficiente, de la técnica ágil que emplearemos para el desarrollo (BDD). Los ejercicios se realizarán en Visual Studio 2010 empleando con lenguaje C#. La descripción es la siguiente:

Para desarrollar aplicaciones de calidad se requiere la aplicación de principios, patrones y prácticas de diseño orientado a objetos, sin caer en la trampa de la sobre ingeniería. Pero en lugar de las aburridas explicaciones teóricas de programación orientada a objetos con los ejemplos típicos como Animal – Perro – Gato y similares, esta sesión será totalmente práctica, solucionando mediante código problemas y errores comunes a los que nos enfrentamos cuando construimos software. El resultado será conformar una arquitectura lógica sólida y elegante para nuestra aplicación de referencia y ejemplo, con objetos de alta cohesión y bajo acoplamiento.

Quienes deseen asistir presencialmente deberán inscribirse mediante un formulario de registro para evento presencial y los que deseen atender virtualmente (mediante Live Meeting) deberán usar este otro formulario de registro para Webcast.

Podcast sobre “Comunidades Tecnológicas” en dev3cast

Un tema sobre el cuál me apasiona hablar es Comunidades, no que yo sea un experto en el asunto sino digamos que más bien un creyente de que por medio de la colaboración y discusión en grupos de usuarios o comunidades se pueden alcanzar algunas metas mucho más fácil de lo que se lograría individualmente.

Precisamente estuve compartiendo opiniones el pasado miércoles 6 de octubre de 2010 con Mario Chávez, Mario Cornejo, Haarón González y Gabriel Flores, comentando los mecanismos de participación de sus integrantes, los desafíos que enfrentan para ser efectivas en la difusión de sus valores, las diferencias en los estilos de organización y analizando el futuro que les espera.

Esta grabación puede ser muy útil para quienes participan en una comunidad, bien sea que estén iniciando o ya tengan bastante experiencia; pueden acceder a ella en la página Comunidades Tecnológicas, luego de escucharla, pueden comentar aquí sus observaciones.

Workshop: Desarrollo ágil de software en .NET, Primera parte – BDD

Mañana martes 5 de octubre de 2010 estaré presentando la primera sesión de una serie de 3 en un workshop sobre “Desarrollo ágil de software en .NET”. Esta sesión se podrá atender tanto presencial como virtualmente. Este evento se realizará en las instalaciones de Microsoft Colombia en la ciudad de Bogotá en la Carrera 7 # 71-21 torre B piso 15, a las 6:30 p.m. hora local, lo que corresponde con la hora internacional 23:30 UTC/GMT (meridiano 0), con una duración aproximada de 2 horas.

Esta primera sesión se titula “Desarrollo ágil de software en .NET: Behavior-Driven Development (BDD)” y se presentará en un modo introductorio, de tal manera que no es requisito tener bases de desarrollo ágil de software, es más bien para quienes desean iniciarse en él, conocen la plataforma .NET, Visual Studio y los principios básicos de desarrollo de software. la descripción es la siguiente:

Desarrolle aplicaciones de calidad aplicando la metodología ágil BDD, que cubre todo el proceso básico de desarrollo de software, desde la captura efectiva de los requerimientos del cliente, que se traducen en pruebas de aceptación en el código y nos guían en la implementación del comportamiento de la aplicación que desarrollamos, de a pequeños incrementos, por medio de ejemplos de prueba. Crearemos una aplicación de negocios del mundo real, en C# usando los recursos que nos provee la plataforma .NET, que a su vez constituirá una pequeña aplicación de referencia y ejemplo que publicaremos como open source para la comunidad, en codeplex.com.

Quienes deseen asistir presencialmente deberán inscribirse mediante un formulario de registro para evento presencial y los que deseen atender virtualmente (mediante Live Meeting) deberán usar este otro formulario de registro para Webcast.

Podcast sobre Behavior-Driven Development (BDD) en 32MINUTOS.NET

El pasado 20 de septiembre de 2010 fue publicada la grabación de una sesión de audio del podcast 32MINUTOS.NET en la que el tema discutido fue uno que en lo personal me apasiona bastante y sobre el cual cada día aprendo más, Behavior-Driven Development (BDD) , que tiene como objetivo diseñar e implementar buen código, mediante la creación, en el mismo código tal vez por medio de una herramienta de software, de especificaciones (pruebas o ejemplos) automatizadas, que resultan de la definición de historias de usuario descompuestas en criterios de aceptación, que también pueden constituir las pruebas de la aplicación desarrollada.

Esta sesión de charla o discusión surgió del intercambio de opiniones por correo electrónico con Hadi Hariri, quien también es especialista en la materia, y al tornarse interesantes y extensas estas opiniones, acordamos pasar a algo más fluido y que pudiera servir de utilidad para la comunidad de desarrolladores, así que decidimos grabar la discusión de voz, a lo que se sumó David Vílchez, quien no solo hizo las veces de moderador y participó asumiendo el papel de recién iniciado en el tema; a ellos muchas gracias. La grabación quedó publicada en la página 01×02 BDD con Jorge Gamba.

[Evento] Desarrollando el equipo SCRUM, con Heitor Roriz

Mañana sábado 25 de Agosto de 2010 a las 18:00 UTC/GMT (meridiano 0) o 20:00 CET, la comunidad ALT.NET Hispano realizará una VAN (Webinar) que tendrá una duración aproximada de 2 horas, vía http://snipr.com/virtualaltnet. Se tratarán asuntos relacionados con la organización y procedimientos que se llevan a cabo en un buen equipo SCRUM.

Se hablará sobre las características de un equipo de desarrollo que deben ser trabajadas: los soft skills y la capacidad técnica. Es este contexto, los roles del ScrumMaster, Product Owner y miembro del equipo Scrum son discutidas a fines de contestar dudas sobre que cada rol en un proyecto pode hacer para contribuir con el éxito del proyecto..

Para esta VAN tendremos nuevamente como presentador al brasileño Heitor Roriz (hroriz), miembro de la Scrum Alliance y quien es bastante conocido en numerosas comunidades Ágil/SCRUM de habla de habla portuguesa, hispana e inglesa en diversos países, pues es un destacado conferencista y entrenador para eventos y talleres. Heitor ya nos colaboró hace poco presentando el tema Mastering User Stories.

Tengan en cuenta que una VAN trata de seguir el modelo de Desconferencia, por lo que tienen cierto toque de informalidad, permitiendo diferentes formas de intervención a todos nuestros asistentes; estos no solo pueden participar con preguntas, sino que también pueden expresar sus opiniones, discutir y hasta exponer algún asunto; para ello permitimos y de hecho deseamos que nuestros asistentes habiliten y usen el micrófono para expresarse.

Como un beneficio adicional, en nuestras VAN obsequiamos algunos eBooks y licencias de productos de interés para nuestro auditorio. Si por alguna razón no pueden atender en línea la reunión virtual, no deben preocuparse, pues las grabaciones de estas “siempre” quedan publicadas en nuestra página wiki Historial de Reuniones. Sin embargo, recomendamos hacerlos el esfuerzo por asistir virtualmente en línea a nuestras VAN, pues se obtienen mayores beneficios.

Hay que aclarar que no se requiere ningún tipo de registro, simplemente acudir el día y la hora indicados a la dirección Web http://snipr.com/virtualaltnet, eso sí, deberán tener instalado el programa cliente de Live Meeting; hay más instrucciones sobre cómo hacer esto y otras indicaciones en la página wiki Descripción de Reuniones. Adicionalmente les recomendamos comprobar la hora correspondiente para su localidad, esto lo pueden hacer con la ayuda de la página Historial de Reuniones y nuestro Calendario de Reuniones, al cual se pueden suscribir.

Finalmente, los invitamos y les agradecemos de antemano la difusión de este evento en sus lugares trabajo, estudio, comunidades y demás lugares con personas que pudieran beneficiarse como nosotros de estos importantes temas. Pueden suscribirse y hasta colaborar siguiéndonos a través de los siguientes medios:

[Evento] Introducción a "Identidad basada en evidencia" – ADFS & WIF

Hoy sábado 18 de Septiembre de 2010 a las 18:00 UTC/GMT (meridiano 0) o 20:00 CET, la comunidad ALT.NET Hispano ha organizado una VAN (Webinar) que tendrá una duración aproximada de 2 horas, vía http://snipr.com/virtualaltnet. El tema a tratar en esta ocasión será Identidad basada en evidencia (Claims based identity).

En esta sesión se presentarán los principios básicos de autenticación y autorización basada en “evidencia”. Luego discutiremos el rol de productos como ADFS (Active Directory Federation Services), frameworks como WIF (Windows Identity Foundation) y servicios como ACS (Access Control Service) en escenarios comunes. Ventajas, limitaciones y guías generales de diseño. Finalmente se mostrarán casos reales de implementación de este tipo de soluciones.

Para esta ocasión, tendremos a dos invitados, el primero de ellos es Eugenio Pace (@eugenio_pace), quien trabaja para Microsoft como Senior Program Manager en el equipo Patterns & Practices especializándose allí en cloud computing. Nuestro segundo presentador será Carlos Peix (@carlospeix), quien es un reconocido consultor en desarrollo ágil de software en Argentina y evangelista del movimiento ALT.NET, apoya diversas iniciativas de grupos de usuarios en su país y Latino-América.

Tengan en cuenta que una VAN trata de seguir el modelo de Desconferencia, por lo que tienen cierto toque de informalidad, permitiendo diferentes formas de intervención a todos nuestros asistentes; estos no solo pueden participar con preguntas, sino que también pueden expresar sus opiniones, discutir y hasta exponer algún asunto; para ello permitimos y de hecho deseamos que nuestros asistentes habiliten y usen el micrófono para expresarse.

Como un beneficio adicional, en nuestras VAN obsequiamos algunos eBooks y licencias de productos de interés para nuestro auditorio. Si por alguna razón no pueden atender en línea la reunión virtual, no deben preocuparse, pues las grabaciones de estas “siempre” quedan publicadas en nuestra página wiki Historial de Reuniones. Sin embargo, recomendamos hacerlos el esfuerzo por asistir virtualmente en línea a nuestras VAN, pues se obtienen mayores beneficios.

Hay que aclarar que no se requiere ningún tipo de registro, simplemente acudir el día y la hora indicados a la dirección Web http://snipr.com/virtualaltnet, eso sí, deberán tener instalado el programa cliente de Live Meeting; hay más instrucciones sobre cómo hacer esto y otras indicaciones en la página wiki Descripción de Reuniones. Adicionalmente les recomendamos comprobar la hora correspondiente para su localidad, esto lo pueden hacer con la ayuda de la página Historial de Reuniones y nuestro Calendario de Reuniones, al cual se pueden suscribir.

Finalmente, los invitamos y les agradecemos de antemano la difusión de este evento en sus lugares trabajo, estudio, comunidades y demás lugares con personas que pudieran beneficiarse como nosotros de estos importantes temas. Pueden suscribirse y hasta colaborar siguiéndonos a través de los siguientes medios:

[Evento] “La inmortalidad de la Medusa”: Discusión sobre separación separación en capas

Hoy mismo, viernes 27 de Agosto de 2010, tendremos un ALT.NET Café en la comunidad ALT.NET Hispano en el que se discutirán de manera abierta algunos temas de arquitectura de software, esta vez sobre separación en capas. El encuentro será a las 18:00 UTC/GMT (meridiano 0) o 20:00 CET y tendrá una duración aproximada de 2 horas, vía http://snipr.com/virtualaltnet.

Esta iniciativa fue formulada por Martín Salías y Ángel “Java” López, dos de los miembros más destacados de nuestra comunidad, el maestro Ángel escribió sobre el por qué de la expresión “la inmortalidad de la medusa” en una entrada de su blog ALT.NET Hispano Café: La inmortalidad de la medusa. Para esta ocasión, Martín comentó así lo que trataremos en la charla:

Con el Maestro estuvimos charlando un poco y se nos ocurrió que podemos
seguir un poco el tema que empezamos alrededor de la separación en capas, y
complementando un poco el debate que iniciamos sobre todo alrededor del tema
acceso a datos y su conexión con el modelo de dominio, podríamos charlar un
poco de las alternativas desde allí hasta la interfaz externa (sea de
usuario, servicios, etc.).

Algo que me gusta revisar siempre es la idea de la Arquitectura Hexagonal de
Alistair Cockburn (ahora más conocida como Ports & Adapters) donde nos
sacamos de encima el modelo mental de datos-lógica-presentación, y pensamos
en extremos que publican y consumen datos, con un core que los analiza o
transforma.

Creo que cada vez más, con el ambiente de mash-ups, aplicaciones expuestas
como servicio, multitud de clientes y dispositivos, etc., hay mucha tela para
cortar alrededor.

Tengan en cuenta un ALT.NET Café, al igual que una VAN, trata de seguir el modelo de desconferencia, por lo que tienen cierto toque de informalidad, permitiendo diferentes formas de intervención a todos nuestros asistentes; estos no solo pueden participar con preguntas, sino que también pueden expresar sus opiniones, discutir y hasta exponer algún asunto; para ello permitimos y de hecho deseamos que nuestros asistentes habiliten y usen el micrófono para expresarse.

Como un beneficio adicional, en nuestras VAN obsequiamos algunos eBooks y licencias de productos de interés para nuestro auditorio. Si por alguna razón no pueden atender en línea la reunión virtual, no deben preocuparse, pues las grabaciones de estas “siempre” quedan publicadas en nuestra página wiki Historial de Reuniones. Sin embargo, recomendamos hacerlos el esfuerzo por asistir virtualmente en línea a nuestras VAN, pues se obtienen mayores beneficios.

Hay que aclarar que no se requiere ningún tipo de registro, simplemente acudir el día y la hora indicados a la dirección Web http://snipr.com/virtualaltnet, eso sí, deberán tener instalado el programa cliente de Live Meeting; hay más instrucciones sobre cómo hacer esto y otras indicaciones en la página wiki Descripción de Reuniones. Adicionalmente les recomendamos comprobar la hora correspondiente para su localidad, esto lo pueden hacer con la ayuda de la página Historial de Reuniones y nuestro Calendario de Reuniones, al cual se pueden suscribir.

Finalmente, los invitamos y les agradecemos de antemano la difusión de este evento en sus lugares trabajo, estudio, comunidades y demás lugares con personas que pudieran beneficiarse como nosotros de estos importantes temas. Pueden suscribirse y hasta colaborar siguiéndonos a través de los siguientes medios:

Video, presentación y otros recursos de mi VAN “Haciendo BDD con MSpec”

El pasado sábado 21 de Agosto de 2010 presenté una VAN (a.k.a. Webinar) para la gente de la comunidad ALT.NET Hispano, a la cual pertenezco. En esta presentación hice una introducción a Behavior-Driven Development (BDD), su relación con Acceptance Test-Driven Development (ATDD), Domain-Driven Development (DDD) y Test-Driven Development (TDD), realizando un ejercicio de aplicación aplicando el estilo Context / Specification.

El ejercicio se desarrolló definiendo una historia de usuario, identificando sus parte movibles para señalar los criterios de aceptación que finalmente fueron traducidos a código C# en una pequeña aplicación de ejemplo usando Machine.Specifications (MSpec). Todo esto nos permitió recorrer las fases principales del proceso de desarrollo de software (análisis, diseño, implementación y pruebas), indicando las prácticas recomendadas para cada aspecto según BDD.

De manera que les recomiendo observar este vídeo y presentación que les adjunto, que de seguro les puede dar unas buenas ideas sobre los enormes beneficios de seguir el método ágil BDD.

 

 

Pueden encontrar otros recursos o incluso publicarlos en la página wiki VAN – Agosto 21 de 2010 – Haciendo BDD con MSpec

[Evento] Haciendo BDD con MSpec de manera efectiva

clean text with less noise

Los invito de manera muy especial a la VAN que yo mismo presentaré para la comunidad ALT.NET Hispano sobre Behavior-Driven Development (BDD) con aplicaciones mediante el framework Machine.Specifications (MSpec), este día sábado 21 de Agosto de 2010 a la hora internacional 18:00 UTC / GMT (meridiano 0) o 20:00 CET, con una duración aproximada de 2 horas, vía http://snipr.com/virtualaltnet.

BDD surge de tomar lo mejor de otros métodos o técnicas del mundo Agile, específicamente equivale más o menos a Domain-Driven Design (DDD) + Acceptance Test-Driven Development (ATDD) + Test-Driven Development (TDD). Muchos aseguran que BDD es sencillamente el mismo TDD, otros opinan que es más bien una mejora significativa sobre TDD, en realidad, ambas partes tienen razón porque todo lo que se hace en TDD se hace en BDD, sin embargo, al cambiarle la palabrita “Test” por “Behavior”, evita menos confusiones y limitaciones en cuanto a su propósito real, garantizando la participación directa del cliente en el proceso de desarrollo de software, por medio de definir historias de usuario y criterios de aceptación que se trasladan al código en lenguaje natural y propio del dominio, y luego comprobando que sus requisitos se cumplan.

Los temas que trataremos en la VAN serán lo siguientes:

  • BDD
    • Introducción
    • Relación con Acceptance Test-Driven Development (ATDD)
    • Relación con Test-Driven Development (TDD)
    • Intervención en el proceso de desarrollo
    • Historias
    • Criterios de Aceptación
    • Estilo Context/Specification
    • Conceptos básicos
    • Recomendaciones
  • MSpec
    • Introducción
    • Instalación y configuración
    • “Hola mundo”
    • API – sintaxis
    • Templates
    • Principios, patrones y prácticas recomendadas
    • Características principales
    • Ejemplo de aplicación a caso de la vida real
    • Integración con herramientas complementarias
    • Vendiendo BDD y MSpec

Les recomiendo ver los vídeos de dos VAN que tuvimos previamente sobre temas muy relacionados, estas son:

BDD – Behavior Driven Development

Mastering User Stories

La primera de ellas, que presentó Hernán García, proporcionó también una introducción a
BDD, aunque con una orientación más hacia el estilo Given/When/Then, la mía será hacia el  estilo Context/Specification, y también hizo un comparativo entre varios frameworks en .NET, incluso se mostró algo de MSpec, pero de manera rápida. De modo que mi VAN, en cierta manera, será complementaria a esas dos VAN. Si desean que trate algo específico durante la VAN o preguntar algo, siéntanse libres de manifestarlo en el hilo de discusión para este propósito en la lista de correo de la comunidad.

Tengan en cuenta que una VAN trata de seguir el modelo de Desconferencia, por lo que tienen cierto toque de informalidad, permitiendo diferentes formas de intervención a todos nuestros asistentes; estos no solo pueden participar con preguntas, sino que también pueden expresar sus opiniones, discutir y hasta exponer algún asunto; para ello permitimos y de hecho deseamos que nuestros asistentes habiliten y usen el micrófono para expresarse.

Como un beneficio adicional, en nuestras VAN obsequiamos algunos eBooks y licencias de productos de interés para nuestro auditorio. Si por alguna razón no pueden atender en línea la reunión virtual, no deben preocuparse, pues las grabaciones de estas “siempre” quedan publicadas en nuestra página wiki Historial de Reuniones. Sin embargo, recomendamos hacerlos el esfuerzo por asistir virtualmente en línea a nuestras VAN, pues se obtienen mayores beneficios.

Hay que aclarar que no se requiere ningún tipo de registro, simplemente acudir el día y la hora indicados a la dirección Web http://snipr.com/virtualaltnet, eso sí, deberán tener instalado el programa cliente de Live Meeting; hay más instrucciones sobre cómo hacer esto y otras indicaciones en la página wiki Descripción de Reuniones. Adicionalmente les recomendamos comprobar la hora correspondiente para su localidad, esto lo pueden hacer con la ayuda de la página Historial de Reuniones y nuestro Calendario de Reuniones, al cual se pueden suscribir.

Finalmente, los invitamos y les agradecemos de antemano la difusión de este evento en sus lugares trabajo, estudio, comunidades y demás lugares con personas que pudieran beneficiarse como nosotros de estos importantes temas. Pueden suscribirse y hasta colaborar siguiéndonos a través de los siguientes medios: