Pharo Sprint en Quilmes

Aprovachando la movida de la Smalltalks 2011, el miércoles 2 de noviembre de las 14:00 a las 20:00, el día previo a la conferencia vamos a estar llevando a cabo un Pharo Sprint.Para explicar lo que es un Pharo Sprint voy a utilizar la explicación que puso Guille Polito en el mail de difusión.

¿Qué es un Pharo Sprint?
Básicamente es una reunión de gente  que se junta gente  a programar en Smalltalk, en particular para Pharo.

¿Y qué programamos?
Y… programamos cosas locas.  Nos metemos adentro de Pharo a arreglar errores, o algunos tienen sus propios «modulos» dentro de Pharo y algunos otros simplemente vamos a aprender.

¿Y qué necesito?
¡Ganas!  El resto se consigue fácil, lo charlamos si te anotas.

¿Quién puede venir?
Todo el mundo.  La idea no es que estes solo, si no que nos sentemos de a pares así todos aprendemos un poquito, no solo del código, si no del que esta al lado…

¿Y si apenas se objetos? Me asusta esa cosa!!
Pegate una vuelta, mira la onda y si te cabe te quedas.

¿Y si ese día curso? ¿Si no puedo ir todo el rato?
Venite cuando y cuanto puedas!  No hace falta estar las 6 horas… Eso es para los limados como yo, no se preocupen.

¿Por qué habría de ir?
Uff..
– es divertido.  Vamos a codear :D.
– vas a conocer otras personas que sean igual de nerds (o no)
– se aprende banda
– podes sumar un poquito a la comunidad open source de Pharo

Me convenciste ¿Dónde me anoto?
https://spreadsheets.google.com/spreadsheet/viewform?formkey=dHlKdUdvYnF3c3VsMHB6Ny1oamJiTkE6MQ

Por último les digo que yo participé una sola vez de un Pharo Sprint y fue una gran experiencia :-).

Nos vemos.

Se viene la Smalltalks 2011

A modo de previa, el GITI ha organizado un conjunto de charlas introductorias a Smalltalk a desarrollarse en la UTN-FRBA y en UNQ durante esta semana.

Por otro lado, ya está publicado el listado de sesiones. donde van a encontrar mi sesión «Customizing Pharo«. Muy relacionado al tema de mi sesion, habrá otra sesión de Mariano Peck quien hablará ya en términos más avanzados de generación de images utilizando Metacello.

Entre otras sesiones que han llamado mi atención y a las que intentaré asistir están: Bringing BDD ideas to Pharo y Monsters from the IT: what has IT done for education?What I learned from teaching and why I’m so happy with Smalltalk y Research at RMOD presentada por el super groso Marcus Denker.

El evento es gratuito pero requiere registración.

¡Nos vemos allí!

Práctica de estimación en UNQ

(parte 5 de la serie: Ingeniería de Software en UNQ)

El jueves pasado en Ing. Soft, hicimos un ejercicio de estimación basado en la dinámica de fábrica de aviones (no voy a entrar en como es la dinámica pues si un futuro alumno lo lee, va a perder «punch»). Hicimos 3 iteraciones y en la última metimos algunas variaciones (rotación de gente, nuevos requerimientos, etc) para representar algunas situaciones comunes proyectos reales.
Creo que todos nos divertimos y me parece que algo aprendieron. De todas formas, estimación es un tema que vamos a seguir trabajando. Les dejo algunas fotos de la actividad.

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.

Getting started with Ruby on Windows

The life takes us through different and mysterious ways. In this occasion that way has lead me to Ruby world.

So, here are the steps I perform to get my Ruby development environment up and running on Windows 7.

I started by downloading Ruby from http://rubyinstaller.org/. In my case and because of the context of my project I choose Ruby 1.8.7.

image

The installation was very straightforward: accept the license, ensure to check the “Add Ruby executables to your PATH” option and press install.

image

After a couple a seconds the following screen displayed telling that the installation was completed.

image

The next component to install was the DevKit, a set of tools to allow the usage of C-native features in Ruby. The installation of this component was not so straighforward, I had to follow the instructions detailed here: https://github.com/oneclick/rubyinstaller/wiki/Development-Kit.

With this, we can say that the base infrastructure is ready, but it is not enough to develop applications. We will need to install gems (this is name given to Ruby packages). To install gems we can use RubyGems package manager that comes with Ruby installation. To use it, just open a Commmand Prompt and type the command to execute. In my case case I installed some tools that I already new I wanted to use:

  • Sinatra: a DSL tools to create web applications
  • Data Mapper: a persistence framework
  • Bundler: a tool to manage application dependencies
  • Heroku gem: a package to interact with Heroku platform

To install all this gems, just execute the following script:

gem install sinatra
gem install data-mapper
gem install bundler
gem install heroku

If while installing any of these gems you get an error telling “invalid date format in specification”, you will have to go to follow these steps:

  1. Go to <ruby folder>librubygems1.8specifications.
  2. Find the file mentioned in the error and open it.
  3. Look for a line assigning a date, something like s.date = %q{2011-08-17 00:00:00.000000000Z}
  4. Modify that line and remove the time s.date = %q{2011-08-17}
  5. Save the file and you are ready.

Well folks, that’s all, you are almost ready to start working. I say almost because you may want to install an IDE. But that will be the topic of another post.

To be continue….

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á…

Codecamp 2011

Hoy asistí a este evento en el cual dicté una sesión sobre Control de configuración con Git y NuGet. El mayor desafió de la sesión fue sin duda dictarla junto a Dario Seminara, un persona muy particular con un conocimiento muy profundo de Git y que tiene la capacidad de leer la matriz, pero que a la hora de hablar con personas tiende a colgarse y desviarse por ramas. Para mitigar este particular comportamiento, organizamos la charla en dos partes, en la primera yo hice una introducción de unas 6 diapositivas, donde setee el contexto, las expectativas y presenté algunos conceptos.

En la segunda parte nos centramos en una demo para la que representamos el rol de dos alumnos queriendo trabajar colaborativamente en un proyecto usando GitHub. Durante esta dinámica, yo «actué» de alumno queriendo aprender Git, mientras que Darío tomó el papel de experto contestando a mis preguntas y mostrando ejemplos de uso.

La sesión fue de 70 minutos los cuales nos resultaron poco para mostrar todo lo que pretendiamos, puntualmente nos faltó mostrar el uso de los comandos stash y checkout y adicionalmente nos me hubiera gustado profundizar un poco más en algunas cuestiones respecto de la estructura del árbol del repositorio. Ah! y no mostramos nada de NuGet, ups!. Más allá de esto quedé conforme con como salió la sesión.

Dado que me parece que varios de los asistentes se quedaron con ganas de más, voy a intentar grabar algún screencast en los próximos días.

Como de costumbre al terminar la sesión, pedimos a los asistentes que nos den su feedback de la sesión dibujando una carita ( 🙂 😐 😦 ) en un post-it y obtuvimos 18 caritas felices y una neutral. Considerando que en la sesión había alrededor de 25 personas, creo que la evaluación es muy positiva.

Para aquellos que asistieron a la sesión este es el link al post que explica como configurar el ambiente para empezar a trabajar con git y github.

Este es el link a las diapositivas utilizadas durante la sesión.

Por último quiero felicitar a Dario, pues ha sido un gusto compartir esta actividad.

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.