Jenkins vía GTalk

Con mi llegada al mundo Ruby comencé a utilizar Jenkins como servidor de integración contínua y cuando empecé a investigar los plugins me copé. Los últimos dos que agregué fueron el HTML Publisher y el Jabber Notifier.

El HTML Publisher permite visualizar en la interface de Jenkins reportes html que se generen como parte del proceso de build; en mi caso lo uso para visualizar el reporte generado por SimpleCov. La configuracion es trivial, solo hay que indicar la ubicación y nombre del archivo del reporte.

El Jabber notifier permite enviar notificaciones vía  GTalk. Una vez instalado el plugin (que se instala con 2 clicks al igual que casi todos los plugins Jenkins) la configuración es bastante simple. En primer lugar vamos a necesitar una cuenta de gmail para que sea utilizada por Jenkins, en mi caso tengo una cuenta de gmail generada especificamente para este propósito.  Entonces en la configuración general de Jenkins (Manage Jenkins > System Configuration) en la sección Jabber Notification ponemos las siguientes settings:

  • Jabber ID: <la cuenta de gmail que queremos que Jenkings use para enviar las notificaciones> (ojo, esto no es la cuenta a la que Jenkins va a enviar las notificaciones, sino la cuenta con la que Jenkins se va logguear en GTalk)
  • Password, el password correspondiente a la cuenta de Gmail antes mencionada
  • Server: talk.google.com
  • Expose presence: yes
  • Acceptance mode for subscription requests: accept_all
  • Bot command prefix: !

Y el resto de los campos podemos dejarlos en blanco. Luego en la configuración particular de cada Job, en la sección Post-build actions, habilitamos  Jabber Notification y en el campo targets indicamos las cuentas de Gtalk a la que se debe notificar.

Les dejo un screenshot de las notificaciones que envia el Jenkins, noten lo gracioso del mensaje de estado.

Agiles 2011: Colaboración Académica Internacional

Esta fue una de las sesiones que propuse en el Open Space de Agiles 2011 y aquí voy intentar resumir en un par de líneas lo que se habló en dicha sesión.

Yo dicto Ingeniería de Software en la Universidad Nacional de Quilmes (Argentina) y la propuesta de esta sesión surgió a partir de una necesidad mía en dicho contexto. Dado que el trabajo en equipos distribuidos es algo cada vez más común, me parece importante que mis alumnos realicen una experiencia de desarrollo distribuido durante mi materia. Para eso pensé que sería interesante hacerlo trabajando en conjunto con alumnos de otras instituciones. Las formas de colaboración pueden ser diversas pero es un punto que no voy a desarrollar ahora.

Hablando de la sesión, la misma comenzó con la introducción del párrafo anterior y luego sentados en ronda nos fuimos presentando.

Luego de la presentación quedó evidencia que algunos de los asistentes se habían acercado con una inquietud diferente a la planteada por mí, que era “Cómo enseñar métodos ágiles en ámbitos académicos”. Es por esto dividimos la sesión en dos sub sesiones: una (sub)sesión centrada en mi planteo inicial y otra centrada en “Cómo enseñar métodos ágiles en ámbitos académicos”.

Al mismo tiempo en la (sub) sesión de colaboración (la planteada originalmente) surgieron tres formas distintas de posible colaboración:

  1. En el contexto de un semestre alumnos de dos (o más) instituciones trabajan en el desarrollo de proyecto que comienza y termina dentro de un semestre.
  2. En el contexto de trabajos finales de carrera (o tesis) alumnos de una institución co-dirigidos por un docente de otra institución. O bien alumnos de distintas instituciones trabajando juntos en un trabajo final.
  3. Alumnos de distintas instituciones trabajando en el desarrollo de un sistema “grande” a lo largo de varios cuatrimestres, implementando en cada materia un par de funcionalidades por cuatrimestre.

En particular (3) absolutamente integrable con (1) y (2) y tal vez sea la más simple de implementar.

Respecto a la otra (sub) sesión, desconozco como se desarrolló, pero me consta de varios casos, yo mismo sin ir más lejos estoy enseño métodos ágiles, pero cómo lo hago será tema de otro post.

Ya mandé un mail a todos los participantes de la reunión, ahora veremos cómo gira la rueda.

Agiles 2011: día 3

Este día fue para muchos lo mejor de la conferencia. A excepción del keynote final, todo le día fue en formato open space, lo cual fue todo un desafío debido a la gran cantidad de participantes. La facilitación estuvo a cargo de DiegoF e Ingrid. Durante el marketplace hubo más de 50 propuestas, pero creo que finalmente solo se realizaron unas 30.

Yo hice dos propuestas y ambas fueron votadas.

La primera fue sobre Colaboración académica internacional. La cuestión es que tenia la intención de contactar con docentes de otras univesidades/países que estuvieran dictando materias relacionadas a ingeniería de software para ver de hacer trabajos prácticos con forma colaborativa entre mis alumnos y los suyos de cara a que los alumnos puedan experimentar el trabajo en equipos distribuidos. Hubo alrededor de 25 personas de Argentina, Chile y Perú. Me gustó como salió la sesión y me quedé con muchos contactos (aún tengo pendiente enviarlos a todos los participantes de la sesión).

La segunda sesión fue «Show me your practice», que en realidad en el momento que la presenté le dí otro nombre menos cool. La idea era compartir prácticas no tradicionales de trabajo. La sesión fue en formato Lightening talks. Al comenzar la sesión tomamos nota de todos los presentes interesados en compartir sus prácticas. Luego dividimos el tiempo restante de la sesión por la cantidad de interesados y asignamos un tiempo time-boxed a cada uno que terminó siendo de 6 minutos si mal no recuerdo. Algunas de las prácticas fueron posteadas en twiteer, las pueden encontrar buscando por #showmeyourpractice. En un post futuro, voy a hablar un poco más sobre estas prácticas.

Por la tarde participé de una sesión propuesta por JuanG sobre comunidad ágil, Juan prometió  compartir sus notas así que esten atentos a su blog.

La ultima sesión que participé fue de un muchacho de Version One llamado Mike algo, que trató sobre optimización organizacional y que me pareció muy interesante.

Ya hacia las 5 de la tarde, volvimos al espacio central donde JuanG dío su keynote. Simplemente impecable. No voy a entrar en detalle, pues en breve está disponible la filmación.

Luego del keynote, hubo una breves palabras muy apropiadas de Esteban Di Tada, decano de la facultad de Ingeniería de la UP y finalmente el cierre a cargo de MartinA y Ale Alfonso, presidentes de la conferencia. Como era de esperarse, hubo agredecimientos varios, anuncios parroquiales, la convocatoria a propuesta de ciudades candidatas para la conferencia del próximo año y la invitación a todos los asistentes a participar de la retrospectiva del evento.

El evento terminó con un evento de camaradería en Logia Ortiz en que los sponsors realizaron algunos sorteos. También ahí realizamos la retrospectiva del evento y tuvmios muy buenos resultados.

Aún tengo muchas cosas más por compartir de este evento, pues ha sido muy enriquecedor, con lo cual, les dejo links a algunos álbumes de fotos y les prometo más post hablando sobre la organización de la conferencia y el contenido de las sesiones.

http://digitalleague.com.ar/agiles2011.php

https://picasaweb.google.com/116354004329511510805/Agiles2011Picasa?authkey=Gv1sRgCI7W1rv8xZypCA

https://picasaweb.google.com/106951431145173789918/Agiles2011?authuser=0&feat=directlink

Continuará…

Agiles 2011: día 2

En este segundo día la registración ya fue mucho más liviana y por eso no fue necesaria tanta gente en la mesa de registración.

A nivel de sesiones mi dia comenzó con el keynote de James Shore: Agile, Past and Future. Sin duda la frase de la sesión fue «Agile es como el sexo adolescente, todos hablan de el, pero nadie lo practica«.

La sesión que asistí fue la de Israel: Agile Project chartering…,. El enfoque presentado estaba basado en  técnicas de Sistemas reactivos. Interesante enfoque, tomé nota de algunas cosas para probar.

Ya por la tarde asistí a la sesion Agile Testing – Beyond the Easy Contexts, en la cual no encontré cosas demasiado novedosas y varias de ellas intuitivas en un punto, pero que curiosamente aún no logramos implementar en el lugar que trabajo, ups!. A continuación y en la misma sala, presencié la sesión de Mike Beedle (uno de los autores del manifiesto agile). En primer lugar debo decir que me mató el acento mexicano de Beedle, excelente y muy pegadizo. Durante la sesión Beedle, repasó un poco de historia, contó algunas curiosidades de la mítica reunión del manifesto y compartido algunas lecciones aprendidas a 10 años de la firma manifiesto.

La última sesión que asistí fue Optimizing Organizational / Team Collaboration & Transparency Even With Distributed Teams, la cual fue a mi entender de menor a mayor. Al comienzo, no pintaba para nada prometedora, pero que con el correr del tiempo fue resultando cada vez más interesante a punto tal que he dedico dedicarle un post para explicar algunas de los cosas habladas.

Ya una vez finalizadas la sesiones nos reunimos en el SUM para ajustar algunos detalles pendientes del Open Space de mañana. Personalmente tengo muchas expectativas en el open space, será que luego de haber participado el  varios evento con este formato, estoy convencido que siempre salen sesiones interesantes.

Mi día termino con Esteban, Julian y Jesica en calle Corrientes disfrutando de Stella (Artois), Pizza y Fainá en la tradicional pizzeria «Las Cuartetas«.

Bien amigos, esto es todo por hoy, a dormir.

Agiles 2011: día 1

No tengo palabras para comenzar el relato, curioso, nunca me había pasado. Resulta que no sé como describir lo que fueron las primeras horas del evento en las que estuve trabajando en la registración. Diría que fue terrible, pero en el buen sentido, mucha adrenalina, gran trabajo de equipo la mejor onda y algunas cosas para mejorar.

Luego de cumplir con mi compromiso en el área de registración, asistí a la sesión «From Estimate from commitment«. La sesión estuvo bien, comenzó con un repaso de algunos conceptos de agile y estimación en general. Luego, el core de la sesión estuvo alrededor de un método de estimación basado en PERT. Una vez presentado el método, lo ejercitamos trabajando en grupo. Personalmente yo ya conocía PERT (fue una de las cosas que me enseño Juan cuando lo tuve como profesor en FIUBA) y al mismo tiempo cuando trabajaba en Snoop también usábamos una variante del mismo.

Durante el almuerzo estuve colaborando sirviendo bebidas junto con @pablitux (a la pasada MartinA nos sacó una foto http://yfrog.com/kg27ooij).

Ya por la tarde, estuve en el workshop de James Shore, simplemente excelente. No participé del workshop, sino estuve en mi rol de organización, atento a cualquier requerimiento que pudiera tener James durante la sesión. El workshop estuvo enfocado en Product Management y durante el mismo, James presentó 6 técnicas para llevar a cabo esta práctica. Estuvo muy bueno, yo temía que tuviéramos que afrontar alguna situación tensa dado que el cupo de asistentes estaba limitado. Pero por suerte, James tuvo la buena voluntad de aceptar a las 6 personas adicionales que se acercaron al comienzo. Como si fuera para contrarrestar esta buena intención de James, un par de asistentes se retiraron 45 minutos antes de que finalice la sesión dejando en banda a sus respectivos grupos de trabajo. Sinceramente, esto me parece una gran desconsideración y falta de respeto, no solo hacia el orador y los participante del workshop, sino también hacia las personas que podrían haber ocupado esos lugares. Seamos claros, si el orador explica que la sesión consiste en trabajo en equipo y que dura 2 horas, se sincero y si sabes que no vas a quedarte las 2 horas, andate y dejá tu lugar a alguien que esté dispuesto a quedarse la sesión completa. En fin, no vale la pena dedicar más palabras a esta cuestión. Saqué un monto de cosas del workshop, pero les voy a dedicar otro post.

Finalmente, cerramos este primer día con una retrospectiva de organizadores y voluntarios, para identificar los puntos de mejora.

Aquí pueden ver algunas fotos que saqué.

Continuará…

Agiles 2011: La previa

Durante los próximos 3 dias se llevará a cabo en las instalaciones de la Universidad de Palermo (Buenos Aires, Argentina) la cuarta conferencia latinoamericana de métodos ágiles. Hoy a la tarde nos reunimos los miembros del equipo organizador y los voluntarios en las oficinas de Kinetica, para ajustar detalles operativos del evento. Con colaboradores de Argentina, Bolivia, Chile y Perú trabajando codo a codo, armamos las más de 500 bolsas que entregaremos a los asistentes al registrarse.

Luego del armado de bolsas, definimos algunas cuestiones operativas respecto de la registración, la coordinación de las sesiones y la asistencia a los oradores.

Finalmente nos quedamos un grupo reducido, trabajando en algunos detalles más: Ale y Martín preparando el discurso de apertura de la conferencia y el resto (Esteban, Julian, Fabián, Emilio, Adrian, Pablo y yo) trabajando en tareas diversas como el armado de credenciales, las listas de registro, los carteles para las sesiones, etc.

Ya estamos a un par de horas, mi despertador sonará a las 6.30, pues 7.30 es la cita en la universidad. Por eso, en cuanto termine este post pongo mi disco de Dancing Mood y soñar con angelitos.

Agile Open Mar del Plata 2011

El pasado sábado 10, estuve participando de este evento. Al mismo asistieron unas 70 personas duplicando la cantidad de asistentes de años anteriores, lo cual sin duda fue mérito de la energia que puso FabiánQ (¡gracias maestro!).

La facilitación del encuentro estuvo compartida entre MartinA, JulianA y FabiánQ.

Como había muchos asistentes nuevos en agile, comenzamos con una sesión introductoria «global» la cual estuvo a mi cargo (fue un honor para mi, gracias 🙂 ). Como fue algo no planeado y hace poco tiempo cambié mi máquina  no tenia a mano mi deck introductoria de agile, asi que me ví obligado a improvisar y creo que me salió bastante bien.
En una sesión que me gustó y cuyo nombre no recuerdo, uno de los asistentes planteó la problématica del trabajo multi-proyecto. El problema en contexto era que: una empresa de software que hace proyectos para varios clientes, llega el pedido de un cliente, la empresa lo estima y asigna un equipo. Cuando el proyecto está por terminar, el cliente pide de extender el proyecto, pero la empresa ya tenia asumidos otros compromisos y la gente asignada a otro proyecto que esta por empezar. A mi parecer esto es un problema de administración de porfolio y si bien hay bibliografia sobre lo que seria una administración de porfolio agile, a mi parecer es un tema bastante amplio. Yo tengo una propuesta para manejar esta cuestión, pero creo que merece un post aparte, con lo cual no me voy a explayar aquí.

Otra sesión de la que participé fue una de TDD que propuse yo mismo y en la que expliqué TDD usando Smalltalk (Pharo). De esta sesión no tengo deck, pues hice todo dentro de Pharo.

Aquí subí algunas fotos que saqué durante el evento.

Workshop de estimación en JAIIO 40

Fue el pasado miércoles en las instalaciones de UTN Córdoba. El curso estaba completo, 25 asistentes, el número que puse como límite para poder realizar los ejercicios. Por la mañana Pablo dictó un workshop de introducción a Scrum, y por la tarde me tocó a mi.

Entre los asistentes, casi todos tenían alguna experiencia con métodos ágiles. A pesar de eso, varios tenían algunos conceptos «flojos», con lo cual tuve que hacer varias explicaciones que no tenia planeadas. Personalmente me gustó como salió, hubo muchísimas consultas y creo que di respuesta a casi todas. Al mismo tiempo, las actividades ayudaron a varios a bajar a concreto algunas de las cuestiones teóricas que hablamos durante la primera hora del workshop. La evaluación (con la clásica técnica de las caritas) fue muy buena 23 caritas felices (varias de ellas muy felices) y dos caritas neutrales.

Una curiosidad, es que entre los asistentes había un technical writer (que se presentó asimismo como documentador). Digo curiosidad, pues si bien trabajo con technical writers (e incluso he «ocupado» ese rol en algún momento), nunca había tenido uno como asistente de un workshop/presentación.

Antes de cerrar el workshop pasé los clásicos avisos parroquiales que incluyeron: Agile Open MDP, Agiles 2011 (¡aprovechen que se extendió el Early Bird!) y Smalltalks 2011. Luego de esto se me acercó un asistente consultando sobre la posibilidad de hacer un Agile Open en Santiago del Estero, con lo cual, si la gente de Santiago se mueve, es posible que hagamos algo por allá.

La breve deck utilizada está disponible aquí. También grabé este screencast que trata sobre algunos temás conceptuales que hablamos durante el workshop.

Damian Schenkelman sobre Agile

Damian es joven entusiasta, agile practitioner y futuro ingeniero que trabaja conmigo. Se sienta de espaldas a mi y actualmente trabaja en otro proyecto. Hace unos minutos, lo escuche decir la siguiente frase a otro joven que recientemente se unió a la compañía y no pude resistir la tentación de compartirla, pues me resulto muy gráfica.

Ser ágil es como cocinar chipá: es rico, pero si lo sacas del horno y te lo comes muy rápido sin manejar las expectativas, te puedes quemar

¡Gracias Yenkel!

Say no more.