Mostrando las entradas con la etiqueta arquitectura de software. Mostrar todas las entradas
Mostrando las entradas con la etiqueta arquitectura de software. Mostrar todas las entradas

lunes, octubre 31, 2011

JUGAR: Evento Anual de Desarrolladores Java

El Martes 1ro de Noviembre, se llevará a cabo el primer evento anual de Java User Group de Argentina, JUGAR, un grupo bastante nuevo que viene haciendo eventos mensuales muy copados y cerveza bien fria. Lo que me gusta del grupo es que tienen un buen volumen por ser mensual y no hay talibanes puro Java, hay gente con ganas de aprender lenguajes nuevos y no tienen ningún problema en adoptar técnicas provenientes de otras tecnologías o comunidades.
En esta ocasión yo voy a hablar de Web Frameworks, sería algo así:

El objetivo es una rápida introducción a frameworks web actuales y emergentes, para crear aplicaciones web, describir sus ventajas y desventajas. Este es un resultado de una investigación luego de haber desarrollado aplicaciones Web por más de 10 años en diferentes plataformas y lenguajes.
Temario
1) ¿Que nos importa de un web framework?
2) Evolución de los frameworks
3) Frameworks maduros (GWT, SpringMVC, JEE5 Seam y Rails/Grails)
4) Comparación de frameworks
5) Frameworks emergentes (JEE6/CDI/Forge, Play, Wicket)
6) Otras ideas
7) Conclusión 


En el evento habrá charlas de Play!, Netty, Turneric, iPaaS, JRapid, Mulesoft y JBoss. Acá está la descripción del evento. 


Todavía quedan lugares, mi charla es a las 15hs. Los espero!

miércoles, julio 13, 2011

Introducción a Soluciones de BRMS

Aca les dejo un video que grabe armé hace varios meses en Red Hat y nunca lo publiqué. El objetivo es introducir teóricamente a soluciones de BRMS y motores de reglas, también expliqué un poco la arquitectura de JBoss BRMS la versión empresarial de Drools.

Introduccion Soluciones BRMS - Red Hat JBoss from JBossAlchemist on Vimeo.


Cualquier comentario será bien recibido.

miércoles, enero 12, 2011

Muy buena presentación sobre frameworks Web actuales

Es una presentación en ingles de Burr Sutter, un fellow de Red Hat que la tiene muy clara y es muy accesible, realmente un groso.

Web Frameworks on JBoss (Having It Your Way) from JBoss Developer on Vimeo.



Me gustaron varias cosas:
  • Como le dió la vuelta a la evolución de los Web Frameworks
  • Como ve el futuro de las aplicaciones (que comparto) creando RIAs (HTML5/JS) y pegandole a servicios "REST" procesando JSON
  • Todavia tengo que pensar un poco si me gusta JSF2, seguro me gusta muuuucho más que JSF (legacy) pero tengo que aprender
  • Algunos temas de JEE 6(CDI) vienen bien también
Espero que les guste, obviamente tiene su cuota corporativa y habla de que todos estos frameworks, SpringMVC, GWT, etc, etc pueden correr en JBoss fácilmente.

viernes, noviembre 12, 2010

Primera presentación en Red Hat - BRMS

Ayer fue mi primera vez como disertante en una conferencia/charla que organizó Red Hat como parte de los Technology Day, y en este caso le toco al Business Rule Management System (BRMS) o como se conoce en el mundo open source, Drools. Tuve la suerte de que la presentación no la di solo, sino que la di con el gran Gus Yasue, que la tiene más que clara con BRMS y este tipo de eventos, con mucha concurrencia (casi 50 personas) en el Restaurante A222.
Básicamente la agenda fue:
  1. Explicar el concepto de un Motor de Reglas
  2. Como JBoss BRMS implementa arquitecturalmente la plataforma
  3. Una demo del ciclo de vida de reglas de como crear, tesear y deployar una regla
  4. Beneficios
La audiencia estaba enganchada y tuvo muchas preguntas, y por sobre todo ellos tuve a dos compañeros de lujo en primera fila, Gastón Coco y Santiago Blanco, de APIT.
En fin, fue una muy buena experiencia para romper el hielo y comenzar a representar a Red Hat en eventos de este tipo (aparte de los más pequeños con un cliente en particular), creo que se sacaron fotos e incluso Coco iba a twittear algo, todavía no vi nada, después las subo como así también un video que estoy armando un poco más resumido.

sábado, junio 19, 2010

Buscando la certificación de IT Architect

Como comenté en un post anterior, a principio de año submití un paquete de 40 páginas sobre mi experiencia, conocimientos, skills, educación y otras cosas más para certificar en la carrera de arquitecto en IBM donde tuve que describir mis 10 años de experiencia en IT y con más detalle los últimos 4 años como arquitecto. La primera revisión pasó sin problemas, pero cuando tuve las 3 entrevistas con otros 3 "colegas" no me fue tambien, y terminaron declinando mi certificación. Era esperable, el proceso es muy tedioso y como toda certificación, en algunos aspectos tiene temas muy "fordistas" y "metodológicos" que si no usas los nombres correctos para ciertos elementos te penan muchísimo. En fin, el proceso es bastante transparente y sigo creyendo y es por eso que el més que viene vuelvo a presentarme. Ahora bien, que fue lo que determinaron que no sabia? bueno aca les dejo un detalle:
1) No tengo experiencia aplicando una metodología de diseño para crear arquitecturas.
2) No trabajé con muchos tipos de arquitectuas y plataformas.
3) No conozco los "key trend" de las industrias en las que trabaje.
Estos son tres puntos de veintipico de otros requerimientos. Obviamente estoy de acuerdo con el último punto, el 3, que la verdad no le di ni bola cuando armé mi paquete y ni lo charlé con mi mentor, sabía que ese punto no lo tenia claro.
Con respecto a los otros dos, me sorprendí muchísimo, debido a que en IBM doy cursos explicando la metodología de diseño de arquitectura y a su vez apliqué y conozco otros como Agile Modeling y ADD. Y el 2do punto, tambien de pareció ridículo, pero luego vi que mi paquete no estaba taaaaan claro que tengo experiencia en varias plataformas y tipos de arquitectura (batch, fat client, thin client, 3 tier, client-server), en fin, fue un golpe muy duro cuando recibí el resultado y 2 de los 3 puntos que no pasé eran incorrectos y fallé en la comunicación. Ahora bien, el 2 de Julio arranco el proceso nuevamente con el objetivo de obtener la certificación junto a mi mentor Kenn Roberson que me ayuda, cochea y contiene en mis momentos de catarsis desde Dallas.

martes, abril 27, 2010

Curso de Arquitecturas de Software

Hace unos meses, junto con dos grandes profesionales (Ing. Gastón Escobar y Ing. Ulises Martins), con los que curse gran parte de mi carrera, nos pusimos de acuerdo para lanzar un curso eLearning sobre Arquitectura de Software, venimos trabajando muy duro y ya estamos a punto de comenzar, los invito a mirar los contenidos y quien quiera anotarse, es muy bienvenido :)

Creo que luego de dar 5 años APIT y trabajar como arquitecto (cada uno de nosotros) en grandes empresas como IBM, Oracle, Accenture e interactuar día a día con otros profesionales en el ambiente académico y web, contamos con una madurez que nos permite abordar un tema tan crítico con propiedad.

Este curso es dictado a través de la Secretaria de Cultura y Extensión Universitaria de la UTN, y tiene un costo. Aca les dejo el link para más información:

Curso de Arquitecturas de Software

jueves, febrero 25, 2010

Arquitectura de Software, ciencia? ingenieria? arte? o alquimia?

Siempre es un tema que sale con birras de por medio y nunca llegamos a la conclusión, digamos que:
1. Es ciencia? La verdad que no, sin entrar en detalle en la definición, la arquitectura de software está claramente lejos de la formalización, gracias adiós, jamás podría pensar un modelo formal para manejar las variables que se consideran para crear una arquitectura, y menos que eso poder validarla. Aunque hay ciertos aspectos de la ciencia que si son interesantes y se usan para tomar decisiones, se me ocurren temas de disponibilidad.
2. Es una ingeniería? Aca creo que nos vamos acercando un poco, aunque todavía no creo que el software haya llegado a la ingeniería todavía, siendo ingeniero (de sistemas, no de software) podría decir que nos falta mucha madurez para tener un un método que me permita obtener el mismo resultado (o parecido) y asegurar la completitud de las necesidades. Obviamente esa es la manera conservadora de ver la ingeniería.
3. Es un arte? Aca estamos un poco más cerca, definitivamente... el proceso de creación de arquitectura está más cerca de la creatividad que de los metodos formales de diseño. En que cabeza cabe que el diseño puede ser "formalizado" y definido en un proceso? Está claro que pueden haber guias, experiencias documentadas, ejemplos, maneras de comunicar un diseño, pero ahora tener un proceso (input-X-output) repetitivo en diferentes contextos y situaciones, yo no creo. Ahora tampoco creo que es puramente artístico la creación de la arquitectura, se supone que debemos que elegir la solución más simple, con mayor reuso (assets, patterns, estilos, etc) y restringidos por tiemos y costos, esta ultima parte destruye (felizmente) la fumatina de los arquitectos. Que según Esteban Lorenzano "Arquitecto con tiempo es más peligroso que mono con navaja"

Ahora bien, si bien creo que la arquitectura de software tiene algunos componentes de la ciencia, se podría decir que está muy cerca de la ingeniería y tiene mucho del arte, he llegado a la conclusión que yo a la arquitectura de software encasillaría dentro de lo que es una alquimia, por que? bueno.... algunos puntos:
  • La alquimia se basa en algunos aspectos de la ciencia, sobre todo las bases
  • La experiencia y sabiduría de quien la practica es el elemento fundamental de la alquimia
  • Arte, que más decir aca la alquimia definitivamente está muy influenciado por la creatividad y la constante expresión
  • El aprendizaje constante de nuevas técnicas
  • La búsqueda del resultado/transformación más apropiado
  • La amplitud recibir y compartir experiencias místicas dentro del proceso
Bueno, este es mi aporte del mes :) opiniones/insultos más que bien recibidos/as

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.

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, 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.

sábado, noviembre 29, 2008

Otro cuatrimestre, otro parcial

Como todos los cuatrimestres, aca está el parcial que tomamos en APIT, fue algo parecido al parcial del cuatrimestre pasado pero esta vez, utilizamos un BPM (simplificado) como base para tomar las decisiones arquitectónicas.

Obviamente el objetivo de este parcial es poder hacer pensar a los estudiantes como un arquitecto sin tener que estudiar de memoria, cosa que detesto. Está claro que fue complicado ya que con una sola clase de SOA e Integración, el BPM es uno de los conceptos más complicados.
Como pueden ver pudimos lograr unificar todos las unidades de la materia, el único tema que quedó afuera fueron las metodolgías que realmente son un punto fundamental en la materia.
Asi que comentearios, sugerencias?

domingo, octubre 19, 2008

TDD desde una perspectiva arquitectural

La semana pasada di una conferencia por teléfono para todos los arquitectos que trabajan para proyectos internos de IBM y que con planes de utilizar metodologías ágile y/o ya están utilizando. Fue una linda y desafiante experiencia debido a que había gente de muchas partes del mundo (USA, Francia, India, Sudamerica, etc), nunca había dado una charla técnica en inglés (sacando las presentaciones de arquitectura de la aplicación) y yo pongo un 4, creo que aprobé, pero tengo mucho que mejorar. Independientemente de esto, creo que lo más interesante que quiero comentar en el post es sobre las influencias que tiene TDD en lo arquitectural, esto es el resultado a una pequeña investigación que vengo haciendo para APIT sobre Arquitecturas y Metodologías Agiles. El contenido básicamente fue el siguiente.

Facts acerca de TDD
  • TDD se compone de, Unit Test, Test Automation, Test First y Enfoque iterativo con refactoring
  • TDD es una técnica de diseño y es utilizada por Desarrolladores (Código).
  • TDD incrementa la calidad en el código facilitando el cambio en el software
  • TDD reduce defectos y permite tener un testeo de regresion constante
  • El manejo de dependencias es la parte más dificil de TDD
Requerimientos no funcionales impactados por TDD
Como siempre digo, las decisiones arquitecturales habilitan los atributos de calidad, pero obviamente no siempre los garantizan, hay otros aspectos y decisiones que entran en juego y el arquitecto no siempre puede manejar. Pero inevitablemente, la Arquitectura es la principal responsable de garantizarlos, y como arquitectos debemos buscar las formas, y TDD es una de ellas, con lo cual considero que TDD permite lograr los siguientes atributos de calidad:
Maintainability: Siguiendo las guías de Feathers, primero haciendo fallar el test case y luego corregirlo, la mantenibilidad se vuelve un detalle, lo mismo pasa con lo simple que queda el código y con la no necesidad de perder tiempo en un debugger. No nos olvidemos del regression test aca.
Extensibility / Modifiability: Esto es básico, como excelente técnica de diseño, al tiempo de aplicarla la productividad aumenta y el código queda mucho mas simple.
Reliability: Tiene que ver con la robustez en lo que respecta a las reestructuraciones o cambios en la arquitectura, un codigo que se construyo utilizando TDD, difícilmente sea complicado de modificar a cambios inesperados
Geographic (including Localization): TDD es una excelente técnica de comunicación, para equipos distribuidos es fundamental, tener bien claro y definido cual es el comportamiento esperado, no se paga con mastercard
Time: Ya hablé de la Productividad que trae aparejada el Test First, aca hay un paper que habla de los estudios que aumenta la productividad, hasta que lo leí fue solo un feeling mio y personal, ahora se ve que está probado.

Decisiones Arquitectónicas para Soportar TDD
Ahora, como (re) diseñamos nuestra arquitectura para soportar el uso de TDD, bueno, lo encaré desde el punto de vista de "Tácticas y Principios de Diseño" y "Estilos Arquitectónicos y Diseño Estratégico":
Tácticas y Principios de Diseño
  • Separation of Concerns.
    Una correcta separación de módulos, permite un mejor manejo de la complejidad y también permite el reuso del lado de los Test Cases (que no es poco)
  • Separación de la interface de la implementación.
    Hace falta explicar esto? Bueno, principalmente es para el manejo de dependencias y el trabajo en paralelo

  • Design by Contract
    Dos técnicas complementarias en el bajo nivel, desde un punto de vista arquitectural, definir los pre/post conditions entre módulos es básico
  • Informacion hiding
    Previene cambios no deseados
  • Prevent Ripple Effects
    Con 8 tipos de dependencias entre módulos, nos ayuda a no tener dependencias ocultas entre módulos, esto es muy importante, muchas veces hay modulos que dependen en variables de contexto y está oculta, TDD ayuda a evitarlo.
Estilos Arquitectónicos y Diseño Estratégico
Mas allá de cosas específicas, hay estilos arquitectónicos que ayudan muchísimo al uso de TDD en aplicaciones empresariales, estos son algunos:
  • Inversion of Control/Dependency Injection
    Aca no hay nada que discutir, por excelencia permite permite el uso de TDD, sumado a esto la separación de interface de la implementación.
  • Hierarchical Layers
    Estilo super conocido, con un modelo sencillo de dependencias, permite el coverage de una layer solo mockeando una layer inferior. Obviamente este patrón tiene cosas malas aparejadas, como la dificultad por encontrar las abstracciones y la modificabilidad.
  • Domain Driven Design
    Un estilo muy interesante para dominios complejos, se lleva muy bien con el Dependency Injections y la Iteratividad.
  • Transaction Scripts
    Modelo sencillo, en donde se puede lograr una completa de cada servicios a testear.
Acá estuve hablando como 30 minutos, es un poco difícil plasmarlo en un post, pero obviamente es la parte más interesante de la charla (al menos para mi)

Quejas de otros profesionales para implementar TDD y como solucionarla
No siempre es fácil convencer el uso del TDD, hay muchas quejas que hay que afrontar, aca puse las que fui recolectando, en algún otro post voy a poner lo que dije verbalmente, así que por ahora se lo dejo a uds para que piensen :)
Project Managers
  • Toma mucho tiempo para escribir test y termina impactando en la productividad.
  • Me siento mal por dejar afuera del proyecto a Testers y gente de QA
Architects
  • No me importa TDD, es una técnica de bajo nivel para programadores
  • No es necesario to test drive el código, la arquitectura cubre todas las posibilidades
Application Developers
  • Toma mucho tiempo en correr los test cases
  • No es mi trabajo testear mi código
  • Pero compila!
  • A mi me pagan por escribir código, no para escribir tests
  • Las dependencias son difíciles de manejar y toman mucho tiempo
Esto es todo, espero que les guste y espero feedback! realmente quiero escribir un paper con esto

sábado, julio 05, 2008

Parcial de Arquitectura (APIT) esta vez le tocó al Broker

El martes pasado tomamos el parcial de la materia. A diferencias de casi todas las materias de la UTN, nuestro parcial apunta a que los alumnos piensen como Arquitectos dada ciertas restricciones y puedan tomar las decisiones justificando correctamente, realmente cada una de las pregunta tiene infinitas respuestas como así también sus justificaciones. Estamos muy conformes (al igual que los alumnos de años anteriores) con esta metodología, ya que estudies lo que estudies, si no conceptualizaron los elementos de la Arquitectura de Software que enseñamos en la materia, es dificil que aprueben, es más permitimos apuntes, presentas... o sea carpeta abierta que realmente no sirve para mucho si no estás dispuesto a pensar.
Aca les dejo una copia y ojala yo hubiese tenido más parciales de estos en aquellos años felices como estudiante :)

Voy a ver si a lo largo del finde escribo algunas respuestas que podrían haber sido correctas :) todavía estoy corrigiendo los parciales.

jueves, mayo 01, 2008

Primeros 4 días en Raleigh

Ya van 4 días en North Carolina y la verdad que muchas cosas pasaron, mucha copada tanto en lo profesional como en lo personal. Una cosa que me impresionó totalmente es la organización, es increíble, todo, desde el aeropuerto, las rutas, el alquiler del auto, el hotel... fue increíble llegar y tener prácticamente todo servido. Excepto por a valija que nunca llegó a tiempo, así que tuve que hacer el reporte pero el mismo domingo a las 11:30 ya estaba en la puerta del Hotel.
Mas o menos la cosa vino así, el viaje fue Bs As->Miami, Miami->Raleigh/Durham. Llegamos al rededor de las 12 del mediodía y lo primero que hicimos fue buscar el auto, también hubo una pequeña equivocación y ligué un Corolla negro, podría decir que es el auto que deseo tener de aca a un tiempo, asi que con eso pasó el mal gusto de no tener la valija en mi poder :)
El tema es así con la zona, hay dos ciudades muy cercas, una es Raleigh y la otra es Durham, ambas están muy cercas, alrededor de 20 mintos por autopista. En el medio de ellas se encuentra el Aeropuerto y el RTP (Research Triangle Park), nosotros estamos parando en el centro de Raleigh, bastante lejos de la oficina que está en el RTP... más o menos tardamos 30 minutos para llegar de un lado al otro. Las oficinas de IBM son increíbles, son las más grande que tiene en todo el mundo, son más de 30 edificios, de uno a otro es probable que tengas que ir en auto, hay varios comedores y starbucks.
El Hotel, la verdad que bastante bueno (de la cadena Hilton) me sorprendió bastante, tiene un pub muy muy copado con 12 tipos cervezas tiradas, 40 tvs ydos LCDs (los más grandes que existen) transmitiendo en HDV, la verda que increible. Tambien tiene una linda pileta climatizada y las habitaciones son bastantes agradables, mañana o pasado voy a postear un par de fotos.
Con respecto al trabajo, la verdad que venimos bastante bien, estamos de a poco tratando de cumplir los objetivos pero se me complica un poco ya que tengo mucho trabajo del día a día atrasado. La gente con la que estoy es muy copada y de distintos países, como India, Singapore e Inglaterra y obviamente estadounidenses. Somos alrededor de 22 personas en diferentes salas, trabajando e intercambiando ideas y conocimiento constantemente.
Realmente me impresionó muchísimo como todas las decisiones que venimos tomando y comunicando por telefono y ppts fueron excelentemente entendidas y muy bien trabajadas, ahora estamos de alguna manera uniendo todas las patas y la verdad que van encajando perfectamente. Estos días estuvimos trabajando muy cerca del Arquitecto de Build, Tony Marcotte, realmente me sorprendió tanto personalmente como profesionalmente, es una persona con la que tuve muy poca comunicación (pero efectiva) por teléfono y f2f fue genial, es increible como pudo desde mis diagramas de Componentes, Unidades de Deploy y Diagrama de Zonas de Red/Nodos armar y automatizar todo el proceso de Build and Deploy y dejar las cosas preparadas para comenzar a usar el Continuous Integration Server con Rational Build Forge. Estamos prepearando una agilización para este proyecto y creo que vamos a tener que innovar bastante ya que los procesos de mi organización son bastante tradicionales y waterfall (más de esto en el futuro).
La onda en general es muy buena, la PM, que es de Dallas es una fenómena, nos dá mucha flexibilidad y soporte en cuanto a las decisiones que tomemos, así que no me puedo quejar.
El día a día es bastante agitado, los levantamos a las 7:30 y volvemos a las 12:30, tratamos de salir de la oficina a las 17, nos quedamos un rato "hanging out", una nueva frase que aprendí, en criollo es "boludeando", luego vamos a comer o tomar algo y luego nos quedamos hasta tarde charlando y tomando alguna cervezas, ayer vimos en un plasma de 42 el partido de los spurs contra phenix.
Bueno, son las 1:20 AM aca y me estoy cayendo del sueño, en cuanto tenga algo más para contar lo voy a hacer, es probable que este fin de nos vayamos a Washington y tenga que cerrar algunas presentaciones de la Arquitectura para el Martes, así que hasta ese día dudo que pueda postear algo, pero voy a intentarlo.

martes, abril 01, 2008

Y arrancó un nuevo cuatrimestre en APIT

Un día bastante atípico en el cual a las 5 de la tarde parecía de noche y caía una cantidad de agua increible, y yo en el medio de una call con un colega de Brasil hablando en ingles (patético), se pasaba el tiempo y no podía salir para la facu, donde hoy era el primer cuatrimestre... el tema fue que recien a las 18:30 partimos para la facu y era un diluvio, no menos de 3 choques se pudieron observar en las 20km que tengo que recorrer por panamericana, gral paz y lugones para llegar a la facultad, lo bueno, venía con dos de mis dos nerds preferidos de IBM en el auto (Gona y Andres), lo cual lo hizo bastante ameno el viaje, salieron temas como metodologías ágiles e ingeniería en software en general, justo el tema que dábamos hoy en la materia.

La cosa es que llegué bastante tarde a la clase y Nico ya había arrancada con la presentación de la materia, y lo primero que me encuentro es un curso repleto y cuando entro al aula de repente un fuerte aplauso por haber llegado (tarde obvio) partio de las manos de Nico y seguido por todo el curso, en fin linda recibida :)

Tengo todas las expectativas para este cuatrimestre ya que en el último tiempo, tuve bastantes nuevos desafíos laborales y que quiero compartir como ejemplo a lo largo de la teoría que exponemos en la materia. Con respecto al cronograma y tp, la verdad que no cambia demasiado, seguimos repitiendo un poco todo, que es lo que nos viene dando muy buenos resultados. Un poco la diferencia de este cuatrimestre es que no lo tenemos más al Lic. Carlos Leone, como representante formal, sino que a partir de ahora yo soy el Profesor Adjunto de la materia, obviamente falta un poco de papelerío pero todo parece indicar que sale. Así que todo la parte administrativa, ahora es mía... es pero que no me coma mucho tiempo.

Como todos los años elegimos los topicos de los papers a ser desarrollados y nos quedó algo asi:
  • RIA Offline, es posible?
  • Métricas de Arquitectura
  • Domain Specific Languages
  • Lenguajes Dinámicos
  • Arquitectura en metodologías ágiles
  • Software as a Service (SaaS)
  • Arquitectura de Aplicacions Móbiles
Donde yo probablemente me incline a tutorear los temas de RIA (que original no?), Métricas de Arquitecturas y SaaS.

No me quiero olvidar de decir que se nos unió a la catedra Santiago Blanco, un excelente alumno del cuatrimestre pasado y con mucha experiencia, acá pueden conocer un poco más de el.

Esto es todo.

sábado, marzo 22, 2008

En que ando... lost, snoop, apit, asit, peopleware

Hace bastante que no escribo y la verdad que no es por que no quiero sino que estoy teniendo unas semanas bastante ocupadas preparando y trabajando muchísimo, aca van algunas de las cosas:
  1. Una de las cosas que me permite bajar un poco a tierra (aunque me deja muchas veces pensando) es esta serie adictiva de LOST, en unn fin de semana con mecha nos pusimos al día y nos miramos 8 capítulos seguidos, la verdad que es una enfermedad, pero ya que estoy comparto un par de links interesantes (nada de spoilers), lostzilla.com, lostpedia.com, abc.go.com/primetime/lost/
  2. En ASIT, mi actual proyecto, todavía estamos en una etapa de mucha preparación en donde mi equipo todavía no es el owner del código, ya que hay otro equipo cerrando algunos features y yo estoy más que nada creando algunos documentos de arquitectura utilizando la metodología interna de IBM (de arquitecture) que está bastante buena, sobre todo por que tiene un IDE (sobre eclipse) que te permite llevar todo el crecimiento evolutivo de la arquitectura y mantener todo relacionado, empezando por un System Context, pasando por requerimientos, use cases, componentes, unidades de deploy, nodos, zonas de red y obviamente pudiendo trackear todas las decisiones arquitecturales, assumptions, etc. La verdad que si bien no hay mucha adrenalina, el hecho de crear los diagramas y comunicarlos a diferentes stakeholders como Build Architects, Developers, Infrastructure Architects, Analistas y PM es más que un lindo desafío. Por el momento estoy solo creando documentos uni-viewpoints, bastante distinto a lo que digo en la materia, pero bue.... el proyecto está un poco a las corridas y se hace lo que se puede. La parte buena de todo este que ya se sumaron dos developers (Gabriel Benemergui y Ruben Ghio) en Argentina de gente excelente, eso como arquitecto me deja más que tranquilo.
  3. Con respecto a APIT, la verdad que le vengo dedicando poco y nada, la idea que este cuatrimestre, otra vez de 14 clases va a ser bastante parecido a los dos anteriores, pero estoy muy contento por que generalmente los primeros cuatrimestres el nivel de la gente que cursa es muuuuuuy superior al del segundo, aunque todos los ayudantes que tenemos en la materia salieron del segundo cuatrimestre :)
  4. Esteban Lorenzano, me invitó a participar del Snoop Update 08' para dar una charla sobre los problemas actuales de las aplicaciones web y que soluciones radicales existen, y aquí vienen Ruby on Rails y Seaside, la verdad que estoy muy contento por que es un tema que me gusta mucho y vengo trabajando de costado con RoR. Lo que vamos a tratar de hacer es crear un paper que guie la presentación, voy a postear un poco más sobre esto.
  5. Y por ultimo, asi no los aburro, en este ultimo tiempo estoy terminando de leer Peopleware — Productive Projects and Teams, la verdad que es un libro super interesante y me sorprendió al mismo nivel que lo hizo, Mythical Man Month, lo recomiendo a todos los que tienen aspiraciones de líderes o ya lo son. Es más creo que las metodologías ágiles sacaron muchas cosas de este libro.

lunes, enero 28, 2008

Charlas en el 2008 que me gustaría dar o escuchar

Como todos los años, junto a la gente técnica y copada de IBM planificamos una serie de charlar en las cuales intercambiamos conocimiento. Lo venimos haciendo desde el 2005 y la verdad que son de muy buena calidad, lo único malo es que desde que las hacemos vía telefónica, se perdió bastante el debate, cosa que era lo más importante cuando empezamos. Con un objetivo de listar y que me ayuden sobre que temas sería importante no olvidar este año:
  • Creo que Grails debería ser un tema a escuchar, más allá de Groovy, creo que ver como el mundo Java desde el lado de scripting adaptó RoR sería algo interesante de ver.
  • Groovy sigue siendo algo que no hay que perder de viste, sobre todo para incorporar en aplicaciones Java, creo que usarlo como medio de contenido para extender o modificar la aplicacion en runtime puede ser muy interesante. Hoy generalmente usamos XML, pero creo que Groovy podría ser tambien interesante.
  • Ruby on Rail, todavía me debo armar una charla sobre este framework junto a Damian Garcia, no tanto en la gilada del scaffolding (CRUDs) , sinó en los principios y ventajas que tiene construido sobre un gran lenguaje.
  • Creo que Continuation seguirá siendo un area en la cual tenemos que seguir investigando y aprendiendo para la correcta implementación.
  • Uno de los temas que hay que ir teniendo en cuenta es la Performance en las aplicaciones RIA con CSS y JavaScript, sobre todo con los ítems de usabilidad y cantidad de pedidos ajax que se están haciendo por pantalla. Creo que muy pocos lo estan teniendo en cuenta y es un tema que hay que ver de manera urgente.
  • Creo que SOA va a seguir siendo un tema interesante de charlar, sobre todo temas de armado de equipos, prácticas de desarrollo (construcción), integración continua en desarrollos de integración, por que no TDD para BPM, todo ese tipo de cosas que están muy maduras en aplicaciones, pero esta vez para integración.
  • Yo calculo que voy a dar alguna otra charla de TDD un poco más avanzada, y quizá ver la manera de como enganchar el TDD con los frameworks de desarrollo, la idea es como ver de facilitar el TDD con un framework.
  • Por que no algo de JavaScript, me parece un lenguaje increíble, y quiero que se use correctamente, ya por el 2000 programaba en JavaScript y sentía que lo hacia bien y sabia, pero ahora me doy cuenta la manera en la cual lo usaba era patética, y lo que me molesta que hoy exista gente que primero, lo menosprecia y por otro lado lo use de la manera que yo lo usaba en el 2000. Me gustaría ver temas de prototipado, clousures, performance, entornos de desarrollo, interacción con el DOM (cualquiera sea) y tdd.
  • Otra charla que me gustaría dar es sobre los AntiPatters de los patrones de diseño... quiero erradicar el uso del Singleton indiscriminado, no lo soporto más... quiero que la gente antes de implementar un patron de diseño piense por que y no que lo use por el solo hecho de que soluciona el problema, si no que lo use por que es la solución más simple de todas. También quiero que se priorice la orientación a objetos por sobre el uso de patrones de diseño, muchas veces los patterns te obligan a separar el comportamiento del estado y eso si que está muy mal, en algunos casos, muchas veces cometí este error y creo que pudo hablar de ello.
  • Me gustaría escuchar una charla sobre los 6 principios de Robert C. Martins de la programación y diseño orientado a objetos. Introductorio sobre Patterns y Principios - http://www.objectmentor.com/resources/articles/Principles_and_Patterns.pdf
  • Un colega ya está preparando para presentar un resumen del libro de Pragmatic Programmer, biblia del programador cuando entra a IBM, o al menos a mi area.
  • Creo que algo de Earlang me gustaría escuchar, es un lenguaje que viene sonando y lo poco que pude ver es interesante sobre todo por el uso del paradigma funcional.
  • Y por que no DSLs... o en Ruby o LISP
Esto es lo que se me ocurre por ahora, por favor tienen algo para aconsejar, se los agradezco...