Monday, March 25, 2013

Arquitectura Efímera.

Tenía en mente empezar esta entrada haciendo referencia al disco de Fangoria que se llama igual que esta entrada: "Arquitectura Efímera". Referencia, ahora que lo pienso, un poco tonta que pensaba aprovechar para hacer un guiño a algunos colegas que seguramente serían los únicos a los que les podría hacer un poco de gracia.

El caso es que buscando por Google imágenes o vídeos para ilustrar la tontería, me he enterado de que existe de verdad una disciplina de la Arquitectura que se llama así: Arquitectura Efímera, y que se centra en el diseño de construcciones que no tienen propósito de perdurar en el tiempo. Por ejemplo: decorados, ferias, stands, etc.

Y ahora que ya tengo la entradilla destrozada, voy al grano ...

Acabo de terminar de leer el libro "97 cosas que todo programador debería saber", de la editorial O'Reilly. Es un libro que, como su propio título aventura, se divide en 97 capítulos, cada uno escrito por un gurú de la programación.
No obstante, se subtitula como: "Conocimiento colectivo de los expertos" (¿como lo viste?).

En realidad, se nota que a muchos de los expertos lo pilló la editorial "a salto de mata"  y los comprometieron a traición para colaborar en el libro. Algunos expertos se vengaron malamente escribiendo cosas como "Algo mágico ocurre cuando testers y programadores trabajan juntos." (sic). O algún que otro capítulo que es una fumada en toda regla de principio a fin.

De todas formas, la mayoría son consejos muy útiles e interesantes para cualquier programador que quiera mejorar.
Uno de los consejos que mas me ha llamado la atención de todos; me ha llamado tanto la atención como para escribir una entrada en este blog que lleva tres años abandonado, es el que escribe Yuriy Zubareb, a la sazón, arquitecto en la consultora ThoughtWorks (donde trabajan gurús como Martin Fowler o Rebecca Parsons), en que habla justamente de lo efímero que es el código, o mejor dicho, que no es.

Bueno, en realidad su consejo no es ese. Su consejo es: "Escribe código como si fueras a mantenerlo el resto de tus días". Que, a la postre, termina siendo un alegato en pro de la mantenibilidad y la extensibilidad del código, ponerse en la piel de compañero que lo va a mantener, etc.

Al terminar su capítulo deja la siguiente frase (aviso, traducción mía que puede ser mas o menos chapucera):

Si te paras a pensarlo, el código que escribiste hace muchos años sigue influyendo en tu carrera, quieras o no. Sin querer, vas dejando una rastro de tus conocimientos, actitud, tenacidad, profesionalidad, nivel de compromiso y grado de diversión (N. del T: degree of enjoyment, que no se traducir mejor.) en cada método, clase y módulo que has diseñado y escrito. La gente se formará opiniones sobre tí basándose en el código que vean. Si estas opiniones son negativas, sacarás menos rendimiento a tu carrera de lo que esperas.
Puede parecer una obviedad pero estoy convencido de que muy poca gente que se dedica (o que nos dedicamos, me incluyo) a programar lo habíamos pensado así. No somos conscientes del rastro que estamos dejando detrás de nosotros. El software que construimos es menos efímero de lo que creemos en un principio y, si lo pensamos da hasta vértigo (al que lo tenga claro, que hay alguno que le da todo absolutamente igual. Eso sí, luego se quejan...)
En mi caso, haciendo memoria, creo que la mayoría de lo que he escrito en los últimos 9 años sigue rondando por ahí...aunque con los recortes y la crisis ya no estoy del todo seguro de que aún quede alguien por ahí, cagándose en todo al utilizar el FWPA.

Ah, y por cierto....


2 comments:

  1. El consejo de Yuriy Zubareb es tan utópico como inútil. Quizás funcione en Google, pero Google no es el mundo real. Al 95% de los desarrolladores que habitan el mundo real el rastro de conocimientos, la actitud, la tenacidad y el nivel de compromiso directamente se la sopla, especialmente si eso supone tener que realizar un esfuerzo extra.

    Lo que sí funciona es apelar al orgullo y especialmente a la vergüenza de las personas. Mira, cada uno es lo que sube al vcs. Sin excusas. Yo soy 85% de cobertura, 100% de commented public api y mis módulos y mis clases respetan estrictamente el SRP. Esto es lo que yo soy, ahí están mis commits para comprobarlo. Y no por ello me considero John Carmack, es que cualquier cosa menos que eso es inaceptable, es basura. Es comentar esto en alguna comida o en algún meeting con todo el equipo delante, por supuesto sin mirar a nadie, el objetivo es que la gente mejore no que nos odie, y en menos de una semana empiezas a ver los resultados. No hablo por hablar, lo tengo comprobado.

    ReplyDelete
    Replies
    1. El consejo es, mas que nada, una perogrullada. Pero lo que sí que tiene mas fondo es el hecho de que el código es como una verdad incómoda del pasado en un thriller de Hitchcok. Nadie puede huir de lo que deja detrás y, después de muchos años, cuando crees que está superado, dejado atrás, puede volver y pasarte factura.
      Con el nivel de rotación que tiene este negocio, no es raro que mucha gente haya pasado por cuatro o cinco sitios en su carrera. ¿Sabemos quien está ahora mismo manteniendo el código que hicimos hace 5 años, hace 3 empleos? Igual es un joven prometedor que el día de mañana tiene delante de su mesa tu CV.

      Delete