Fraudismo 101 – Senior en 6 meses

Este post pertenece a la serie Fraudismo 101, dedicada a las fobias y filias del informático.

«Perdona, ¿sabes dónde está Manolo?

Juan, que lleva trabajando de becario en Cárnica Consulting Inc. desde hace seis meses se quita apresuradamente los auriculares con los que escucha música electrónica para programar. Los cascos caen resonando sobre la mesa. Realmente Juan los usa para no escuchar los gritos de los comerciales en el teléfono a dos mesas de distancia. Ventajas de los espacios abiertos o granjas de cubículos. Gallinitas ponedoras. Juan no ha hablado nunca con el Jefe. Desde que entró en Cárnica sólo se ha relacionado con el pequeño grupo de personas que forman su proyecto. Desconoce todo del resto de su empresa. Ventajas de las sinergias para desarrollo humano y de tu carrera profesional que te ofrecen las grandes empresas para crecer como profesional. Y poner mejores huevos.

  • No, está de vacaciones. Le tocaba ahora, creo, ¿no?

Juan está asustado y trata de escoger con cuidado las palabras. Quiere impresionar a su jefe, pero sin que se note. No quiere parecer un listo, pero quiere dejar huella. Su cerebro es como un hormiguero pisoteado: ideas corriendo en todas direcciones, sin rumbo, sin organización. Una idea se apodera del resto. Recuerda a Han Solo diciéndole a Chewbacca «fly casual«

La voz de su jefe le saca de su ensoñación.

  • Ah, es cierto. Bueno, tú también estás en el proyecto ese de los móviles con Android, ¿no?. Vente, que te necesito en una reunión. Serán sólo diez minutos.

La reunión

Para Juan era la primera vez que acudía a una reunión. La mano que sujetaba el cuaderno con el logo de la empresa le sudaba y temía que se le cayera el boli bic al entrar y quedase mal. Había estado en este templo corporativo otras veces, pero para hablar con Manolo, su responsable. Cosas de su proyecto y eso. Para aislarse del ruido reinante.

La sala era como todas las salas de reuniones del mundo Cárnico. Una gran mesa la presidía, ya que según el manual corporativo no escrito siempre deben reunirse al menos diez personas. Que si no no se despilfarra suficiente tiempo y dinero. Imprescindible que al menos dos no tengan nada que aportar a la reunión. Avisar con 10 minutos de antelación da puntos. Sillas incómodas, que venimos a trabajar (en teoría) pero no queremos que se queden a vivir aquí. Es la versión de la dirección de comerse un kilo de churros mojados en café con sacarina. Una TV para proyectar una presentación en PowerPoint cuidadosamente inundada de datos irrelevantes, pero grande, ¡muchas páginas!, que se vea que trabajamos. Y cuadros corporativos que son como memes en papel y con marco de gente enchaquetada. De esos que tienen debajo escrito «motivación» con un ejecutivo saltando una valla con el portafolios en la mano o «trabajo en equipo» y el equipo olímpico de remo con gomina en una barca arrimando el hombro. Siempre he echado en falta uno que ponga «Siesta: lo que todos haríamos si supiésemos vivir». Lo encargaré para mi próxima estartúp.

Juan se sentó. Al parecer la reunión era con el cliente del proyecto. No tenía ni idea de quienes eran. Se intercambiaron nombres y un saludo tímido. Recogió las tarjetas que le alargaron por la mesa. Mis primeras tarjetas de visita, se decía, recogiéndolas como un trofeo y guardándolas con cuidado entre las páginas de su libreta para que no se perdieran. Era como si ya te considerasen adulto. Se excusó por no tener una.

Entonces su jefe empezó a hablar. Sobre el equipo encargado del proyecto, plazos de entrega parciales, facturas y otras cosas que para Juan eran secundarias. En su mundo, lo único interesante es el código. Y luego, de alguna manera mágica desconocida, se transforma en dinero. Como es de rigor en toda reunión, cuando habla otro que no seas tú, miras a otra parte, haces dibujitos en el cuaderno, escribes en el móvil. Hay que estar allí pero enviando el sutil mensaje esto es un tostón.

En un punto de la reunión le preguntaron sobre las analíticas que iban a usar. Aún no estaba claro si usarían las propias de Google o las de Localytics. Así que explicó, con todos los detalles técnicos que nadie había pedido, los pros y contras ende ambas. Aquello pareció impresionar a los reunidos, que afirmaban con la cabeza cada palabra de Juan.

Una idea empezó a formarse en su cabeza «estos no tienen mucha idea de esto», peligroso germen que suele desembocar en ese sentimiento, mitad complejo de superioridad y mitad asco, aderezado por horror al comparar nóminas, que los técnicos sienten hacia los responsables de negocio.

Y le volvieron a preguntar. Algunas cosas las sabia. Con otras se arriesgó y siguió un consejo de su padre «cuando no sepas de algo no digas cosas que luego te hagan quedar como un tonto». Así que respondía con detalle a lo que sabia, pasando por encima de lo que no. Flying casual. Casi podía oler a Chewbie a su lado.

Finalmente le pidieron opinión sobre tiempos, esfuerzos y una serie de ampliaciones sobre la App. Y fue aquí cuando comenzó el pánico a apoderarse de Juan. «Espera, yo sólo soy un becario, el que hace esto es mi jefe. ¡y yo qué sé!», se quejaba en su mente.

Empezó a balbucear excusas sobre no estar preparado, sobre que si eso lo hace mi jefe, pero le miraron con sonrisas y le respondieron: «bueno, tú llevas con este proyecto ya 6 meses, ¿no?»

Senior en 6 meses

Esta es una tragedia a la que todos nos hemos enfrentado. Te asignan un nuevo proyecto, con tecnologías nuevas. En parte te gusta porque hay un montón de cosas que aprender aunque a la vez te da un poco de miedo y respeto. Todo es nuevo y puedes meter la pata, claro. Empiezas a aprender leyendo y haciendo pruebas, pero te gustaría que alguien te guiara porque a medida que avanzas te encuentras con problemas y las dudas te asaltan. Si la tecnología es muy nueva puede que seas el primero en StackOverflow en hacer esa pregunta. Ser pionero da miedito.

Y de pronto han pasado seis meses. Eres de los pocos en la empresa que estabas usando esa tecnología. Arrancan otro proyecto y te etiquetan automáticamente como senior. La autoridad a la que preguntar. El que ya lo sabe todo. Y sientes la presión. Sabes algunas cosas, pero en seis meses lógicamente eres consciente de no haberte convertido en experto. Pero te preguntan. Te piden opinión. Y piensas en si estarás dando información errónea, en si hay otra forma mejor de hacerlo, en si estarás diciendo tonterías, en si eres un Fraude

Esto mismo te habrá pasado si has compartido algo por Twitter. Quizás un truco que viste mientras aprendías. O un script curioso. O un trocito de código. E inmediatamente te etiquetan como experto. Te añaden a una lista. Te llaman crack. El que sabe. El gurú.

Esto no es más que un síntoma de un problema. Las tecnologías cambian y se reinventan a un ritmo frenético. No tengo claro si avanzan, porque al final sólo son herramientas para resolver los problemas y los problemas no son tan distintos ahora y antes. El avance, tal como resalta Uncle Bob en este post no es tan evidente. Sí, ahora tenemos Swift en iOS y Android Studio en Android. Pero podíamos hacer exactamente lo mismo, quizá algo peor, con Objective C y Eclipse. No es una mejora tan evidente. Es una apuesta de futuro. Pero en un mercado en el que cada cinco años has cambiado de SO, IDE, lenguaje y frameworks me río yo de las apuestas de futuro. Ese futuro es muy cambiante.

La informática y especialmente la programación avanzan a ritmo frenético, a veces parece que a ninguna parte. Esto es otro de los detalles que hacen de esta profesión algo tan difícil: tienes que tomar decisiones y resolver problemas cuando realmente eres un novato. Un carpintero es experto tras 20 años de profesión. Nosotros con 20 años de profesión estamos recomenzando con alguna nueva cosa.

Por eso es importante ser capaz de dejar cosas atrás. De desaprender. De ser capaz de usar lenguajes que odias, para resolver un problema. Improvisar, adaptarse, vencer (sí, el Sargento de Hierro de nuevo, no doy para más como Coach). De ver lo común y general en los lenguajes y que no nos ciegue la sintaxis.

Claro, que si no quieres aceptar que siempre serás senior con seis meses de experiencia y la presión que esto conlleva siempre puedes hacerte churrero. Con todo el respeto que me merecen mis churreros de cabecera sólo necesitas: aceite caliente, palillos y darle vueltas a la masa con arte AKA experiencia. Eso no ha cambiado tanto en los últimos 100 años.

Hace 10 años aún no había salido Windows Vista. El mundo usaba XP. En Febrero de 2005 se fundó Youtube. Piensa en ello.

j j j

Fraudismo 101 – The Silver Bullet

Este post pertenece a la serie Fraudismo 101, dedicada a las fobias y filias del informático. Tras leer que Todos lo saben todo siempre puedes saber el por qué de tener siempre El agobio de repuesto

Te ha costado dominar este lenguaje. Bueno, dominar, dominar, tampoco, sin empujar, que para eso somos fraudistas, claro. Pero ya controlas algo y cuando miras en Stack Overflow hasta comprendes el código que vas a copiar y pegar. El IDE empieza a estar dominado. Igual que las librerías y frameworks que usas habitualmente.

Y entonces el mundo conspira contra ti y tu lenguaje deja de ser cool. Y tu jefe contrata un proyecto con una tecnología diferente que nadie en la empresa domina porque lo leyó en un blog. O tu cliente quiere hacer experimentos con una tecnología tan nueva que es inestable. Y quieres morir.

A recomenzar. Otra vez. Y van n. De nuevo eres novato AKA un inútil. Te lo han cambiado todo, pero total, como sólo es programar y tú eres un crack que esto en dos semanas te lo meriendas pues ahí lo llevas: nuevo proyecto con todo nuevo y más apretado en tiempo que los tornillos de un submarino.

Tu jefe te lo propondrá como un reto.

Un inciso: siempre que tu jefe use la palabra reto, corre en la dirección opuesta lo más rápido que puedas, sin mirar atrás. En silencio, pero sin parar. Ya te enviarán el finiquito a casa. Como si tu jefe fuera un infectado: huye. Reto significa en su idioma que ha vendido algo que no sabe cómo ejecutar y que ha encontrado al que se va comer ese marrón por el mismo sueldo: tú. Porque eso es un reto para ellos: arriesgar tu prestigio profesional haciendo algo totalmente nuevo sin formación ni apoyo. Sin planificación ni margen para error. Por supuesto por la misma pasta. Y lo harás, claro, porque eres el mejor, crack

Y cuando empieces y los problemas se amontonen, acabarás maldiciendo y soltando la frase mágica: «estoy harto de cambiar de lenguajes cada 5 años. ¿Es que no puedo aprender uno que me dure para siempre?»

The Silver Bullet.

La primera vez que llegué a esta conclusión fue al empezar a trabajar justo al terminar los estudios. Hasta ahora aprender lenguajes había sido en parte por necesidad (para aprobar) en parte por placer. Conocía o había visto BASIC, Pascal, C, C++, LISP, ADA, Prolog… Pero todo desde la teoría, proyectos personales, etc.

Cuando empecé en serio me pusieron con Access y VBA. Y tuve que desarrollar una App para hacer presupuestos y ventas, stock y demás en Access que corría en ¡15 puestos! De locos. Viniendo de C++ con mi proyecto fresco VB me parecía muy chulo porque era sencillo crear interfaces de usuario pero una calamidad como lenguaje. ¿Quién se ha llevado mis punteros a funciones? Cuando me empecé a enterar me moví de empresa y en unos meses tuve que programar en C, ver HTML (ni idea por entonces), hacer una App en Delphi, tocar VB 5.0 (no VBA ni Access, VB con Visual Studio). Y la presión subía y subía. ¡Estoy harto, quiero aprender de una vez ese único lenguaje multiplataforma, multiparadigma, que con darle a un botón genere desde una web hasta una aplicación Windows o Linux!

The Silver Bullet es una vieja aspiración que he aprendido a no desear. No desear lo que es imposible tener ayuda bastante a no frustrarte y no ser infeliz. Budismo básico de manual. Sí, hay que aspirar a más, a ser mejor persona y profesional: esto no es desear en negativo. Pero en mi caso querer tener la altura de Gasol sólo me generaría frustración: eso sí es desear con toda su carga peyorativa. Y con los años me he dado cuenta de una verdad inmutable:

una vez que aprendes un nuevo concepto de programación, el lenguaje con el que lo apliques es irrelevante.

Es lo que yo llamo «carpintería». Lo difícil es entender el concepto, «hacer los planos». La ejecución debe ser sencilla (si te gusta programar, claro).

Por eso, aprende sobre patrones. Lee sobre cómo otros escriben el código. Consulta guías de estilo de tu lenguage, y sobre todo pruébalas en pequeños proyectos. Descarta lo que no encaje contigo, tras reflexionarlo. Aprende lenguajes que no tengan nada que ver con lo que haces ahora: te inocularán conceptos que desconocías y que te gustaría que tu lenguaje tuviera. Pero ¡oh sorpresa!, casi seguro que o ya existen en tu lenguaje actual o hay una manera de simularlos. Así, aprendiendo otro lenguaje siempre acabas sabiendo más del «tuyo», con el que empezaste.

Nunca vas a encontrar ese lenguaje que te llene al 100%, que nunca se cuelgue su IDE, que sea ultrarápido compilando, que tengba todas las librerías que necesitas, que se ajuste a todos los problemas… Bueno, ahora unos cuantos trolls estarán abalanzándose sobre Twitter para decirme «pero mi lenguaje hace». Ya, pero otras cosas las hará peor, o no las hará. Nunca vamos a poder escaparnos de aprender distintos lenguajes ya que los lenguajes son sólo herramientas para el programador. Ni más, ni menos. Lo más importante: que el cliente sea feliz, que tu código sea todo lo bueno y bonito que puedas escribir con tu actual nivel de conocimientos, que sea económicamente rentable. Que lo hagas con Python o con COBOL poco importa: con ambos puedes escribir maravillas o cometer aberraciones contra natura.

Así que no busques esa Silver Bullet. Ya la has encontrado. Es tu cabeza y tu capacidad de programar. En cualquier lenguaje que te echen, que para eso eres un crack

j j j

Fraudismo 101: todos lo saben todo

Quiero iniciar una serie de posts que desde hace mucho tiempo cuento, de forma verbal, en cursos, charlas o tomando cerveza. Adelanto esto porque si hablas de la tradición verbal de una fábula inmediatamente ganas puntos de gafapastismo.

Estas historias son la constatación de un hecho: que todos los informáticos (plural genérico) somos unos tarados. A todos nos falla un fusible, normalmente el mismo. He decido escribirlos tras ver que la mayoría necesitamos un club de autoayuda ya que este trabajo estresa y agobia bastante, por razones que ahora presentaré. Compartir y descubrir estas manías te ayudará a superarlas. La corriente filosófica/psicológica que trata estas taras se llama Fraudismo

Fraudismo: disciplina que trata de explicar por qué personas normales, bastante inteligentes (más que nada porque realizan un trabajo intelectualmente complejo como es programar) se sienten como una mierda a diario y piensan que son un fraude con patas y un fracaso con DNI.

Como último aviso, advertir que algunos van a estar bastante basados en las ideas que el genial Joel Spolsky volcó en su blog, de obligada lectura, más alguna pizca personal. Como buen Fraudista me limito a regurgitar las ideas de otro y a esperar con pánico a ser descubierto. Os ahorro el esfuerzo de descubrirme y, si no has leído a Joel (yo hasta he comprado sus libros), deja todo lo que estés haciendo y ponte a ello. De nada.

Todos lo saben todo

You are comparing your backstage self with spotlight others

Esto seguro que lo has sentido muchas veces. Ser el más tonto de la habitación. Escuchar a todos hablar y darte cuenta de que o están hablando de otras cosas, o te has quedado irremisiblemente atrás. Junto con 50 puntos de tu CI. A mi me pasa mucho cuando voy a conferencias.

Bueno, eso y cuando Jonathan Chacón da alguna charla en una NSCoder Night de Sevilla. Porque alguna vez se podría llevar algún ejemplo en modo texto, algo feo y simple, vamos, lo que yo entiendo que debe programar un ciego. Y no juegos en 2D y ejemplos con SceneKit en 3D. Que acaba uno machacado y preguntándole «Jonathan, alguna vez te vas a traer algo de ciegos y dejar de humillar a los que no sabemos hacer juegos ni animaciones. Que tú eres el ciego pero yo el discapacitado para SceneKit…». Qué le vamos a hacer: Jonathan es demasiado bueno en todo.

Me pierdo. El tonto de la habitación. Seguimos.

En una conferencia ya extinta (BCNDevCon) acudí a un taller de iniciación de Unity. Pensé «Unity debe molar», así que preparé lo necesario (instalé Unity, leí algún tutorial, esas cosas) y me senté a escuchar. El instructor era un valiente, porque aquello estaba lleno de gente. Pasó unos recursos en un pendrive y empezamos a hacer cosas. Yo estaba maravillado porque podía «pintar» un mundo en 3D con aquella herramienta. Casi era magia. Pero entonces mi cerebro empezó a hacer cosas. Empecé a mirar a mi alrededor de soslayo. «Vaya, parece que soy el más viejo del lugar. Sí todos son chavales. ¡Lo que yo habría dado por aprender estas cosas a su edad!. Anda que me van a llevar un ventajón…»

Me sobrepuse y continué con el taller. Pero mi cerebro empezó a pensar «parece que todos lo llevan bien. Es más, mejor que yo. Parece como si todos tuvieran ya experiencia con Unity. ¡Eso es!. Estos ya han terminado sus primeros juegos con Unity y viene aquí a repasar«. Y es en estas situaciones cuando el pánico se apodera de ti y empiezas a pensar «no, no es que desarrollen con Unity, es que estos son los que desarrollan el propio Unity. Seguro que vienen de la empresa que escribe Unity. O eso, o lo hacen todo a pelo con OpenGL. Eso es: ¡OpenGL y ensamblador!. Y su procesador de textos es Emacs… ¡Y manejan vi con el ratón!»

Cuando llegó la pausa del café corrí a una mesa. No por necesidad de cafeína, que también, sino por escapar de la sala de los expertos, donde era el más tonto del grupo. Cuando se fueron formando grupos de café, tímidamente vas charlando, tanteando el hielo para que no se rompa bajo tus pies. Y lo que encuentras te sorprende: todos pensamos que los otros ya lo saben todo. Más que nada porque no podemos meternos en sus cabezas. Y siempre nos ponemos en lo peor.

Me ha pasado en clases magistrales de Core Data con Marcus Zarra, y Alan Cannistraro preguntando sobre multi hilo. O en la NSSpain escuchando a Peter Steinberger hablar de desarrollo en C pelón con Cocoa.

Pero resulta que esa es la mejor situación en la que puedes estar. Una vez identificado el autoengaño de tu cerebro, cada vez que he sentido lo mismo he pensado:

«Bien, si soy el más tonto de la habitación lo único que puede pasar aquí es que salga aprendiendo algo».

Sólo invocar este mantra aleja el pánico. Porque es cierto que uno sabe PHP, y otra C++, y la de más allá Perl. Pero no es cierto lo que nuestro cerebro nos hace: que pensamos que ya deberíamos saber a la vez PHP, C++ y Perl porque ellos ya lo saben, que a ver qué has estado haciendo con tu tiempo, que tienes que ponerte al día. Reunimos lo mejor de cada uno y lo convertimos en un yo ya debería saber todo esto.

¿Y qué podemos hacer una vez localizado el engaño?

En mi caso, lo primero que hago es preguntarme si realmente es necesario que sepa R, Ruby, Cocos2D y Scala. Hay que decir no a todos menos a uno. Y escojo el que, de los que me atraen más, pienso que me puede ayudar mejor en mi trabajo. Quizás porque me enseña cosas desde un punto de vista distinto.

Una vez localizados los objetivos lo siguiente es crearme proyectos en Things con cosas que quiero aprender y acciones concretas: ver este vídeo, leer este post, hacer un ejemplo de tal cosa. Y así voy aprendiendo. No tanto como quisiera, pero este miedo lo he superado. Y tú puedes, también, siendo consciente de que todos pensamos lo mismo: que todos lo saben ya todo. Y es mentira.

Aprende y disfruta mientras aprendes. GOTO 10. No hay más.

j j j

El agobio de repuesto

TL;DR: auto fustigación y pesimismo ahead. Igual prefieres ponerte Les Luthiers para divertirte.

No se si es por ser programador, o por ser informático. No, debe ser por intentar sobrevivir como autónomo en España, luchando contra unos impuestos disparatados que no ayudan mucho al que gana poco. O directamente porque soy tonto del culo. El caso es que siempre ando preocupado. Agobiado. Por pequeñas cosas, cosas insignificantes, pero que están ahí. Y molestan.

Cuando estás sano, tienes una estupenda relación con tu mujer, dos hijos a los que quieres con locura, has estudiado lo que te gusta, tienes trabajo, disfrutas de tus padres y familia… Parece que quejarse no es una opción. Hay que ser tonto, ¿no?. Problemas del primer mundo…

Pero como me dijo una vez un compañero, cuando estaba empezando y me dedicaba a arreglar ordenadores «uno siempre quiere más». Y con el tiempo he acuñado esta frase: «cuando todo te va bien siempre tienes a mano un agobio de repuesto».

Siempre quieres más. Aquí está esa idea del deseo no satisfecho, una sed que no puedes apagar del todo, pero que muchas veces es sólo una fantasía. Uno piensa: «si pierdo cinco kilos me sentiré mejor y haré tal o cual cosa». O peor «cuando pierda 5 Kg hago esto o lo otro». Son fantasías, autoengaños. Perder los kilos probablemente no te haga tan feliz como esperas. Aprende a disfrutar del deporte que practiques para perderlos. Haz ahora lo que quieras hacer o no lo hagas, pero no lo pospongas.

Estos deseos me llevan, en mi caso, a comprar cosas para acallar que algo no va bien. Menos mal para mis finanzas (y mi salud) que las cosas que compro para generar dopamina son baratas: no soy un aficionado al juego, ni a los coches caros o las drogas (más allá del café). Me relaja mucho más comprar un viejo AMSTRAD CPC 6128 y jugar con él. Aunque no me hace tan feliz como había imaginado, porque las cosas no me pueden hacer feliz: sólo yo, reconociendo lo que tengo ahora, dando gracias por lo que tengo y disfrutándolo, podré ser feliz. No hay otra.

Las críticas

Siempre he sido así, desde que tengo uso de razón. He pasado rápido por encima de mis éxitos, porque me da un poco de pereza estar alardeando de cosas que pienso cualquiera puede conseguir, si se esfuerza. Y siempre me han afectado mucho las críticas. Pero no las externas.

Esas las escucho, pero he aprendido a aceptar sólo aquellas de gente que respeto, no del primero que pasa por la calle. Las que de verdad me machacan son las internas. Esa voz interior que no para de juzgarte. De recordarte cómo has fracasado en perder los 5 Kg. O cómo no has arreglado la cerradura del patio que está rota. O que no has escrito ese libro que querías. O que no ganas el dinero que suponías te iba a hacer feliz. Esa voz que es tu peor enemigo. Esa voz siempre trae el agobio de repuesto.

Este agobio, esta duda permanente en mi mismo y en si hago lo mejor o no tomando esta decisión o la otra me paralizaba antes muchísimo más que ahora. Antes me devanaba los sesos. Y sufría mucho. En silencio, como las hemorroides. Pero sufría. Así que empecé a leer libros de «autoayuda», a probar métodos de trabajo que me librasen del estrés, a hacer cosas en lugar de pensar en cómo hacerlas perfectas o si debería hacerlas.

Herramientas para salir del pozo

Por el camino he aprendido que apuntar todas las tareas en algún sitio, siguiendo el método GTD te libera de la obligación de recordar. Una vez apuntado ya sabes que tu lista de tareas se acordará. Que reflexionar con un mapa mental, pintando en un cuaderno, me ayuda a ver mejor las cosas desde arriba y a tomar decisiones. Que no hay que ver todas las tareas a la vez, sino visualizarlas una tras otra. Es difícil luchar contra tantos problemas a la vez. ¿Pero contra uno? Seguro que gano. Me he ido conociendo y he desarrollado rutinas para trabajar mejor. Y me autoengaño, por ejemplo, empezando siempre con una tarea muy sencilla, casi absurda. Pero una vez has empezado, sólo hay que mantener la bola rodando. «El principio es la mitad del todo» (Pitágoras, sí, el culpable de que suspendieras el examen de senos y cosenos).

Me he hecho un gurú de cartón piedra de la productividad personal. Y claro, uno piensa que «cuando me sepa organizar perfectamente el agobio se irá». Y, como todas las fantasías, se desvanece en contacto con la realidad. Hay días buenos. Y días malos.

Lo malo es que, una vez que tuviste un día muy bueno en el que fuiste un 150% productivo tu cerebro quiere que todos los días sean siempre como ese. Y claro, eso no puede ser. La vida cambia: te pones enfermo, se acaba la comida del frigorífico, hay que pagar los impuestos, se estropea el coche, un amigo te invita a su segunda boda… Hay que improvisar, adaptarse, vencer. Y no hay que sufrir porque hoy sólo has rendido un 50%

El resumen de todas las técnicas de autoayuda, productividad personal, herramientas, etc. es sencillo: haz cosas. Al hacer cosas te sentirás un poco mejor. Haz muchas cosas y te sentirás bastante mejor. ¿Meditación? Un 5% más de felicidad. ¿Deporte? Otro 10%. Tus aficiones, otro 10%. Ve sumando.

Soy un fraude

Pero todo esto no me quita la sensación de engañar a todo el mundo. Dicen que se llama síndrome del impostor. En mi caso lo soy. Un impostor, digo. Porque es muy difícil, al ritmo que cambian las tecnologías, mantenerte al día. Ser relevante. Aprender iOS, Objective-C, Xcode, Cocoa, sus patrones de diseño, a manejar herramientas como Instruments, git, organiza tu trabajo… Y luego métete con Android, Eclipse, Java, Android Studio…

Demasiado para mi. Me hago viejo y tonto. Si fuera tan listo como me gustaría habría montado una empresa de la que me sintiera orgulloso. O tendría un proyecto software libre que fuera mío. O al menos una biblioteca de funciones que valiera la pena. O un buen blog. O un libro… La realidad es que soy un fraude y no tengo nada de esto porque no doy el nivel. No excuses.

Sufro cuando tengo que enseñar a alguien. Siempre pienso que me van a pillar, que se va a descubrir el fraude, que todos van a ver que realmente no tengo ni idea. O cuando tengo que hacer una App para un cliente. App con la que tardaré más de lo presupuestado, perderé dinero como siempre y de la que no me sentiré satisfecho. Me hace gracia cuando me llaman «Senior» developer. Será por lo viejo.

Por eso no tengo la empresa. Por eso no publico el código que tengo. Por todo eso.

Hay días buenos, cuando ves que te acercas a tus objetivos. Otros no son tan buenos y sólo puedes agachar la cabeza y seguir avanzando. Y esperar que la cosa mejore.

Pero me gustaría tanto que todos los días fueran buenos…

j j j

La delgada línea roja

No, no voy a hablar de una película conocida, junto con El hombre que susurraba a los caballos por ser la cura definitiva del insomnio.

Voy a hablar de la línea que me marca que alguien no va a ser cliente mío. O visto desde el otro punto de vista, que no voy a trabajar para él. Como prefieras verlo. Tras muchos errores y problemas, creados por mi incapacidad a la hora de estimar y por los tipos de clientes he llegado a tener una serie de reglas que sigo escrupulosamente. Puede ser que te parezca demasiado exigente, o que no voy a tener trabajo si hago todo esto. Pero la realidad es que sigo teniendo clientes, sólo que son buenos y no malos.

Nunca trabajes con particulares

Nunca, nunca, nunca trabajes con particulares. Especialmente si son del tipo he tenido una idea. Si has tenido una idea, y es tan fantástica ¿por qué no has constituido una empresa para ello? ¿No eres capaz de arriesgar los 100 Eur que suponen hoy en día crear una Sociedad Limitada y pretendes que yo crea en tu proyecto?

¿Qué sucede si las cosas van mal? Con una empresa tienes ciertas garantías, aunque si las cosas vienen mal siempre va a ser un problema. Al menos puedes emitirles facturas y no van a empezar a llorarte con que el IVA es muy caro, ni vas a tener que explicarles cómo instalar Skype o Dropbox.

Lo siento, pero nunca trabajo con particulares. Sobre todo, porque lo he hecho, me he equivocado, me ha salido fatal y nunca más lo haré. Y tú no deberías.

No sin mi contrato

Realmente un contrato tampoco te protege de nada, porque siendo un simple freelance y con las tasas judiciales actuales de por medio andar litigando es casi más costoso que perder el tiempo dedicado al proyecto.

¡Gracias, Gobierno, por facilitar tanto la actividad económica!, si lees esto sube por favor el coste del autónomo, que aún te quedan tres por machacar del todo.

Por eso es mejor establecer puntos intermedios en los que puedas facturar con una entrega parcial. Y pedir algo por anticipado. En esto tengo que mejorar. Me cuesta mucho pedir dinero sin haber entregado aún nada a cambio, pero es una buena forma de comprobar si al menos hay voluntad de pagar.

NDAs sólo para empresas grandes y proyectos concretos

Puedo entender que una empresa grande no quiera perder su ventaja competitiva y me solicite un NDA. Porque se lo exige su departamento legal y eso. Pero hasta ahora al menos me han contado los detalles generales por encima, para saber de qué estamos hablando.

Me resulta muy tierno que alguien contacte contigo y, antes de darte los buenos días, te pida un NDA. ¡Y es que son todos!. ¡No lo sabía, pero estoy rodeado de genios!. Todos tienen ideas buenísimas. Eso sí, no tienen ni idea de cómo ejecutarlas, ni de montar empresas, ni de nada, pero lo del NDA se lo han aprendido perfectamente.

Contactan y te piden referencias. Suficiencia técnica. Que si sabes de lo tuyo, vaya. De hacer Apps en mi caso. Honestamente les digo que no, pero que voy aprendiendo y que algunas cosas las hago medio bien. Eso sí: se enfadan cuando les pregunto por sus casos de éxito: otras ideas que han convertido en empresas, cuánto facturan al año, exits que han negociado, etc.

No son capaces de explicarte su idea, no sea que en cinco minutos, antes de ducharte, se la clones. O que les quites el trozo de queso, digo el cliente. Pues perdona, pero si tu idea es tan sencilla de clonar probablemente la idea no es lo importante. Lo importante es la ejecución.

Hoy he tenido una idea: montar un servicio de música por streaming. Seguro que a nadie se le ha ocurrido. Y total, crear las Apps, servidores, cerrar los acuerdos internacionales con la industria musical, los pagos, etc. debe ser sencillo.

Socios Tecnológicos == Trabaja gratis

Si alguien te propone ser su socio tecnológico (antes, por supuesto, tendrás que firmar un NDA para conocer su idea de una App para puntuar restaurantes con el móvil), quiere que trabajes gratis. Con ilusión y ganas, ¡que no te implicas!.

En este caso GOTO Los ideístas

j j j

Cómo ver los vídeos de la WWDC 2015

…y no dejar que Twitter, y los sobrehumanos que por allí pululan, me machaquen con sus capacidades heroicas de ver en una semana todas las sesiones.

Terminó la WWDC 2015, y como todos los años, me he echo un firme propósito: ver todos los vídeos antes de que llegue la WWDC 2016. Si miro mi track record en este tema, no es para ser optimista: siempre he fracasado. Esto es mi voy a dejar de fumar o tengo que aprender alemán. Lo de los kilos, es evidente a simple vista que tampoco lo llevo bien del todo.

Sí, lo confieso, voy por el mundo desarrollando para iOS y a veces enseñando sobre ello y no he visto todos los vídeos de todas las WWDCs. Una vergüenza, ya lo se. Últimamente, mi síndrome del impostor está súper-desarrollado y tengo muy asumido que soy una estafa con patas, pero eso es tema para otro post. Así que esta vez va a ser diferente. Tiene que ser diferente. Me voy a organizar de manera diferente y quizás alguna de estas ideas os sirva para algo. O no.

Good Ol’ Streaming

El streaming y todas estas cosas modernas están muy bien y tal. Hasta que tienes que ver un vídeo y se ha caído tu conexión. O quieres copiar unas cuantas sesiones a tu iPad para estar entretenido en un vuelo, y necesitas tenerlas en tu Mac primero. Y en cualquier caso, porque mañana puede estar caído el servidor de Apple o pueden retirar los vídeos a voluntad. Mi estrategia es sencilla: aquellas cosas de Internet que de verdad me interesan van a mi Drobo o a cualquiera de mis HDs externos. Al coste por GB actual, ni me lo pienso. Para bajar los vídeos os recomiendo este script, que además se baja los PDFs con las presentaciones y el código fuente de los ejemplos. Todo lo necesario para explorar las sesiones. Es bastante configurable y puede bajarse los vídeos de otros años, grabar en la carpeta que le indiques, descargar en calidad SD o HD…

Para instalar el script, debes mostrarlo en formato «raw», es decir, en texto plano (pulsando en este enlace lo tienes, de nada, soy así de majo), seleccionar todo el texto y copiar y pegarlo en un fichero de solo texto. En mi caso, uno que me creado con vi. Lo llamas como quieras, pero download-wwdc-videos.sh no es mal nombre. Te quedaría por darle permisos de ejecución con la orden: $ chmod a+x download-wwdc-videos.sh.

Para bajar los vídeos la orden que he usado es:

./download-videos.sh -f HD -o ./

que significa: «baja los vídeos de la WWDC 2015 (por defecto), en calidad HD (caballo grande, ande o no ande) y me los pones en la carpeta actual». Previamente me había creado esa carpeta en el Drobo y había ido en iTerm con cd /Volumes/Video-Drobo/WWWDC-2015 hasta la carpeta en cuestión.

Separar la paja del grano

No todas las sesiones me interesan. Y a ti tampoco deberían. Hay que tener foco y empezar por aquellas que realmente te van a aportar más. Por ejemplo, la entrega de los Apple Design Awards es algo que no me va a hacer más feliz. Las nuevas características de Swift 2.0, sí. Así que hay sesiones que me interesan seguro, otras que ya habré visto y otras que, o seguro no quiero ver o estoy en duda. Primera criba resuelta: si dudas, es que no quieres verlo. No pasa nada, no borres el vídeo (yo no lo hago), no se va a ir de ahí. Pero si no tienes claro de entrada si te sirve para algo, es que no te sirve verlo ahora.

Videos WWDC 2015 con etiquetas

Videos WWDC 2015 con etiquetas

Para distinguirlos he usado las etiquetas del Finder, que puedes cambiar y crear en preferencias del Finder. Me he creado tres nuevas: Ya vistos, en color verde, pendientes, en color naranja (que destaque) y en gris no me interesan. Marco todas en gris y a partir de ahí selecciono con mucho cuidado las que quiero ver. Es mejor marcar sólo cinco vídeos, verlos, y tener la sensación de he cumplido esta etapa y poder volver y añadir más vídeos luego para subir nota. Mucho mejor que marcar cincuenta vídeos y cargarte con una obligación más todo un año. Además de todas las otras cosas imprescindibles que ya tienes que hacer: leer todos los feeds RSS, leer completo tu timeline de Twitter, leer las noticias diarias, etc.

Pista: no lo hagas. Sobrecarga de información inútil == ruido.

Preferencias del Finder para gestionar las etiquetas

Preferencias del Finder para gestionar las etiquetas

Ver los vídeos

En mi caso, si puedo, los veo en el iMac. Porque estos vídeos no basta con «verlos». A mi me gusta tener abierto Xcode y los ejemplos de código, y cuando veo algo que me llama la atención pauso el vídeo, tomo notas, pruebo código, etc. Sin hacer esto, a los dos minutos de terminar el vídeo no recuerdo nada. Si no intento repetir la demo que estoy viendo, no voy a aprender nada.

Así que en mi caso, nada de verlos a 2x para marcarlos como vistos. A mi me interesa marcarlos como aprovechados, que es distinto. Lo otro es como visitar 10 ciudades en 7 días e ir de Turista. Yo prefiero ver una y vivir 10 días en ella.

Para verlos, los añado a iTunes. Pero con cuidado. Si arrastras la carpeta de los vídeos a iTunes se van a copiar dentro de la biblioteca, duplicando el número de GB. Que puede ser que sea lo que quieres. O no. Siempre puedes borrarlos. En mi caso, los vídeos se quedan en su carpeta del Drobo y sólo enlazo el contenido. Para ello, en las preferencias de iTunes debemos desmarcar la opción Avanzado > Copiar en iTunes Medio los archivos añadidos a la biblioteca que copia por defecto los ficheros dentro de nuestra biblioteca. Ahora podemos arrastrar los ficheros y no se copiarán. Pero podremos sincronizarlos con nuestros dispositivos (en mi caso, mi iPad), para verlos sin conexión. Win!

Programar y tomar notas

No te quedes sólo con los vídeos. Crea tus proyectos de prueba, escribe código usando los Playgrounds de Xcode. Usa las betas de Xcode 7. Y si encuentras errores file a radar. En mi caso, por cada vídeo que voy a ver, creo una tarea en Things, que es lo que uso para llevar un sistema más o menos GTD. En esta tarea anoto cosas que me llaman la atención, de forma que siempre puedo volver y buscar esta tarea para revisar las notas. Si las notas crecen mucho, o van a un Playground junto con código de ejemplo, o a un fichero de texto markdown que luego presento con Deckset.

End

Y esto es todo. Espero esta vez no sentirme culpable cuando compruebe que es Junio de 2016 de nuevo y no he visto más que tres vídeos. Pero una cosa es segura: tampoco voy a poder verlos en una semana. Hay muchas cosas que aprender, y una vida que vivir.

j j j

No comments

Después de mucho tiempo pensándolo, al final he dado el paso. Artículos como éste, de Matt Gemmel y el hecho de que para mí el blog de blogs es el de Joel Spolsky y desde el principio no tenía comentarios me han llevado a cancelarlos.

Y eso que yo tengo mucha suerte. El nivel de los comentarios de este blog es muy bueno (sobre todo, comparado con otros). Pero poco a poco, iba decayendo (se ve que me hago popular). Así que prefiero que quien tenga una opinión distinta a la mía, la escriba calladamente en un fichero de su disco duro y no me lo envíe nunca. O eso, o que se abra su blog y escriba allí la respuesta, meditada, a lo que yo escribo. Porque estoy harto.

Harto de SPAM. Harto de moderar comentarios. Harto de mucha gente que no cree que tenga una opinión distinta a la mía: se creen en posesión de la verdad. Harto de leer gente que no pasó de la adolescencia, aunque tengan niños. Harto.

La vida es muy corta para moderar comentarios.

j j j

Los ideístas

Idea, definición de la RAE

Primero y más obvio de los actos del entendimiento, que se limita al simple conocimiento de algo.

Ideísta (definición de Diego Freniche, sobre un palabro inventado por él mismo)

Dícese de aquel que considera ser la única persona capaz de tener ideas de negocio. Especialmente si se dirige a un informático que pretende trabaje para él gratis. Aunque el Ideista tiene muchas ideas, usualmente no puede transmitirlas al estar aquejado de NDAitis

Esos líderes

Ideístas. Tan tiernos. Me encantan. Asumen que, dado que eres informático, eres un tarado incapaz de diseñar un plan de negocio. Ya, quizá has cursado unos estudios, trabajado unos años y puede ser que te exprimas el cerebro cada día para aprender cómo conseguir que los ordenadores hagan más o menos lo que tú quieres. Pero eso no te exime, amigo/a: eres tonto/a. De remate.

Delante tuyo fluye imparable un río de dinero, pero eres tan anormal que no lo ves, no te das cuenta que sólo con tener una idea se abrirán las puertas del cielo, bajarán de las nubes unicornios vomitando arcoiris que pastarán billetes de a 100 Eur., generando pepitas de oro cada vez que levanten la cola en la pradera. Y serás rico. Y tu barriga desaparecerá. Y te crecerá el pelo. Y podrás ganar alguna negociación con tu mujer. Y todo con una idea.

Pero claro, como eres tonto, no ves que es tan sencillo. Por eso, prefiero tener yo la idea, que para eso soy el ideísta y que tú trabajes para mi. Con pasión y entrega, porque claro, si sólo lo haces porque te gusta, pero no pones pasión, como que eres un triste que medio lo intenta, pero que no merece su reconocimiento. Eso sí, gratis.

Porque todo ideísta es un Steve Jobs. Todos son Jeff Bezos, o Hewlett y Packard. Son líderes natos, a los que ni por un momento se te puede pasar por la cabeza dejar de seguir. Eso sí, no te presentan ningún track record, esto es, las grandes compañías que han fundado antes en base a sus ideas. Más que nada porque tienen la misma experiencia laboral que Paris Hilton. Son visionarios. No tienen obligación de demostrarte que sus visiones sean algo concreto, claro.

El contacto

Reconocer al ideísta es fácil. Tanto, que he creado una plantilla para buscar concordancia de sus mensajes. Os presento el ideísta-canvas:

Aquí podéis ver el esquema general de las cosas. Estos líderes tecnológicos, estos avezados descubridores de nuevos nichos de mercado en la economía de las Apps, son incapaces de registrar su propio dominio. Y siguen usando Hotmail. Te hablan de San Francisco, pero no te muestran las compañías que han creado antes. Tienen ideas pero ni zorra idea de cómo llevarlas a cabo. Te retan, ya que ejecutar su idea va a ser muy divertido y estimulante para tu cerebro. Porque a tí te gusta trabajar gratis. Reconócelo.

Y ellos no tienen un duro, claro.

Mi problema

Mi problema es que estoy contaminado, pero no se cómo explicarlo. Como pertenezco a una generación que extrae sabiduría de las citas de las películas, voy a usar una. Antes se extraían citas de la Ilíada. En Facebook se sacan de Paulo Coelho, uno de los escritores de pósters de gatitos más prolíficos que se conocen. El caso es que desde que escuché a El Jóker decir esto, no puedo evitar repetirlo siempre:

Si eres bueno en algo, nunca lo hagas gratis

Y claro, también está la hipoteca. Y los recibos de la luz y el agua. Y que me gusta que mis hijos tengan tres comidas al día. Y por desgracia, si me acerco a la tienda y miro a los ojos al dependiente, diciéndole de forma seductora: tengo una idea y por eso me voy a llevar seis rollos de papel higiénico gratis, porque para eso soy un líder nunca funciona. Mis poderes Jedi están oxidados. No soy un ideísta.

Y no lo soy, pese a haber fundado en el pasado una empresa (¿o fueron dos?). Pese a llevar unos años trabajando. Pese a pagar mis facturas ofreciendo mis servicios a clientes de verdad. Y, algunas veces, incluso teniendo ideas.

Porque esa es la otra: pese a ser un mero picateclas ¡igual también tengo ideas!. Claro, que lo complicado no es tener la idea. Lo complicado es ejecutarla. Y ejecutarla bien. Con un presupuesto. Y encontrando todos los problemas del mundo. Y contratando y despidiendo. Y luchando. Y pese así, triunfar, no quebrar, ganar dinero… Lo difícil es que hay que esforzarse, querido ideísta. Y tú no lo estás haciendo. Buscas a un pardillo que se esfuerce por tí.

Ayer tuve una idea: voy a ponerme como Arnold Schwarzenegger. El rollo es que hay que levantar pesas y eso. Ya me pongo mañana.

j j j

Cómo instalar Xcode 6 GM (o cualquier versión final de Xcode) sin sobreescribir la anterior

De nuevo es esa época del año. Vuelta al cole. Fin del verano. Nuevo Xcode.

Me encanta el olor a nuevo Xcode por la mañana

Y siempre, el mismo temor: ¿qué pasa al instalar? ¿Voy a sobreescribir mi Xcode actual?

Un poco de teoría

Una App en OS X no es más que una carpeta (un bundle) que contiene los ficheros ejecutables y recursos que la App necesita. Podemos verlo más claro desde el Finder pulsando con el botón derecho del ratón y escogiendo Mostrar contenido del paquete. Desde la terminal es aún más evidente. Si hacemos:

$ cd /Applications/ 
$ ls -d Xcode*

drwxr-xr-x@ 3 dfreniche admin 102B 10 sep 09:47 Xcode.app/ 
drwxr-xr-x  3 root wheel 102B 16 abr 10:30 Xcode5.app/ 
drwxr-xr-x@ 3 dfreniche admin 102B 2 jul 02:52 Xcode6-Beta3.app/ 
drwxr-xr-x@ 3 dfreniche admin 102B 1 ago 23:17 Xcode6-Beta5.app/ 
drwxr-xr-x@ 3 dfreniche admin 102B 16 ago 00:35 Xcode6-Beta6.app/ 
drwxr-xr-x@ 3 dfreniche admin 102B 28 ago 09:01 Xcode6-Beta7.app/

veremos todas las versiones de Xcode que tenemos instaladas. No son más que directorios UNIX normales

La práctica

Durante la fase de Betas la imagen de disco con Xcode que descargamos contiene una carpeta con un nombre como Xcode6-Beta5. Este nombre es distinto de Xcode, con lo que no hay conflicto.

Cuando llega la GM y la versión definitiva, Apple distribuye un DMG con una App que ya se llama Xcode. Es Xcode 6, pero tiene el mismo nombre de carpeta que el Xcode 5 que ya tienes instalado en tu disco duro. Si lo copias, vas a perder Xcode 5.

Xcode5 antes de copiar Xcode6 GM

]Xcode5 antes de copiar Xcode6 GM

Solución sencilla: antes de copiar nada a la carpeta Applications, renombra Xcode (como si fuera un fichero o carpeta normal, probablemente tengas que introducir tu clave de administrador) y ponle de nombre Xcode 5 (o el que prefieras, yo tengo por ahí una llamada Ye olde Xcode 4.3)

Instalando Xcode 6 tras renombrar Xcode 5

]Instalando Xcode 6 tras renombrar Xcode 5

Fácil, ¿no?

j j j