Jan 25, 2008

Sobre diseño y algo más ... reply

Estos dias estuve leyendo un post muy interesante sobre diseño y algo más de alguien a quién respeto mucho, Hernán Wilkinson. Y este post de hoy esta dedicado a hablar sobre eso y tratar de explicar un poco mas extensamente mi punto de vista.

En primer lugar hay una distancia insalvable entre la experiencia de Hernán y la mía, y uno de los grandes hitos que yo no tengo el gusto de conocer es Smalltalk como experiencia de trabajo. Aclarado esto voy a poner sobre la mesa algunas cosas basado en mi [no muy larga] experiencia como desarrollador Java.

Lo primero que me llama la atención del post es que hoy en día se confunde la herramienta con el objetivo o dicho en las palabras de Hernán ..."es la confusión del fin con el medio, donde el medio pasa a ser el fin [...] Cuando a gente que estoy entrevistando, le pregunto si saben diseñar utilizando objetos respondan que sí, que saben UML"... fragmento con el que estoy de acuerdo, la idea no esta en saber tal o cual herramienta, sino comprender el concepto y saber aplicarlo de la manera más acertada.

Vamos a lo que quería explayar. Diseño como actividad implica un cierto grado de conocimiento (patrones, arquitecturas, frameworks, limitaciones, etc) y soy creyente de que esta actividad debe hacerse de manera abstracta al lenguaje
que estamos usando (siempre que hablemos de OOP). En resumen, diseñar es modelar un problema, relacionar los objetos y determinar su comportamiento para llegar a un objetivo claro (la resolución de un problema). La disyuntiva de diseñar en favor de ciertos cambios (pensando en el futuro) y la de diseñar pensando sólo en el ahora es un tema que puede dar para hablar mas de algunos garabatos que puedo expresar aquí. Pero creo fervorosamente que siempre es necesario contemplar algunos posibles cambios que puedan sucederse. Adivinar el futuro es casi imposible, pero prevenir siempre es mejor que curar y mi corta experiencia como diseñador me ha demostrado que no me había equivocado.

Si bien la documentación como artefacto es mas bién estática, siempre es necesaria. No digo que haya que documentar hasta la última línea de código de la última release, pero si digo que una visión global de lo que tenemos debería formar parte de todo desarrollo, llamenló documentación de arquitectura o un simple diagrama de clases que permita saber donde estamos parados y conocer el contexto de referencia, al menos delinearlo.

Quiero recalcar que estoy de acuerdo en que diseñar no implica tener que hacer un millón de documentos, eso es casi absurdo, pero no concuerdo en diseñar usando el código. Como dije antes, no me parece feliz tener ideas en la cabeza y expresarlas en código de manera directa [tal vez entendí mal]. Mi utopía es tener un gran block anotador, del tamaño de un pizarron, e ir bosquejando las ideas y las iteraciones en reuniones de desarrollo, donde todos podamos ver como el pensamiento se va alineando a la solución definitiva y como cada vez que se quiere solucionar un nuevo problema se pueda ver lo que se hizo y como podemos alinear una solución con la actual. Esto es siempre que estemos hablando de proyectos medianos/grandes que requieren una integración continua. He visto como se hacen cosas mas de una vez y se cometen errores por no tener, lo que Edward De Bono llama "pausa creativa" y es tan simple como pensar (con conocimiento del contexto) como solucionar un problema unos minutos antes de "meter un conejo", "atarlo con alambre", hacerlo asi porque lo demás esta hecho así o porque después refactorizamos. El viejo DRY parece perderse en la falta de conocimiento de una aplicación o más bien en la vorágine de somos "ágiles" y podemos tenerlo para ayer.

No estoy en desacuerdo con TDD, creo que es una gran metodología, pero no me parece que sea absolutamente feliz.

Este post se esta haciendo largo, lo leo y lo releo y no puedo cerrar mi idea... espero se entienda. Me gustó el post de Hernán, es un tema de discusión que me parece apasionante, quería tratar de compartir sus ideas y ponerlas con las mías (tal vez un poco irrespetuosamente).

Hernán ojalá algún día podamos sentarnos a tomar un café y charlar sobre esto, realmente me encantaría ....

Bueno, era esto... les dejo arriba el link al blog, leanló no tiene desperdicio alguno de principio a fin.

Saludos!

elmasse!®

Jan 11, 2008

Un segundo de felicidad...

Hace varios dias que vengo leyendo FAUSTO, es una obra increible, desde lo literario con tanto caudal de vocabulario hasta las ideas y pensamientos que refleja. Disfruto mucho leyendo cuando el autor te obliga a saborear cada línea, a leer con paciencia y te va llevando por recónditos espacios de la mente.
Lo que me llama la atención y he aquí el porqué de este blog de hoy, es que el drama faústico se basa en un pacto con el diablo a cambio de un instante de felicidad (nota: no soy quién para opinar sobre esto, no soy un erudito en filosofía y mucho menos en literatura) y recordaba todo esto cuando venía camino a mi casa luego de un día mas de trabajo.
Sobre Rivadavía en Caballito hay un mendigo de varios años, que realmente me da mucha pena cuando lo veo porque podría tener tranquilamente la edad de mi abuelo y eso mueve algunas cosas en mí. El punto es que hoy viví algo mágico, mas allá de las monedas o limosnas que este hombre pueda recibir, hoy lo ví reir y sentirse muy feliz cuando una nena, que no tendría mas de 4 años, se acercó, le dió unas monedas y le dió un beso y ese acto tan simple desbarató en mi todas mis preocupaciones y pensamientos del momento para poner en primer plano justamente eso, lo simple que puede ser un estado de felicidad pura y extremadamente sencilla. Pensaba en Fausto y su drama, pensaba en las cosas que dejamos pasar, aquellas que no vemos porque la vida esta llena de otras cosas que nos quitan lo mágico de los pequeños momentos.
Estos son los pequeños milagros que llenan la vida de los que no tienen nada, mas allá de una moneda. Quiénes tenemos algo no pensamos por lo general en esas cosas y nos preocupamos por acumular cosas que son efímeras e inútiles.

Y nada, era decir esto... alguien dijo una vez "La vida es eso que pasa mientras estamos preocupados haciendo cosas"