2006-2016 Una retrospectiva
Un artículo de Rafa G. Blanes
Puff..., casi siempre al comenzar el año el que más o el que menos hace una lista de buenos propósitos, de objetivos para los próximos doce meses. En cierta medida, yo lo también lo hago, pero sobre todo me gusta mirar un poco atrás y ser aún más consciente de dónde vengo (por eso de saber mejor hacia dónde voy).
Y desde luego, puedo decir que ni he tenido un trabajo rutinario desde que terminé la carrera ni que me he mantenido en el mismo tipo de rol. ¿Podría haber sido de otro modo? Pues ni idea, seguramente sí, ya que yo mismo he sido responsable de mis acciones y decisiones. ¿Quién si no?
Echo la vista atrás y ojalá los próximos diez años sean igual de intensos y productivos.
Me gusta Haruki Murakami y me le ha acompañado desde que cayó en mis manos casi por casualidad uno de sus libros allá por el noventa y pico.
A modo de resumen...
Terminé la titulación de Ingeniería Superior en Informática por el 2001, después de presentar un proyecto fin de carrera que me llevó casi un año. Se trataba de una aplicación hecha con Visual C++ y librerías MFC/ATL, para la creación de interfaces de usuario de un producto Scada que realizábamos por aquélla época en la compañía para la que trabajaba. Entonces pertenecía a lo que se denominaba el Grupo de Desarrollo de Software (nada original, por otro lado).
Fruto de este proyecto (que creo que sigue en producción en algún centro de operación ferroviario), fue este artículo que ya en su día publiqué en CodeProject y de título Improving ATL-ActiveX Serialization y mucho, muchísimo profiling y escribir código optimizado. Y ahora que lo pienso, ese artículo fue lo primero que me dio por publicar! Y por cierto, veo que tengo que actualizar la información con la que me registré en CodeProject, portal que sigue siendo para mí referencia hoy día.
Lo más interesante de aquéllo fue que en esa aplicación integré VBA (Visual Basic for Applications), toda una novedad en aquel momento, y también un gran reto técnico.
Acostumbrado a C++, todo el nuevo entorno de .NET framework junto con C#, creó una gran expectativa que abrazamos casi todos en el departamento desde el primer momento. De hecho aún conservo un libro que me regalaron en un evento sobre esa nueva tecnología y que creo que sería de lo primero que se publicó entonces.
Siempre he estado muy ligado a tecnologías de Microsoft, y también siempre me han parecido infantiles y no profesionales las comparaciones y dilemas un poco tontos y muy de nuestro sector entre esto o aquello. Toda tecnología tiene sus luces y sus sombras. Punto.
Sin embargo, desde hace unos años trabajo muy de cerca con Azure (la plataforma de cloud computing de Microsoft y de enorme crecimiento) y sigo con detalle todos los movimientos de esa compañía hacia una visión más "open" del software. De hecho, no en vano, .NET Core y la liberación de algunos productos tradicionales de Microsoft para su funcionamiento en Linux (como Sql Server, nada más y nada menos) es una muestra más de esa mayor amplitud de miras. Y no digo Azure por capricho, es que tengo clientes que funcionan desde esa plataforma con un éxito rotundo.
En 2006 ya estaba trabajando en Suecia en un proyecto de muchos millones de euros; mejor dicho, el proyecto tenía un montante de cien millones de euros pero la parte software, aunque, residual, era crítica: sin ese pilar, todo el proyecto se caía y las penalizaciones económicas por parte del cliente podían poner en riesgo la viabilidad misma del proyecto. Había mucha presión, teníamos que trabajar con prisas, cumpliendo hitos literalmente con la lengua fuera, además de toda la presión de los cambios que supone trasladarte con tu familia a un país muy diferente a España.
Pero aprendí, y muchísimo; fue para mí, a pesar de las crisis que viví junto con mis compañeros, una de las etapas más fértiles de ese periodo. Recuerdo alguna noche entera realizando una actualización de uno de los sistemas en los que se basaba el proyecto.
No había metodología, sólo tirar hacia delante del modo que fuese. Curiosamente, todos mis compañeros que entonces participábamos en ese proyecto para una compañía eléctrica sueca (Vattenfall), ya no están en la misma empresa, incluido yo mismo. Todos fuimos saliendo poco a poco encontrando (o buscando) mejores oportunidades laborales y profesionales.
De aquel proyecto me quedó muy claro la extraordinaria importancia de mantener una mínima metodología y orden en los desarrollos (abajo no había orden porque en el nivel ejecutivo ni lo había ni se fomentaba). Y también de la enorme importancia de un diseño pulcro y eficiente de la base de datos, ya que la aplicación era muy data-centric. La base de datos crecía a razón de millones de registros a diario, de modo que continuamente nos encontrábamos con nuevos cuellos de botella (tanto a nivel de software como de hardware). Todo un reto que finalmente pudimos estabilizar (nos llevó más de un año).
Después volví a España y comencé a interesarme por todo lo ágil y clean-code. Fue una época de lecturas frenéticas de toda la literatura relacionada que encontraba interesante (los libros, cómo no, de Martin Fowler, Robert C. Martin, etc.) y poco a poco fui confirmando ciertas intuiciones acerca de los pilares con los que construir buen software.
Y como consecuencia natural, muy pronto comencé a darme cuenta de que no todo el mundo entendía igual el concepto de buen software, y que apenas se le prestaba atención a asuntos tan importantes como la organización de un equipo de trabajo, las dinámicas de grupo, la ausencia del concepto de jefe o gestor como aquel que facilita el trabajo de los demás, etc., cuyo resultado termina generando un producto bueno o malísimo.
Continuaba escribiendo software de un modo u otro, a veces con buenas condiciones y casi siempre en muy malas condiciones (exceso de reuniones impuestas, tareas no planificadas para hoy, etc.).
Entre 2008 y 2009 hice mi primera tentativa emprendedora. Y fue un total fracaso, pero me permitió meterme de lleno en Drupal. La idea era buena, pero somo se suele decir, la ejecución lo es todo. Por aquélla época comencé a leer mucho sobre emprendimiento e intraemprendimiento. Siempre digo que dejé esa compañía en la que mantenía un contrato fijo y con buen sueldo porque ya llevaba años preparándome mentalmente para probar otro tipo de cosas. Y es que nos centramos demasiado en la acción, pero se nos olvida una verdad trascendental: no es el hacer sino el ser (lo que somos) lo que provoca cambios verdaderos. Bueno, que enrollo en temas de desarrollo personal...
Entre pequeños proyectos de I+D y el mantenimiento del sistema que montamos en Suecia, tenía tiempo de comenzar a interesarme por otras tecnologías fuera del ecosistema de Microsoft. Comencé a hacer mis primeros proyectos web y a leer todo lo que podía sobre Drupal. Y, por supuesto, abracé NodeJS desde el primer momento. Entre otras cosas.
Tanto fue mi entusiasmo por Drupal que terminé participando como ponente en dos sesiones (esta y esta otra) en la Drupalcamp de 2011 en mi ciudad. Descubrí ese ecosistema y una comunidad muy implicada y estimulante.
Comencé a hacerme cargo de la gestión de equipos de trabajo sobre el 2009. Y no tenía ni idea de qué iba aquello, así que leí muchísimo al respecto y lo intenté hacer lo mejor posible.
La empresa para la que trabajaba entonces (la ingeniería Telvent Energía, ahora propiedad de Schneider Electric), no se puede decir que fuese una de esas cárnicas, pero lógicamente, la presión de sacar proyectos era alta. Como en todo, hay momentos buenos y malos, pero todo lo que quiero recordar de aquel periodo (trabajé en esa compañía desde el 2000 hasta el 2012) es bueno y hasta excepcional, y considero que no todo el mundo tiene la suerte de caer en una empresa y tener las experiencias nacionales e internacionales como tuve en Telvent, asistiendo a eventos importantes, etc. Viajé varias veces a USA (estuve en semana asistiendo a TAP program de Microsoft en Seattle, toda una experiencia viendo, oyendo y hablando con auténticos gurús, de los de verdad), así como viajes a diferentes ciudades de Suecia, Holanda, Eslovenia, etc. y hasta una semana en Beirut.
Pero el ciclo se fue acabando y comencé a interesarme por otras cosas y otras posibilidades laborales. Digamos que dejé de verme en un futuro lejano trabajando para la misma compañía.
Ya entonces se hablaba también, de forma muy incipiente pero cada vez más presente, de conceptos como Iaas, Pass y Saas, así como del mundo cloud que vendría y que hoy por hoy, está ya aquí como una realidad y como base de mi actividad profesional actual en un ámbito laboral completamente diferente.
Entonces con la popularización de CMS como Wordpress y Drupal, entre otros, se escuchaba mucho de aquello de Kill the webmaster, y la tendencia en las compañías era dejar de depender de eso precisamente, de un webmaster dedicado full-time a esa actividad. Entonces ciertas voces agoreras también empleaban el mismo concepto aplicado a los responsables de IT en relación a la pujanza del mundo cloud. Me consta que la industria se mueve en esa dirección, sencillamente porque las cuentas salen para la mayoría de proyectos, sino todos. Por si no te has dado cuenta, nuestra profesión es muy volátil y salvo que te dediques a mantener un software corriendo en un AS/400 antediluviano para algún banco, lo demás cambia continuamente.
Desde mi época en Telvent me ha acompañado mi rol de gestión. En 2012 monté para otra compañía de ámbito nacional (Telecontrol STM) una oficina y un grupo de desarrollo para dedicarnos de lleno a la realización de productos relacionados con el mercado eléctrico. Hace ya cinco años de aquello y aunque hemos tenido momentos álgidos y otros no tan buenos, como en todo, comenzamos este año en una posición muy diferente, con mayor consolidación y a punto de comenzar a trabajar bajo el paraguas de una marca distinta (SOLID Stack), cómo decir, un nombre más de software.
Por alguna razón, me han perseguido proyectos software relativamente grandes y que tienen que gestionar grandes volumenes de información (en su día fue Titanium y a día de hoy, la Plataforma de Telegestión IRIS), así como la participación en algún proyecto de I+D con Hadoop.
Con Node.js comencé a interesarme en otra forma de crear proyectos usando npm y diseñando microservicios. De ahí este proyecto lúdico y que de momento no he podido continuar: Green Kiwi Games, escrito totalmente con Node.js y Angular. También fue toda una experiencia registrar la marca. Programación orientada a eventos... fantástico.
Gestionar, estar más en contacto con la parte directiva y de desarrollo de negocio de la compañía y tratar más de cerca a los clientes, tiene el lado malo de que te aparta más de lo técnico, pero te hace ver de cerca que el desarrollo de negocio tiene un lenguaje propio, distinto del que emplean en el día a día los desarrolladores volcados cien por cien a su actividad. También te das cuenta de lo importante que es liderar y mantener a personas compentes pero también e identificar elementos tóxicos que tienen que ser apartados cuanto antes para evitar males mayores. Sí, en ocasiones me ha tocado despedir, y esto es un mal trago por el que hay que pasar (y que, literalmente, te quita el sueño cuando pasas por decisiones de ese tipo).
Y, por supuesto, me he equivocado mucho, muchísimo, pero como dice mi gran amigo Raimón Samsó, "hay que duplicar la tasa de fallos", porque se aprende más de un fracaso que de un éxito. Lo sutil es ver que los éxitos se tienen después de varios fracasos, de modo que me siento orgulloso tanto de aquellos como de estos.
Fruto de mucho reflexionar acerca de por qué se van al garete muchos proyectos software, fue la publicación de El Libro Negro del Programador, que me abrió las puertas al mundo de la publicación idenpendiente y todo lo relacionado. Si quieres profundizar en algo, intenta escribir un libro sobre ese tema, no hay mejor maestro, créeme.
Para mí ese libro fue un proyecto más (que, por cierto, estoy realizando una revisión a modo de segunda edición), y he cosechado bastantes reviews en Amazon (tanto en la tienda española .es como en la americana .com). También he aprendido (a uno no le queda más remedio), a relativizar la crítica. Si bien por lo general los comentarios con muy buenos, alguno que otro es, en mi opinión, excesivamente duro. Tío, que te has gastado 2.99€ (dos cafés y medio) y algo habrás aprendido, digo yo. Afortunadamente son reviews puntuales, pero si tienes el valor y el arrojo de publicar tus opiniones, también debes hacerte de una fuerte coraza y relativizar toda la crítica. De nuevo, hay que ver cualquier crítica como una oportunidad de mejorar.
Escribir un libro es, en cierto modo, hablar mucho de ti, y por ello se requiere de valentía.
Y también he tenido y tengo mis éxitos, tanto personales como profesionales, así como la publicación de mi primera novela ("Patricia"). Estamos en fase de consolidación de nuestros proyectos, crecemos, y en breve este año 2017 lo vamos a hacer desde un nombre de marca que nos gusta mucho.
Porque me gusta el software, me gusta crear cosas que soluciona un problema a un cliente (y que te paguen por ello, claro) y, sobre todo, me gustan los ingresos pasivos (aunque eso es otra historia).
Durante este tiempo también he sabido de algunos compañeros de la universidad que, sencillamente, han abandonado la profesión, y ahora se dedican a cosas totalmente diferentes. Y no me extraña, sigo pensando que el desarrollador de software, al menos en mi país, sigue sin estar suficientemente valorado, y cuando no es un sector que sufre un intrusismo tremendo por parte de personas que también se tienen que ganar la vida, legíticamente, claro está, pero no deja de ser algo que no existe en otros sectores. Quiero decir, esto es una profesión que necesita de mucha vocación y paciencia para prosperar y continuar al pie del cañón durante años.
Uno no tiene una careta en el ámbito profesional y otra para el personal. Estos años también me ha acompañado un fuerte crecimiento de desarrollo personal a través del yoga y la meditación, que, de alguna manera, lógicamente, influye en la forma en la que afronto todos los asuntos.
También he aprendido que los mejores profesionales con los que me he encontrado (algunos siguen trabajando en Microsoft), tienen algo en común pero que pasa desapercibido: son extraordinariamente humildes. Toda una declaración de principios.
¿Y de aquí en adelante?
A seguir disfrutando de un sector pujante que realmente aporta valor a la economía y con capacidad de cambiar el mundo (yo lo creo así), sabiendo disfrutar de los éxitos y digiriendo lo mejor posible aquello que no funcione tan bien.
Para mí, este es el año en que me voy a meter de lleno con Docker, blockchain desde Ethereum, Xamarin, software basado en microservicios y todo lo relacionado con servicios cloud. Y, por supuesto, SOLID Stack.