Nuestra presentación en Smalltalks 2009

El pasado viernes junto a Carlos presentamos el trabajo que estamos haciendo en algo3. En la sesión hubo unas 50 personas. Comenzamos la sesión presentando el contexto en el cual dictamos la materia, luego Carlos explicó el régimen de cursada y la forma en que se encara la parte teórica de la materia, después de eso yo expliqué el enfoque utilizado en la práctica, donde a mi parecer lo más interesante es el uso de alguna prácticas ágiles como TDD, desarrollo iterativo, pair programming, collective ownership e integración contínua.

Durante la presentación tuvimos algunas consultas de la audiencia . En una de ellas un asistente comentó que el pedirles a los alumnos un informe con la explicación del TP realizado le parecía «anti» ágil, pues los métodos ágiles prefieren código corriendo en lugar de documentación. La realidad es que tengo 2 respuestas para esto:

  1. Los métodos ágiles no dicen que no haya que documentar, sino que es más importante la aplicación funcionando y en nuestro caso pedimos la aplicación funcionando y ADEMAS un informe de cómo fue resuelta la problemática (en ese orden de prioridad).  Nota: próximamente voy a escribir un blogpost sobre agilidad y documentación pues creo que hay un mal entendido general de este tema)
  2. En el contexto de la materia enseñamos a desarrollar software, lo cual es más ámplio que la mera escritura de código, los alumnos deben entender el problema a resolver, tomar decisiones de diseño y comunicarlas. Un diseño por más bueno que sea, si no es bien comunicado puede traer muchas complicaciones a futuro. Es por esto que hacemos incapié en la aplicación funcionando y TAMBIEN en las pruebas unitarias y el informe como dos herramientas para comunicar el diseño.

Otro comentario que tuvimos fue tal vez la gran cantidad de herramientas y contenidos vistos podian restar importante cantidad de tiempo para el correcto aprendizaje del paradigma y junto con esto nos proponian dar todo la materia sólo con Smalltalk. Personalmente no comparto esta visión y creo justamente la variedad de herramientas vistas permite a los alumnos una mejor comprensión del paradigma.

Como de costumbre al finalizar la sesión pedí feedbak a los asistentes utilizando la técnica de las caritas ( 🙂  😐  😦 ). Comentí el error de no dejar en claro si el feedback era sobre la calidad de la sesión o si era una opinión sobre el enfoque presentado. Algunos dieron su opinion sobre ambas cosas, pero la mayoria no. Más allá de este detalle el resultado fue: 80% 🙂  20% 😐

Después de la sesión estuvimos hablando con varios docentes de universidades de la patagonia y de UTN quienes se mostraron interesados con el enfoque presentado.

Personalmente estoy muy conforme con la presentación y muy contento con el enfoque que estamos utilizando.

La presentación completa fue grabada por los organizadores del evento y próximamente está disponible (seguramente en el site de la conferencia). Mientras tanto para los interesados el slide deck utilizado esta disponible aquí (inglés) y también puse una versión en castellano aquí.

 

Smalltalks 2009, calendario publicado

Desde hace un par de dias se encuentra publicado el calendario de la conferencia. Entre las sesiones que parecen más prometedoras a mi parecer (más allá de las sesiones de los invitados especiales) están la de Esteban Lorenzano, sobre desarrollo de aplicaciones para IPhone y  la Germán Arduino sobre Smalltalk Web Toolkit.

En cuanto a mi sesión, la misma fue confirmada para el viernes 20 a las 14 hs, a los interesados en conocer el enfoque que estamos aplicando en Algo3, ¡allí nos vemos!

Smalltalks 2009 (¡seré speaker!)

Del 19 al 21 de noviembre se llevará a cabo en la Facultad de Ciencias Exactas y Naturales (UBA) la tercer conferencia argentina de Smalltalk: Smalltalks2009. Esta edición contará la presencia de varias personalidades entre las que se destacan Dan Ingalls y Stephane Ducasse. Adicionalmentecomo  indica el título del post, voy a ser uno de los speakers de la conferencia, donde junto a Carlos vamos a estar contando lo que estamos haciendo en Algoritmos 3.

Aún no está confirmado el horario de la presentación, pero si quieren ver un abstract de lo que hablaremos, les dejo este link.

¡Nos vemos allí!

 

Las herramientas y el contexto

Como ya mencioné anteriormente, junto con DiegoF estamos dictando una materia de análisis y diseño en la UnTreF. Resulta que en la última clase me toco dar «User stories». Si bien es un tema que me animo a decir conozco con cierta profundidad, no estoy seguro de haber transmitido correctamente la idea. Resulta que la mayoría de los alumnos, por su joven promedio de edad (debe estar en 20 años),  no tiene experiencia laboral en el desarrollo de software. Al mismo tiempo antes de user stories vieron el método de análisis ambiental de Ed. Yourdon y el ya clásico modelo de casos de uso del proceso unificado. Con este contexto resulta dificil entender como es que pueden funcionar las user stories sin tener en claro la cultura agile. ¿Cómo es posible que una simple oración sirva de especificación ? Pues ahí está la cuestión, la user story no es la especificación, sino simplemente un recordatorio de hablar sobre algo impotante para el usuario. Esto implica que el usuario/cliente/product owner estará disponible para consultas y trabajo conjunto durante la construcción del producto.  Durante la clase intenté explicar ciertas cuestiones de las user stories por contraposición con algunas otras herramientas tradicionales, pero dado que los alumnos no tenian experiencia en desarrollo de software (más allá del ambiente académico), este intento resultó poco útil. Creo que en cierto modo, algo similar me paso al presentar el modelo de casos de uso. Me parace que la próxima, antes de explicar las distintas herramientas (casos de uso, user stories, etc) vamos a tener que hacer una introducción a los contextos metodologicos, en los cuales estas herramientas suelen utilizarse.

Andanzas por la UNTreF

Durante este cuatrimestre estoy colaborando con DiegoF en el dictado de la materia de análisis y diseño perteneciente a la carrera de Ingeniería en Computación de la Universidad Nacional de Tres de Febrero. La materia pertenece al cuarto cuatrimestre de la carrera y en cierto modo sería equivalente a Análisis de la Información en Fiuba. Si bien el nombre formal de la materia es «Análisis y diseño estructurado», el contenido es bastante más amplio; la visión de Diego es que al finalizar la materia los alumnos cuenten con varias herramientas y tengan el criterio de para poder elegir cual utilizar en cada caso. El programa de la materia incluye temas bastante variados que van desde el análisis estructurado de Yourdon, el diseño de productos, hasta User Stories y Atributos de calidad, pasando por Casos de uso, UML,  e implementación de paquetes. La materia se dicta en clases semanales de 4 horas, donde por lo general damos 2 horas de clase de exposición y luego actividades de aplicación, como ejercicios o incluso juegos.

Sinceramente me parece que la materia está muy bien pensada y es por eso que no lo dudé cuando Diego me hizo la propuesta. Estamos intentando grabar el audio de las clases de exposición, hasta ahora solo hemos grabado 2 clases y según me cuenta Diego han quedado muy bien.

A medida que vaya avanzado el cuatrimestre iré contando por aquí las expericiencias que vayamos recogiendo.

Esto es todo por ahora, cambio y fuera.

Se viene el CodeCamp

Como ya comenté hace un tiempo, voy a estar como orador en el CodeCamp hablando sobre herramientas open source para .NET. Durante el último fin de semana estuve trabajando en el slide deck y esta mañana comenzé a grabar un screencast que la gente de Microsoft publicará en el sitio del evento.

Hace un par de semanas se publicó la grilla de sesiones y realmente quedé sorprendido por la gran cantidad de sesiones (¡más de 40! de los más diversos temas). El evento es gratuito pero requiere registración.

Nos vemos allí.

ban_ar_585x234_codecamp

Comienzo de clases

La semana pasada comenzaron las clases del segundo cuatrimestre en fiuba. A pesar de haber quedado disponibles 4 vacantes el curso 1 de algoritmos 3 está mucho más completo que cuatrimestres anteriores. Por suerte para este período vamos a contar con GabrielF (estaba en el curso 3 de nuestra cátedra) y dos nuevos colaboradores MatiasW y FedericoS.

A diferencia de cuatrimestres anteriores tengo la percepción que ha habido muchas menos consultas en la lista de correo de la materia sobre el tp0, lo cual puede deberse a: a) hemos sido más claros en la explicación o b) los alumnos han venido más iluminados o con más conocimientos.

Por otro lado tengo la percepción de que tenemos más alumnos trabajando con C# que los cuatrimestres anteriores.

Bueno, con el tiempo veremos si estas percepciones iniciales se corresponden o no con la realidad.

Cambios en Algo3

Desde hace ya un tiempo con el equipo de cátedra de algortimos 3 hemos estado trabajando en algunos cambios en la materia los cuales pensamos incorporar en el cuatrimestre que se encuentra próximo a comenzar. Entre los cambios se encuentran:

  • La lectura obligatoria de algunos artículos/capítulos/papers.
  • Un estudio más profundo del polimorfismo y conceptos afines
  • Un mayor foco en la resolución de ejercicios
  • Inclusión de más trabajos prácticos, incluyendo uno en Smalltalk

Cada uno de estos cambios tiene una justificación, la lectura de papers/artículos tiene que ver con que no se puede pasar por la facultad estudiando de los apuntes de clase, de vez en cuando hay que leer material y el material existente sobre OO es por demás abundante. El estudio del polimorfismo y conceptos relacionados son posiblemente los temas más importante de la materia y hasta el dia de hoy el tiempo dedicado a dichos temas nos parece insuficiente. La única forma de aprender a diseñar es ejercitando y es por que hemos decidido aumentar el foco en los ejercicios. Por último, si bien hasta ahora habia cierta libertad en la elección del lenguaje de programación la gran mayoria de los alumnos elegía trabajar con Java; con la inclusión de un trabajo en Smalltalk buscamos que los alumnos experimenten una implementación distinta del paradigma de objetos.

No estamos seguros de como resultará todo esto, pero estamos convencidos que permitirá a los alumnos tener un mejor entiendimiento de la orientación a objetos. En diciembre veremos si nuestro enfoque ha sido correcto.

Agile at UADE

Last week Sergio Candelo and Federico Arambarri invited me to talk about agile project management in the their subject at UADE. It was very interesting for me because it was the first time I talk about agile with people from other industries (not software). There were some IT people, but there also were people from marketing, chemistry, electronics. One of the topics of my presentation was the state of the art in agile adoption. To talk about that I used Roger’s innovation adoption curve. and in my opinion were have crossed the chasm. The slide deck I used for my presentation is available here.