viernes, 13 de mayo de 2011

Video: Programando de a pares con Carlos Peix

Carlos Peix
Con este post comienzo una serie de entrevistas que tenía en mente desde el comienzo de este blog el año pasado, pero a la que no le encontraba el formato definitivo, hasta hace poco.
En realidad, me di cuenta que no quería hacer entrevistas convencionales, y me parece que lo mejor para nosotros desarrolladores es ver a otros en la práctica, así que estoy comenzando a grabar sesiones de programación de a pares.
La idea es aprovechar la excusa para darme el gusto de programar con amigos y conocidos de la industria regional. Algunos, como este primer caso con Carlos, serán sentados a la misma mesa, y algunos serán remotos, a distancias diversas según la ocasión. Como es tradición de este blog, tengo en mi backlog sentarme a programar en diferentes lenguajes, tecnologías, y en algunos casos tal vez no sea código sino diagramas en un pizarrón, o alguna charla más tradicional, pero siempre que pueda, será a código limpio.

Para iniciar la serie entonces, recurrí a varios amigos, y la primer víctima fue Carlos Peix. Nos conocemos desde hace más años de los que puedo recordar, a través de la comunidad Microsoft. Carlos es un desarrollador independiente con muchos años de experiencia y una actitud abierta a nuevas ideas, pero que no se deslumbra fácilmente con las nuevas modas y prefiere centrar su atención en las técnicas de diseño e implementación más perdurables. Es reconocido sobre todo como especialista en desarrollo web y el mundo .NET, pero siempre está mirando y practicando un poco de Java, Ruby o Smalltalk.
Carlos también participa activamente en la comunidad Agiles.org localmente y en la organización de Agiles 2011. Tiene un blog con varios videos muy interesantes que graba por iniciativa propia y al participar en otras comunidades, como Alt.Net Hispano, donde es presentador habitual.
En el video que grabamos (unos 20 minutos en total), Carlos trajo un ejemplo extraído de un caso real que le tocó, sencillo pero ya algo avanzado y con unas pruebas unitarias, y entre ambos hicimos una sesión de refactorización. El ejemplo es en C#, y usamos Visual Studio 2010 con ReSharper. Para quienes quieran ver el código con más detenimiento, dejo la solución al inicio del ejercicio, y la solución al final.

viernes, 6 de mayo de 2011

Videos: Run Web Camp Buenos Aires (marzo 2011)

Run Web Camp

A mediados de marzo Microsoft realizó en Buenos Aires una edición de su gira internacional Web Camp, en el que participamos varios oradores locales junto a los dos invitados "oficiales", Phil Haack (Program Manager de ASP.NET MVC) y Drew Robbins (Technical Evangelist), como anuncié por entonces en este post.

El evento se transmitió en vivo a través de UStream, pero por algún motivo no se dejó que quedara disponible directamente a posterior, como esta plataforma permite, y recién ahora están disponibles los videos en YouTube.

Es bueno mencionar que este evento va a replicarse (siempre con adaptaciones, actualizaciones y oradores alternativos) a lo largo de varas provincias argentinas. Más información en la página de Facebook del tour.

Haciendo honor al tono hispano de este blog, les dejo la página donde están los links a todos los videos, pero dejo incrustados debajo los de las sesiones en español, en el orden en que (creo) se dieron ese 15 de marzo:

Bienvenida y tendencias, con Edu Mangarelli y Migue Sáez

Seguridad y Front-End de la nube, con Chema Alonso

Acceso a datos con Entity Framework, con Dani Laco y Martín Salías

Aplicaciones AJAX con MVC, con Rodo Finochietti y Zaiden

Internet Explorer 9 y HTML5, con Mati Woloski y Johnny Halife

Espero que los disfruten.

Paper: Desarrollo ágil de software

Rick y Juan

Los amigos Juan Gabardini y Ricardo Colusso han publicado de manera abierta este extenso y detallado trabajo que presenta "Una introducción a las metodologías ágiles de desarrollo de software".

Creo que este es uno de los documentos introductorios más completos sobre métodos ágiles en español, y además generado por dos personas que no sólo son divulgadores constantes sino practicantes intensivos, lo que aporta una alta dósis de realidad al trabajo, además de la base conceptual.

Veamos el contenido general:

Desarrollo del Software

Plantea la problemática general del desarrollo y anticipa la posición del Manifiesto Ágil.

Desarrollo “tradicional” de software

Vuelve a revisar el proceso tradicional, usualmente en cascada, con sus problemas usuales.

Características del Desarrollo Ágil

Comenta las características principales (en la práctica) de este estilo, enfocándose en el empowerment de los equipos y los mecanismos de feedback permanente.

Por qué y cuándo conviene usar Desarrollo Ágil de Software

Es uno de los puntos más interesantes, y ataca algunas de las dudas más frecuentes de la gente acercándose al modelo ágil. Hablan del Cono de Incertidumbre, y cómo se trata de ir reduciéndolo en los distintos estilos de administración de proyectos, y su impacto en el desarrollo de Productos.

Beneficios de usar Desarrollo Ágil

Cubren en detalle el Desarrollo guiado por valor, mejor manejo de riesgos y mejoras de productividad.

Aplicabilidad del Desarrollo Ágil

Revisa en líneas generales casos diversos y también la relación entre agilidad y procesos como CMMI.

Experiencias directas

Plantea un caso en detalle, planteando la solución, la realización, resultados y comparación entre la visión de Producto y Proyecto.

Métodos, Prácticas y Herramientas

Describe rápidamente Scrum, Programación Extrema (XP), Desarrollo de Software Lean, Kanban y prácticas como programación de a pares, TDD, proceso continuo, transparencia y visibilidad.

Finalmente el trabajo deja punteros a cómo continuar profundizando, incluyendo comunidad, bibliografía, material gratuito y otras.