La parte más dura de la vuelta a C# y Java

La semana pasada volví a C# y Java. Por un lado venia trabajando en un proyecto en Groovy y por ciertas cuestiones de contexto me ví obligado a hacer algunas cosas en Java. Por otro lado empecé un nuevo proyecto en C#.

En ambos casos hubo dos cuestiones que me «dolieron mucho».

  1. Los entornos de desarrollo: acostumbrado a trabajar con Ruby y Smalltalk, usando Sublime Text, Pharo y vi, me resultó durísimo tener que volver a usar Visual Studio y Eclipse.
  2. La falta de un entorno interactivo donde poder jugar con mis objetos, lo que seria irb en Ruby  o el workspace Smalltalk.

Continuará….

Una semana comunitaria

La semana pasada participé de 3 eventos comunitarios. El primero de ellos fue Fail Fast, en el contexto de Ágiles Colombia, hace unos días escribí al respecto.

El segundo de ellos fue el miércoles por la tarde en una actividad de Universidad Nacional  de la Patagonia Austral en el contexto de la Semana de la Ciencia. Mi participación fue como orador en un webcast sobre métodos ágiles.

Finalmente, ayer  facilité el encuentro mensual de ágiles argentina, el cual estuvo dedicado a Continuous Delivery. Me gusto mucho una frase de uno de los asistentes luego del encuentro:

«Excelente la charla, fui con la idea que estaba a pasos de tener Continuous Delivery y me volví que acabo de empezar con Continuous Integration. Vamos a avanzar esperando una segunda charla mas avanzada.«

Fail Fast en Agiles Colombia

El martes pasado participé virtualmente de este evento, por invitación de Luis Mulato. La idea era compartir algunas experiencias del uso de Scrum y de la práctica de Integración Continua. El otro invitado fue Lácides Guzmán.

Creo que nos complementamos muy bien, pues mientras la experiencia Lácides es principalmente en el desarrollo de producto, la mía es en desarrollo de proyectos. O sea Lácides trabaja en un empresa que desarrolla un producto que luego comercializa. Por mi parte, casi siempre he trabajado en empresas dedicadas al  desarrollo de software para terceros.

Toda la actividad estuvo facilitada por Luis, quien con algunas preguntas orientadoras guió muy bien el desarrollo de la sesión y supo manejar de forma apropiada las preguntas de la audiencia, aportando algún bocadillo de su experiencia en algunas de respuestas.

La experiencia me gustó mucho y algunas de las preguntas me hicieron reflexionar sobre cuestiones que nunca me había puesto a pensar explícitamente.

¡Gracias Luis y Agiles Colombia por la invitación!

El dilema del conocimiento pasado

Gran parte de mi desarrollo profesional lo hice trabajando con tecnología Microsoft (C#, Asp.Net, Sql Server, SharePoint, Biztalk, etc, etc) pero desde hace unos dos/tres años di un giro y comencé a trabajar con tecnologías «abiertas» (por llamarlas de alguna forma genética), principalmente Ruby, Smalltalk y últimamente Grails.

Hoy por hoy soy más «feliz» trabajando con tecnologías abiertas que con tecnología Microsoft, pero paradójicamente conozco mucho más de tecnología Microsoft que del resto. Al mismo tiempo me parece una picardía «tirar por la borda» todo ese conocimiento y experiencia acumulado durante años.

En fin, ya puse a descargar Visual Studio 2012.

Charla: Estrategias para la adopción de Continuous Delivery

El próximo Jueves 19 de Septiembre, en el contexto del encuentro de la comunidad ágil de Buenos Aires, estaré dando la charla de referencia.

La cita es a partir de las 18.30 en las instalaciones del MUG, como siempre la entrada es gratuita pero requiere registración.

Algunos detalles más sobre la charla los pueden encontrar en la página de registración.

Interesante experiencia en el curso de Scrum Developer

La semana pasada participé junto a MartínS en el dictado del curso de Scrum Developer avalado por la Scrum Alliance. Si bien no era la primera vez que participaba de un curso así, esta ocasión tuvo como desafio el tamaño de la audiencia: 20 personas. En general el curso solemos dictarlo para un máximo de 16 personas, pero dado que en este caso fuimos dos instructores, pudimos estirarnos un poco más.

El curso está divido en 3 módulos, los dos primeros enfocados en cuestiones de organización y planificación  y el tercero en cuestiones de desarrollo. En este tercer módulo que dura 24 horas (generalmente en 3 días), trabajamos con Ruby dada la facilidad de uso/aprendizaje de sus herramientas (aunque también tenemos chances de hacerlo con otros lenguajes). Durante el curso se hace un simulacro de proyecto donde trabajamos en iteraciones de 2 horas, utilizando Scrum, BDD, TDD e integración continua para construir una aplicación.

Una vez más me sorprendió durante el curso, la gran influencia en la forma de pensar/diseñar que ejercen los lenguajes de programación. Al ver el código escrito por los asistentes del curso, saltaba a la vista que eran programadores Java. Lo mismo me pasaba a mi cuando comencé a trabajar en Ruby, recuerdo algunos colegas que miraban mi código y me decían cosas del estilo «¡Estas programando C# con Ruby!».

Les dejo la foto de cierre del curso.

csd

Workshop de Extreme Programming, segunda edición

Hace un tiempo escribí sobre el workshop de Extreme Programming que dicté en conjunto con mi colega Carlos Peix. Luego de haber incorporado el feedback de los asistentes, agendamos para hacer una segunda edición a mediados de Septiembre, concretamente 23 y 24 de septiembre.

A diferencia de la edición anterior, esta vez el workshop será abierto al público en general, pero con una restricción: gente de perfil técnico. Esto se debe a que el curso está enfocado en cuestiones técnicas, con lo cual esperamos que sea gente que pasa parte de su día programando. Asimismo se espera que los asistentes esten familiarizados con métodos ágiles, en particular con Scrum. El curso está planteando como una continuación del curso CSD, con lo cual cualquier persona que haya tomado dicho curso está en condiciones de tomar este curso. Pero ojo, el CSD no es un requisito, el requisito es, como mencioné previamente, estar familiarizado con Scrum y métodos ágiles en general.

tools2-xpwDado que el curso es muy técnico y con una alta carga práctica, los asistentes deberán asistir con sus computadoras y previo al curso deberán resolver una prueba de técnica. Dicha prueba consiste en implementar una user story muy muy simple, pero que obligará a los asistentes a hacer el setup del ambiente que utilizarán en el curso.

Durante el curso utilizaremos un rico conjunto de herramientas que incluye: Git, Ruby, Jenkins, Bootstrap, Heroku y Padrino, entre otras. Para simplificar el setup del ambiente de trabajo hemos preparado detallados instructivos muy fáciles de seguir y para aquellos no quieran invertir tiempo en esto, también hemos preparado una máquina virtual con el ambiente ya listo. tools-xpw

No es necesario que los asistentes conozcan todas estas herramientas, pues el foco no del curso no está en las herramientas sino en los conceptos y prácticas. Por ello, desde el punto de vista técnico, basta con que los asistentes sepan programar utilizando el paradigma orientado a objetos.

El curso está estructurado como una simulación de un proyecto de desarrollo de una aplicación tipo «enterprise» que utiliza base de datos e interactúa con otros sistemas como Twitter, Gmail, etc.

Este curso permite a los asistentes conocer y entender las prácticas de Extreme Programming a partir de su puesta en práctica en un contexto típico de una aplicación enterprise, utilizando varias herramientas muy difundidas en la actualidad.

Para más detalles y consultas pueden consultar la página de registración del curso.

tools3-xpwAplicación de ejemplo utilizada durante el curso