martes, diciembre 29, 2009

Terminando el año 2009 en MDQ

No quería dejar de escribir un post a este pobre y desconocido blog con las cositas que estoy cerrando y planificando para el año que viene, si esperan leer algo técnico, olvidenlo es más bien personal.
En lo que queda del 2009, estoy con un par de cosas:
  1. El más importante, estoy terminando mi paquete de certificación de arquitecto en IBM que la verdad es una goma (cansador) ya lo tengo a un 70% y me quedan 4 días. Básicamente es un grán CV en donde tengo que demostrar que tengo los skills, cursos, experiencias diseñando soluciones con diferentes tecnologías, entornos, metodologías y todo lo que se les pueda ocurrir. Lo interesante es que si luego de 3 entrevistas, revisiones y otras cosas más me certifican, automáticamente me convierto en Master Certified IT Architect del Open Group, que digamos no sería poca cosa (si bien descreo de las certificaciones) creo es de lo más serio que vi de certificaciones.
  2. El el proyecto en el que estoy, estamos dentro de 3ra iteración de la release y viene todo tranquilo, que se puede esperar de una iteración de 2 semanas con 6 días laborales, ahora estoy trabajando en los diseños preliminares (o estratégicos o arquitecturales) de la próxima iteración.
  3. Finalmente estamos implementando TDD en un proyecto bastante grande, con alrededor de 16 desarrolladores, ya voy a contar como lo encaramos pero armamos un modelo con capacitación, mentores e implementación gradual de TDD que puede andar.
  4. Personalmente, lo mejor VOY A SER PAPA otra vez :) calculamos para fines de de Julio tener un pirata o princesa (así le dice andrés)
Para el 2010, si bien no lo tengo bien definido, pero voy a tener cambios, mi plan B original era comenzar un doctorado, y seguir la materia más de costado, pero por el momento lo voy a tener que atrasar un poco, seguramente siga buscando mi plan A que es vivir en el exterior un tiempo, idealmente USA pero si no sale como se viene postergando, intentaremos con Europa.
Seguramente siga molestando con Ruby (junto con Damian y Marcia) y por que no comenzar a dar cursos por fuera de IBM, pero de cosas que me gustan como Ruby, Metodologías Agiles, TDD y Arquitectura, y obviamente me tengo que poner un poco a tono e investigar un poco más, creo que estamos en un parate, donde temas que me interesaban ya los aprendí e implementé, ahora no veo nada que me despierte interes, lo cual me pone un poco mal pero por otro lado me desafía a pensar al desde cero, en fin... ya tendré tiempo de delirar un poco.

Les dejo un gran abrazo a todos y que tengan un lindo año nuevo.

domingo, diciembre 13, 2009

Pensando Arquitecturalmente

Es así como se llama (en inglés) el curso que voy a dar esta semana por tres días, en catalinas, arrancando el Lunes 14 de Diciembre. Básicamente es un extracto de APIT en 24 horas pero con muy alineado a los procesos, frameworks de arquitectura y metodologías de IBM. Realmente este es un curso que a mi me abrió la cabeza allá por el 2005 y mañana lo voy a dar por 4ta vez.
Es un curso que combina teoría, practica y discusión muy muy interesante, es el mismo que fui a dar a Perú en Septiembre.
Lo interesante de esta vez es que al 60% de los arquitectos y futuros arquitectos que voy a tener como participantes los conozco y los vi crecer en IBM... la verdad que me siento muy bien en poder compartir mis conocimientos y experiencias a los largo de 5 años pensando como arquitecto y obvio haciendo algo que me fascina.
El curso consta de 10 módulos donde más o menos:
1) Se introduce a la arquitectura de IT
2) Requerimientos Funcionales
3) Componentes Funcionales
4) Diagramas de Arquitectura
5) Componentes Operacionales
6) Requerimientos no Funcionales
7) Evaluación y Verificación de Arquitecturas
8) Proceso de Arquitectura
9) Herramientas para construir y comunicar arquitecturas
10) Rol del Arquitecto
Así que ahora estoy un poco repasando los módulos que me tocan y tratando de estar a tono para poder dar un buen curso y sobre todo disfrutarlo ya que van a ir mentes brillantes al curso que me van a hacer pensar mucho, cosa que a esta altura del año me cuesta :)
Bueno, esto es todo.... quería compartir lo que estaba pensando por mi cabeza en este momento.

lunes, noviembre 30, 2009

Cuanto BUFD necesitamos en TDD

El viernes pasado dimos el curso de día entero que armamos sobre TDD que incluye los siguientes módulos:
  • Introducción a TDD + Ejemplos con Live Coding
  • Refactoring + Ejemplos con Live Coding
  • Test Double (dependencias, Mocks, fakes, etc) + Ejemplos con Live Coding
  • Trabajando con Legacy Code
  • Mejores prácticas de TDD
Y uno de los temas que más discutimos es el nivel de BuFD necesitamos a la hora de comenzar con TDD, y digamos que hay como dos caminos y dependen mucho de la experiencia y el conocimiento del dominio. Cuando hablamos de BuFD en TDD me refiero a cuantos test cases creamos antes de crear el SUT (System under test):
  1. una opción es bien evolutivo, creando un test cases por vez, arreglar la compilación, hacerlo green y refactor, bien chiquitito, baby steps bien TDD y evolutivo
  2. la otra opción tiende a crear más test cases antes de comenzar con el SUT, lo cual de alguna manera organiza más el trabajo y permite ver el progreso.
La opción que más me gusta a mi es la primera, ya que permite ir de a poco, haciendo funcionar solo una cosa al mismo tiempo y permite estar más concetrado y no perderse con otros temas, obviamente... pensando globalmente creo que es más que interesante al menos listar todos los test cases que tenemos en la cabeza cuando comenzamos a hacer algo, no digo codificarlos, sino listar los diferentes metodos o test (specs) que tenemos en la cabeza y dejar el método vacío, lo cual permite pasar unos minutos pensando todos los escenarios que se nos vienen a la cabeza y luego arrancar uno por uno, de esa manera uno pude tomar decisiones up front pero sigue teniendo las ventajas de baby steps.
Por otro lado, poder tener los test cases listados puede servir cuando hay que diseñoar junto a un developer más junior, lo cual lo organiza y le deja documentado su trabajo a futuro (dia/semana) y por que no pensar en medir progreso, a medida que los test cases pasan a verde, es el progreso.
En conclusión, a mi me gusta más la idea esta que les comenté recien, listar todo lo que se me viene a la cabeza y luego arrancar uno por uno, y si en el medio se me ocurre algún test más lo agrego a la cola, pero creo que tambien depende mucho de quien esté diseñando/programando y tiene que ver con que tan seguro o confidente estás con el dominio y TDD.

Algún pensamiento para compartir?

domingo, septiembre 27, 2009

Primer día en Lima


Ya son las 21:47, estoy aca, en el lobby del Hotel preparando los módulos que tengo que dar mañana, en el curso de Arquitectura y tomando la bebida digestiva Italo-Argentina por excelencia, exacto, un Fernet... y por raro que suene, no es Branca, es un Fernet de Italia que no recuerdo el nombre, y la verdad que no está tan mal.
Llegué alrededor de las 12 horario local, y en cuanto hice el check-in, de inmediato partí al Museo del Oro, me gustó muchísimo, estuve casi 2 horas recorriendo y escuchando el audio de todo el museo, quien venga a Lima, podría decirle que vale la pena pasar y ver las cosas que se hacian aca antes 500 antes de cristo y hasta los Incas. Obviamente luego de los Incas, 1500 d.c., ya no hay nada, malditos conquistadores! maldita iglesia! fucking reyes!!!! en fin, la verdad que eran una sociedad muy avanzada.
Luego partí para una feria de artesanos en miraflores, otro distrito donde compre un par de regalos para mis dos bombones que me esperan en Bs As, no veo la hora dárselos.
Realmente Lima me impresionó, mucha construcción, avenidas muy bien señalizadas, tambien la vi muy "americanizada" hay más cadenas yankies que en Bs As, desde dunkin donuts, kfs, pizza hut, radio shake, etc, etc... me sentía en Raleigh ;)
Con respecto a la gente, ya lo dije, por default los peruanos me caen muy bien y por ahora tuve una calida recepción, del hotel, mozos, texistas (que manejan tan mal como en Bs As) por ahora va todo de diez, mañana ya se viene el trabajo.

martes, septiembre 22, 2009

Viajando a Lima, Peru

El Domingo 27 de Septiembre estoy viajando a Lima para dar un curso de arquitectura interno de IBM por tres días. Un curso muy muy interesante que ya lo he dado junto con Rodrigo Baraibar en dos ocasiones en Bs As y ahora ya me salieron las alitas para darlo más solo, igualmente lo voy a dar con un arquitecto de Perú, pero creo que va a ser su primera vez. Básicamente el curso cubre todos los puntos de APIT pero con un enfoque más corporativo y con el framework de arquitectura propio de IBM, pero está muy bueno.
Como voy a estar tres días voy a estar dando charlas en universidades de Perú luego del curso, este es el detalle por si hay algún interesado que viva o esté por lima.
  • DIA: Lunes 28 de Setiembre, HORA: 18:30 - 19:30 horas, TEMA:ARQUITECTURA DE SOFTWARE, UNIVERSIDAD: San Martín de Porres
  • DIA: Martes 29 de Setiembre, HORA: 18:30 - 20:30 horas, TEMA: Enfoque IBM hacia SOA y Rational Team Concert, UNIVERSIDAD: UPC
  • DIA: Miercoles, 30 de Setiembre, HORA: 18:30 horas - 19:30 horas, TEMA: SOA (Calculo que voy a hablar de REST), UNIVERSIDAD: San Martín de Porres

Si bien yo quería hablar más de TDD, Ruby o Metodologías Agiles es lo que toco :) ya voy a ver como mechar en las charlas esos temas. Cuando tenga más detalle, dirección, sala, registración que calculo que será libre y gratuita, posteo.

También estoy viendo que hacer el domingo por ahora me recomendaron visitar el museo del oro como algo imperdible, alguna recomendación? Realmente tengo estoy muy entusismado por que Peru me genera muy lindos sentimientos (casí un pais hermano al mio) pero la verdad que conozco poco.

martes, septiembre 01, 2009

Introducción a REST

Hace un par de meses grabé un seminario web sobre REST para los SOA Webminars de IBM, una iniciativa para enseñar SOA en español. La verdad que me olvidé de publicarlo y es en 1 hora, o sea Martes 1 de Septiembre a las 15:00 (GMT-3).

Resumen de la charla:
En los últimos tiempos la simplicidad y portabilidad han tenido un peso importante en las decisiones de arquitectura y es aquí donde REST toma un papel fundamental en la integración de aplicaciones y en las Arquitecturas Orientadas a Servicios. En esta charla se explicarán los conceptos de REST y que ventajas posee a la hora de integrar aplicaciones dentro de una Arquitectura Orientadas a Servicios. Está orientada a Desarrolladores y Arquitectos de Aplicaciones e Integración.

Este es el link directo para participar y tambien para bajar verlo offline:

Aca pueden encontrar otros seminarios.

Los espero y si tienen feedback no duden en postear!

miércoles, agosto 26, 2009

Panel: Frameworks MVC - UBA SIS

El Viernes 28, a las 15hs vamos a estar en la UBA (AULA E24, PABELLÓN I de CIUDAD UNIVERSITARIA) con Esteban Lorenzano, charlando nuevamente de Ruby on Rails y Seaside, esta vez vamos a compartir un panel con otras personas que van a hablar de .NET y Seam. Acá hay mas información del Evento.
La verdad que puede llegar a resultar interesante, sobre todo si se llega entender que es lo mejor que ofrece cada framework y llegar a la conclusión de las buenas prácticas a seguir a la hora de desarrollar Web App y que el MVC no sirve para nada :) jeje, solo para molestar.
Con respecto a Rails, la implementación de MVC tampoco me cierra del todo, creo que la idea de Wicket es un poco más interesante, en fin, veremos que sale de este panel.
La otra duda que tengo es que se entiendo por MVC, pero eso lo veremos discutiendo calculo, yo por lo pronto voy a presentar el modelo de MVC de Rails (bien Struturado) y los principios del framework que me parece que es lo más interesante, seguramente me pelearé con Esteban por el uso o no de Templates (que los banco a bastante) y lo molestaré un poco con lo importante de tener urls RESTful :P
Los espero!

lunes, agosto 24, 2009

Adoptando TDD en una compañia

Luego de casi 6 años de usar TDD como desarrollador y teniendo excelentes resultados en los proyectos que trabajé, decidimos comenzar con la interesante y desafiante idea de propagar el uso de TDD para todos los proyectos de IBM, por supuesto contanto con apoyo ejecutivo y técnico para poder lograrlo. Esto digamos que no tiene ninguna cosa muy complicada, hay que:
  • capacitar
  • guiar y resolver problemas
  • proveer herramientas que faciliten la implementación
  • implementar y medir constantemente (muy importante!!!)
El temita con TDD es que es un cambio de enfoque de como uno viene trabajando y no podes capacitar de la misma manera al Senior que al Junior, y varias cosas más que los que están en el tema sabrán... el concepto clave es que TDD es una técnica de diseño que permite mejorar el diseño de las aplicaciones, mejora la productividad y permite tener menos defectos.
Con lo cual hemos definido 5 puntos que consideramos claves para el éxito de esta iniciativa, y que fueron los siguientes:
  1. Soporte de la gerencia: Partiendo de la base que no es una técnica sencilla de aprender se necesita tener disponibilidad de los profesionales para educarlos.
  2. Ser pacientes: Al comienzo durante la implementación de TDD puede disminuir la productividad del desarrollo, pero hay que saber en tender que seguramente los tiempos de Testing se van a achicar por menor cantidad de defectos, y que luego de 3 meses, la productividad va a mejorar rotundamente.
  3. Educación constante: Profesionales rotan, nunca hay que dejar de educar.
  4. Formar una comunidad: Esto refiere a que luego de la educación e implementación los profesionales puedan conectarse y compartir conocimientos especificos de TDD y se organicen para ayudarse entre si no estructurada a través de Blogs, Wikis, Coding Dojos, etc
  5. Definir y capacitar expertos: Estas personas tendrán la experiencia y los conocimientos de TDD para ayudar a profesionales y proyectos que recien comienzan, guiandolos en su adaptación.
Ya tuvimos el primer curso de TDD de un día completo, la verdad que nos fui muy bien, nos encantó hacerlo y tuvimos muy buen feedback. También tenemos pensado dar este curso 4 o 5 veces más en este año.
Una de las cosas que me encanta de este es el grupo que armamos con otros nerds de aca, Damian Garcia, Marcelo Mendoza, Bernardo Capra (desde Tandil) y Mauro Galvan Rainhart (anti-nerd).
Calculo que en otro post voy a contar un poco como encaramos el curso y obviamente como nos está yendo

jueves, junio 25, 2009

He vuelto, ahora desde Ubuntu 8.10

No estaba muerto, solo un poco ocupado con el trabajo y el poco tiempo libre que tenia se lo dedicaba a tunear este fantástico Sistema Operativo llamado Linux Ubuntu!
Desde el 2000 que intento que Linux sea mi Sistema Operativo (unico y primario) y realmente ahora lo pude lograr, digamos que yo soy un usuario intermedio y cómodo, quiero las cosas un poco servidas pero no me molesta tener que hackear de vez en cuando y con Ubuntu encontré el balance perfecto, afortunadamente toda la plataforma de productos corporativos de IBM funcionan perfecto (Lotus Notes, Sametime, etc) y la plataforma de desarrollo definida por la arquitectura de mi proyecto se banca perfectamente trabajar en Linux o cualquier otro SO, asi que desde Enero de este año, estoy con Linux Ubuntu (primero 8.04 y ahora 8.10). La verdad que es muy robusto y ninguna queja, bah en realidad si una sola y es el sonido, de vez en cuando hay que reiniciar por que el Player de Flash lo cuelga, pero evidentemente es un tema del SO.

Luego del cambio de laptop (pasé de T41 a T61) lo primero que hice es instalarlo, ya voy casi 8 meses y dudo que lo cambie en algún momento, realmente lo dudo muchisimo, y no solo eso sino que junto conmigo 10 nerds más de IBM se pasaron a Linux, lo cual hizo todo más fácil a la hora de resolver problemas, obviamente ya tenemos un wiki/blog/comunidad para facilitar el intercambio.
Voy a listar un par de aplicación que me ayudan bastante:
  • VirtualBox 3.0, lamentablemente tengo que tener un Windows para algunas presentaciones y planillas de calculo que no puedo editar con el Open Office y el PC Suite de Nokia, y tambien sirve para tener diferentes máquinas virtuales de Linux tambien.
  • GNOME DO, la descubrí no hace mucho, es dificil de explicar... pruebenla!
  • Avant Window Navigator, es el típico Dock de Mac para ver las ventanas, no consume recursos y es muy comodo al igual que varias funcionalidades del Compiz.
  • GTK Alternatives, es para configurar visualmente varios parametros de linux, sirve mucho para cuando tenes varias virtuals machine de java y otras nerdeadas.
Bueno, espero que sea un retorno con post más frecuentes!

lunes, marzo 09, 2009

Agile Open 2009

Durante el Viernes y el Sabado pasado estuve participando del Agile Open 09, un evento organizado por la Comunidad Latinoamericana de Metodologías Agiles que me gustó mucho por su dinamismo. Básicamente la idea era que el que quería, el viernes, proponga temas para discutir o presentar durante todo el sábado. Ahi fue donde propuse 3 temas:
  1. TDD y Arquitectura (algo parecido a lo que escribí en este post)
  2. Agile en equipos distribuidos con Rational Team Concert
  3. Metodologías Agiles en la Universidad
Despues la gente votó y esta fue la grilla final de temas.

Como pueden ver hubo temas muy interesantes y la mayoría para discutir filosofando un toque.
Yo el Sábado llegué a las 14, y pude participar solo de dos sesiones, y en una de ellas presenté el tema de TDD y Arquitectura y aca les dejo la presentación, tuve una buena recepción y se dieron lindas discusiones con participantes como Hernan Wilkinson, Abel Armoa (q no encuentro su blog), Jorge Silva, David Canteros y varias personas más que no se su nombre.
La verdad que la organización fue impecable, ojalá pueda seguir particpando de estos eventos, suman mucho.

martes, febrero 24, 2009

Un ingeniero perdido en la formalidad

Si bien el título del post suene negativo, la verdad que nada que ver, el resultado del viaje a Rio IV fue excelente, la verdad que me llevo un muy lindo recuerdo y conocimientos que creo que me van a servir para seguir ayudando a cumplir mi visión.

En pocas palabras, el por que del título, básicamente es buscarle un lado simpático a la sorpresa que me lleve al entender la diferencia entre las carreras de Licenciados e Ingenieros, si bien yo ya entendía que un rol (Ing) estaba más del lado de la industria y el otro (Lic) más en la investigación, realmente me sorprendió la distancia que hay entre ambos.
Hace tiempo que vengo interesado en la investigación, pero me dí cuenta que el tipo de investigación que pude ver de los cursos (principalmente en los últimos dos que tuve que dejar) está muy abstraido de la realidad y es prácticamente un modelo matemático. Yo no puedo juzgar absolutamente nada pero creo que estamos a años luz de poder llevar eso al campo industrial, definitivamente creo que si en algún momento emprendo un doctorado o algún tipo de investigación, definitivamente lo voy a hacer en un campo mucho más aplicado a la industria de lo contrario voy a fracasar.

Sobre los cursos que hice, "Contract-Based Development in Eiffel" y "Stringology", ambos muy diferentes pero me gustaron mucho, con respecto al primero vi un ejemplo claro de investigación aplicada, Meyer realmente es una eminencia en Informática y ha creado un muy lindo lenguaje que recomiendo al menos mirar, creo que los conceptos de DbC son un excelente complemento a TDD a la hora de especificar y asegurar el funcionamiento del software. El segundo, fue dado excelentemente por Yoan Pinzon, un doctor Colombiano que juro que en mi vida un profesor me pudo tener enganchado el 100x100 de las clases, tuvo una didactica increible. Aunque los temas fueron menos aplicables a mi realidad, básicamente hizo una reseña histórica de los diferentes algoritmos de búsqueda de Strings exacto y aproximado.

Bueno, eso es todo, creo que si puedo y los cursos me llaman la atención, voy a volver a la hermosa ciudad de Rio IV, aparte hubo muy buena onda de la gente que iba, me crucé con gente muy copada de Cba, E. Rios, Corrientes, San Juan y Uruguay que en algún momento nos volveremos a ver.

domingo, febrero 15, 2009

Partiendo para Rio Cuarto


En 30 minutos estoy saliendo para Rio Cuarto, Pcia. de Córdoba para particpar de la 16ª Escuela de Verano de Ciencias Informáticas, de la Universidad de Rio Cuarto junto a Nico Passerini. Creo que va a ser una muy linda experiencia y espero aprovechar de escuchar por 5 días a Mayer, que a proposito tiene un Ingles medio heavy (es Francés) el otro día me costó un poco, pero no se si fue por el mal sonido.
En fin, es una semana bastante a full donde se van a dar temas como:
Si, ya se, la imagen que puse no tiene nada que ver, pero la habia visto hace mucho y la quería poner. Estoy seguro que me voy a mantenerme alejado del Fernet... siempre lo digo el día despues de tomar, ayer me quedé hasta las 6AM jugando a la Play y compartiendo la bebida noble con amigos.

viernes, febrero 13, 2009

Por que existen los Arquitectos de Software?

Luego de dos semanas de mucho trabajo (por suerte lindo) llegué a una conclusión hablando con un colega....

"Yo creo que el rol del arquitecto se creo por la ineptitud de los PMs que dejaron de interesarse en los Sistemas (Solución que están construyendo) y el overhead metodológico causado por la poca confianza entre el cliente y el team del proyecto.... creo que si las metodologías agiles toman fuerza, los dos roles se pueden volver a unificar al mejor estilo Brooks"

ehhhhh dicho :) perdón pero estoy quemado

jueves, febrero 05, 2009

Meyer Confirmado

Este es el abstract
Teaching programming faces a host of challenges, due in particular to the unprecedented variety of student backgrounds and to the demands of the IT industry. Techniques that worked well in the seventies do not scale up to today's context. The "concepts or skills?" debate is more relevant than ever, especially in the ever more globalized world of software development.

For the past 6 years, we have taught introductory programming at ETH, based on an "outside-in" approach that makes it possible to introduce the reality of large software while emphasizing the principles of sound software development. This approach has resulted
in a forthcoming textbook ("Touch of Class: An Introduction to Programming Well
With Objects and Contracts", Springer-Verlag, May 2009). I will present the result of our experience, including metrics that we have systematically collected along the way, and draw conclusions regarding how to teach programming today. I will argue the task consists of
teaching twenty-six seminal concepts, and will explore one of them in depth.

lunes, enero 19, 2009

Bertrand Meyer en la Argentina!!!!!

Si, como leen, Bertrand alias "Design by Contract" o "Eiffel" Meyer estará en Febrero por la Argentina, primero paseando por Buenos Aires, donde estamos trando que de una conferencia en la UTN y luego en Rio Cuarto (Cba.) para participar de la 16ª Escuela de Verano de Ciencias Informáticas.
Realmente no tengo más que decir, sino esperar con muchas ansias para que se defina la fecha (una vez que la facu abra) y repasar un poco de Eiffel que justo estabamos hablando en el laburo de comenzar a verlo, sin saber que venía Meyer... realmente es una señal.