jueves, 15 de mayo de 2014

Jetas*

En mis tiempos, cuando se quería hacer alguna gráfica (folleto, página web, calcomanía, papel higiénico, mouse pads servilleta o lo que sea) se tiraban un par de print screens de las pantallas más “bonitas” (o se inventaba alguna si es que no había), un poco de bla bla bla “mejorará su vida” y listo.

Ahora la onda es poner la jeta* de algún CEO presentable (pocos consiguen), o  empleado, o modelito o pobre flaco que iba corriendo una maratón con cara de langa (no, no vi que lo hayan usado, pero podría ser) y nada más. De qué hace el sistema, ni una palabra (o bien abajo), no sea cosa que alguien reclame la letra chica. Si es mujer, morocho, latino, indio, oriental o miembro de alguna “minoría con onda en USA”, mejor, y si es de varias al mismo tiempo (una mujer negra de ojos rasgados vestida de Pancho Villa), mejor que mejor.

O gente laburando en unas oficinas con toda la onda, limpias y llenas de luz, muy prolijamente desordenadas, súper informal. Vaya uno a saber ande se trabaja así, tal vez en algún lugar (hay uno de casi todo), pero me juego que no es la regla (al menos no para los que tocan el teclado).

O un tipo más o menos joven haciendo garabatos en un pizarrón, y todos alrededor con cara de “estoy aportando ideas”… y siempre alguna mina hay, por eso de las minorías que mencionaba antes. A veces hasta eligen uno o dos medio feos (medio al fondo, a un costado o fuera de foco), para darle realismo. Pero todos tienen los dientes blanquísimos, eso sí (debe ser por los tubos de luz), y nadie con los ojos rojos ni las ojeras negras ni la barba crecida ni la mandíbula colgando en un bostezo interminable.

Debe ser para mostrarle al mundo que el desarrollo de software, especialmente el de line-of-business, es producto del trabajo de personas comunes y silvestres y extremadamente cool (a este ventiañero lo vendemos por genio). Trabajo en equipo (lo vendemos diez veces) que demanda un ambiente acorde (total lo encadenamos al teclado hasta que le salga algo), re-creativo (con una play se queda contento), pero de mucha responsabilidad (y si no es la play están los palos, y de última de acá no te vas) y, sobre todo, esfuerzo (te va a costar un ojo de la cara), un gran esfuerzo sostenido en el tiempo (lo vas a tener para el día en que te mueras)… un trabajo casi artístico (así que si sale cualquiera no es culpa nuestra, el arte es así… indomable).

Será para hacer el software más humano, digo yo.

* jeta = cara, rostro (soy re-internacional).

martes, 13 de mayo de 2014

Prefiero el picado fino.

Creo (comienzo que permite divagar sin molestarse en verificar ni pensar dos veces) que esta preferencia es impronta de los últimos años de trabajo “Senior” (comillas obligatorias) en equipos más o menos medianos, más o menos “rotativos”. Picaba funcionalidad, sí, pero la mayor parte del tiempo tenía que buscar bugs en, verificar o consultar código de otros, en funcionalidad de la que no tenía más que una (valga la redundancia) vaga idea funcional. Entiéndase “no tenía mucha idea de cómo estaba programada o siquiera pensada”.

Entonces abría una carpeta (y a veces otra y otra y otra) y por los nombres me iba dando cuenta de cómo venía la mano. Me es cómodo encontrar una lista de archivos con nombres de clase más o menos coherentes, sintiéndome seguro de que no hay más que eso, simplemente porque “un namespace por carpeta, una clase por archivo”.

Ése es el picado fino. ¿Se entiende? Si no, querido lector, mejor siga su camino por otros callejones de la web, que acá ya no se le explica nada a nadie.

A veces hay un archivo con un enum y nada más. A veces una clase enorme con otras privadas y públicas y enums e interfaces y demás, adentro unas de otras, como muñecas rusas… pero en definitiva siempre una y sólo una clase en el archivo (amén). Se supone, al fin y al cabo, que cualquier otra cosa interna hace al detalle de lo que la contenedora dice (en su nombre) que hace.

A otros no. A otros les gusta el picado grueso. Un par de carpetas, las mínimas necesarias para leer el contenido con comodidad, arregladas en una jerarquía más bien plana y a otra cosa mariposa. Los nombres de los archivos se refieren no a clases sino más bien a… bueno, nunca encontré/entendí si había una regla, supongo que obedecen al (o son la medida del) sentido común de quien los crea.

Éstos otros, los del picado grueso, suelen argumentar con cierta razón que codificar una funcionalidad, tocando al mismo tiempo 5 o 10 archivos por separado, es un mareo. Uno trabaja en MVC, por ejemplo, saltando entre vista, controlador, modelo (principal y varios secundarios), un par de helpers, algo más aquí, algo más allá… y son como 10 archivos o más, si la cosa es compleja.  Y sí, puede ser… a mí no me molesta tanto, y, a la inversa, me es un mareo ver todo junto. “Así es MVC”, o “Así son las reglas de estilo en .Net”, contraataco (por no decir “así me gusta y punto”).

Normalmente, de encontrar código “picado grueso” en en una solución compilada de .Net, puteo (a veces para adentro, a veces para afuera)… pero en javascript, por ejemplo… “y bueh, así es la we’ ¿vio?”. Después empecé a usar require.js y… ¡picado fino en javascript! Y pienso (a futuro cercano, lo veo verde todavía) empezar con TypeScript y ahí los del picado grueso me van a odiar en serio, porque ya no hay excusa (salvo el gusto personal, argumento tan fuerte como el que lo utiliza –débil en mi caso-).

Pero no está mal el picado grueso, no. Es un tema de preferencias, nada más, de idiosincrasia, costumbre, organización mental de cada uno… andá a saber. Alguno dirá “hay que encontrar el punto justo”… y suena bien, pero (en este punto) prefiero seguir un (y sólo un) criterio, aunque se vaya al extremo. Habrá que ponerse de acuerdo y decidir con qué se prefiere lidiar cuando toque: ¿un archivo de 1000 líneas o una jerarquía de 5 carpetas de profundidad con 20 archivos de 30-50 líneas en cada una? Pero a veces una cosa y a veces otra (y a veces ninguna) sí que es un enjambre.

Es, en todo caso, una buen tema para animar la conversación alrededor del fuego de algún proyecto incendiado. Basta, me voá trabajar.