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